History log of /llvm-project/llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp (Results 26 – 50 of 81)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# c589730a 05-Dec-2022 Krzysztof Parzyszek <kparzysz@quicinc.com>

[YAML] Convert Optional to std::optional


# cc1fd002 01-Dec-2022 Mircea Trofin <mtrofin@google.com>

[NFC] Fix dbgs() statement in ControlHeightReduction


# 6327d263 22-Nov-2022 Rong Xu <xur@google.com>

[CHR] Add a threshold for the code duplication

ControlHeightReduction (CHR) clones the code region to reduce the
branches in the hot code path. The number of clones is linear to the
depth of the reg

[CHR] Add a threshold for the code duplication

ControlHeightReduction (CHR) clones the code region to reduce the
branches in the hot code path. The number of clones is linear to the
depth of the region.

Currently it does not have control over the code size increase. We are
seeing one ~9000 BB functions get expanded to ~250000 BBs, an 25x
increase. This creates a big compile time issue for the downstream
optimizations.

This patch adds a cap for number of clones for one region.

Differential Revision: https://reviews.llvm.org/D138333

show more ...


Revision tags: llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1
# 6d972ad2 12-Sep-2022 Matthias Braun <matze@braunis.de>

ControlHeightReduction: Remove assert check in shouldApply

Remove assertion checking for non-empty `ProfileSummaryInfo`.

Differential Revision: https://reviews.llvm.org/D133706


# ce443572 19-Sep-2022 Matt Arsenault <Matthew.Arsenault@amd.com>

Analysis: Add AssumptionCache to isSafeToSpeculativelyExecute

Does not update any of the uses.


Revision tags: llvmorg-15.0.0
# b18ff9c4 28-Aug-2022 Kazu Hirata <kazu@google.com>

[Transform] Use range-based for loops (NFC)


Revision tags: llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2
# a2d45017 07-Aug-2022 Kazu Hirata <kazu@google.com>

[llvm] Fix comment typos (NFC)


Revision tags: llvmorg-15.0.0-rc1, llvmorg-16-init
# f9d6f372 16-Jul-2022 Fangrui Song <i@maskray.me>

[LegacyPM] Remove ControlHeightReductionLegacyPass

This pass tries to reduce the number of conditional branches in the hot path
based on profile. It's mostly a no-op after legacy PGO passes are move

[LegacyPM] Remove ControlHeightReductionLegacyPass

This pass tries to reduce the number of conditional branches in the hot path
based on profile. It's mostly a no-op after legacy PGO passes are moved.

show more ...


Revision tags: llvmorg-14.0.6
# 129b531c 19-Jun-2022 Kazu Hirata <kazu@google.com>

[llvm] Use value_or instead of getValueOr (NFC)


# df792bcb 13-Jun-2022 Kazu Hirata <kazu@google.com>

[Transforms] Use default member initialization (NFC)

Identified with modernize-use-default-member-init.


Revision tags: llvmorg-14.0.5
# c8eb83f2 26-May-2022 Nikita Popov <nikita.ppv@gmail.com>

[ControlHeightReduction] Use logical and

Use logical instead of bitwise and to combine conditions, to avoid
propagating poison from a later condition if an earlier one is
already false. This avoids

[ControlHeightReduction] Use logical and

Use logical instead of bitwise and to combine conditions, to avoid
propagating poison from a later condition if an earlier one is
already false. This avoids introducing branch on poison.

Differential Revision: https://reviews.llvm.org/D125898

show more ...


Revision tags: llvmorg-14.0.4
# 7ba48466 10-May-2022 Nikita Popov <npopov@redhat.com>

[ControlHeightReduction] Freeze condition when converting select to branch

While select conditions can be poison, branch on poison is
immediate UB. As such, we need to freeze the condition when
conv

[ControlHeightReduction] Freeze condition when converting select to branch

While select conditions can be poison, branch on poison is
immediate UB. As such, we need to freeze the condition when
converting a select into a branch.

Differential Revision: https://reviews.llvm.org/D125398

show more ...


# afc21c7e 13-May-2022 Nikita Popov <npopov@redhat.com>

[ControlHeightReduction] Simplify addToMergedCondition() (NFC)


