#
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)
|