Revision tags: llvmorg-14.0.3, llvmorg-14.0.2
# 26a0d53b 25-Apr-2022 Wei Wang <apollo.mobility@gmail.com>

[CHR] Skip region containing llvm.coro.id

When a block containing llvm.coro.id is cloned during CHR, it inserts an invalid
PHI node with token type to the beginning of the block containing llvm.coro

[CHR] Skip region containing llvm.coro.id

When a block containing llvm.coro.id is cloned during CHR, it inserts an invalid
PHI node with token type to the beginning of the block containing llvm.coro.begin.
To avoid such case, we exclude regions with llvm.coro.id.

Reviewed By: ChuanqiXu

Differential Revision: https://reviews.llvm.org/D124418

show more ...


Revision tags: llvmorg-14.0.1
# bce1bf0e 20-Mar-2022 Kazu Hirata <kazu@google.com>

[Transform] Apply clang-tidy fixes for readability-redundant-smartptr-get (NFC)


Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2
# fda6a1ad 13-Feb-2022 Kazu Hirata <kazu@google.com>

[Transforms] Use default member initialization in CHRStats (NFC)


Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1
# c714da2c 31-Oct-2021 Kazu Hirata <kazu@google.com>

[Transforms] Use {DenseSet,SetVector,SmallPtrSet}::contains (NFC)


# c8b1ed5f 31-Oct-2021 Kazu Hirata <kazu@google.com>

[clang, llvm] Use Optional::getValueOr (NFC)


Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2
# fae7deba 12-Jun-2021 Xun Li <lxfind@gmail.com>

[CHR] Don't run ControlHeightReduction if any BB has address taken

This patch is to address https://bugs.llvm.org/show_bug.cgi?id=50610.
In computed goto pattern, there are usually a list of basic b

[CHR] Don't run ControlHeightReduction if any BB has address taken

This patch is to address https://bugs.llvm.org/show_bug.cgi?id=50610.
In computed goto pattern, there are usually a list of basic blocks that are all targets of indirectbr instruction, and each basic block also has address taken and stored in a variable.
CHR pass could potentially clone these basic blocks, which would generate a cloned version of the indirectbr and clonved version of all basic blocks in the list.
However these basic blocks will not have their addresses taken and stored anywhere. So latter SimplifyCFG pass will simply remove all tehse cloned basic blocks, resulting in incorrect code.
To fix this, when searching for scopes, we skip scopes that contains BBs with addresses taken.
Added a few test cases.

Reviewed By: aeubanks, wenlei, hoy

Differential Revision: https://reviews.llvm.org/D103867

show more ...


Revision tags: llvmorg-12.0.1-rc1
# 6b9524a0 06-May-2021 Arthur Eubanks <aeubanks@google.com>

[NewPM] Don't mark AA analyses as preserved

Currently all AA analyses marked as preserved are stateless, not taking
into account their dependent analyses. So there's no need to mark them
as preserve

[NewPM] Don't mark AA analyses as preserved

Currently all AA analyses marked as preserved are stateless, not taking
into account their dependent analyses. So there's no need to mark them
as preserved, they won't be invalidated unless their analyses are.

SCEVAAResults was the one exception to this, it was treated like a
typical analysis result. Make it like the others and don't invalidate
unless SCEV is invalidated.

Reviewed By: asbirlea

Differential Revision: https://reviews.llvm.org/D102032

show more ...


Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1
# 33bf1cad 08-Jan-2021 Kazu Hirata <kazu@google.com>

[llvm] Use *Set::contains (NFC)


# 8299fb8f 27-Dec-2020 Kazu Hirata <kazu@google.com>

[Transforms] Use llvm::append_range (NFC)


# df812115 24-Dec-2020 Kazu Hirata <kazu@google.com>

[CodeGen, Transforms] Use llvm::any_of (NFC)


Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2
# b6211167 18-Dec-2020 Kazu Hirata <kazu@google.com>

[Transforms] Use llvm::erase_if (NFC)


Revision tags: llvmorg-11.0.1-rc1
# 1c82d320 25-Nov-2020 Kazu Hirata <kazu@google.com>

[CHR] Use pred_size (NFC)


1234