Revision tags: llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1 |
|
#
53fa00b3 |
| 19-Sep-2022 |
Matt Arsenault <Matthew.Arsenault@amd.com> |
LoopUnroll: Pass through AssumptionCache (NFC)
Using these queries with a context instruction and without a cache seems to be about 2x slower than with it so this theoretically improves compile time.
|
Revision tags: llvmorg-15.0.0, llvmorg-15.0.0-rc3 |
|
#
9c710ebb |
| 17-Aug-2022 |
Daniil Fukalov <1671137+dfukalov@users.noreply.github.com> |
[TTI] NFC: Reduce InstructionCost::getValue() usage...
in order to propagate `InstructionCost` value upper.
Reviewed By: fhahn
Differential Revision: https://reviews.llvm.org/D103406
|
#
fdec5018 |
| 18-Aug-2022 |
Simon Pilgrim <llvm-dev@redking.me.uk> |
[CostModel] Replace getUserCost with getInstructionCost * Replace getUserCost with getInstructionCost, covering all cost kinds. * Remove getInstructionLatency, it's not implemented by any backends, a
[CostModel] Replace getUserCost with getInstructionCost * Replace getUserCost with getInstructionCost, covering all cost kinds. * Remove getInstructionLatency, it's not implemented by any backends, and we should fold the functionality into getUserCost (now getInstructionCost) to make it easier for targets to handle the cost kinds with their existing cost callbacks.
Original Patch by @samparker (Sam Parker)
Differential Revision: https://reviews.llvm.org/D79483
show more ...
|
#
50724716 |
| 14-Aug-2022 |
Kazu Hirata <kazu@google.com> |
[Transforms] Qualify auto in range-based for loops (NFC)
Identified with readability-qualified-auto.
|
Revision tags: llvmorg-15.0.0-rc2 |
|
#
0e37ef01 |
| 08-Aug-2022 |
Kazu Hirata <kazu@google.com> |
[Transforms] Fix comment typos (NFC)
|
Revision tags: llvmorg-15.0.0-rc1, llvmorg-16-init |
|
#
611ffcf4 |
| 14-Jul-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Use value instead of getValue (NFC)
|
#
a7938c74 |
| 26-Jun-2022 |
Kazu Hirata <kazu@google.com> |
[llvm] Don't use Optional::hasValue (NFC)
This patch replaces Optional::hasValue with the implicit cast to bool in conditionals only.
|
#
3b7c3a65 |
| 25-Jun-2022 |
Kazu Hirata <kazu@google.com> |
Revert "Don't use Optional::hasValue (NFC)"
This reverts commit aa8feeefd3ac6c78ee8f67bf033976fc7d68bc6d.
|
#
aa8feeef |
| 25-Jun-2022 |
Kazu Hirata <kazu@google.com> |
Don't use Optional::hasValue (NFC)
|
Revision tags: llvmorg-14.0.6, llvmorg-14.0.5 |
|
#
206f10d3 |
| 09-Jun-2022 |
Philip Reames <preames@rivosinc.com> |
Plumb InstructionCost through unroll costing
Teach the unroller(s) how to handle an invalid cost. This avoids crashes when the backend can't provide a cost due to either a fundemental limitation or
Plumb InstructionCost through unroll costing
Teach the unroller(s) how to handle an invalid cost. This avoids crashes when the backend can't provide a cost due to either a fundemental limitation or an unimplemented cost model case.
Differential Revision: https://reviews.llvm.org/D127305
show more ...
|
#
f85c5079 |
| 09-Jun-2022 |
Philip Reames <preames@rivosinc.com> |
Pipe potentially invalid InstructionCost through CodeMetrics
Per the documentation in Support/InstructionCost.h, the purpose of an invalid cost is so that clients can change behavior on impossible t
Pipe potentially invalid InstructionCost through CodeMetrics
Per the documentation in Support/InstructionCost.h, the purpose of an invalid cost is so that clients can change behavior on impossible to cost inputs. CodeMetrics was instead asserting that invalid costs never occurred.
On a target with an incomplete cost model - e.g. RISCV - this means that transformations would crash on (falsely) invalid constructs - e.g. scalable vectors. While we certainly should improve the cost model - and I plan to do so in the near future - we also shouldn't be crashing. This violates the explicitly stated purpose of an invalid InstructionCost.
I updated all of the "easy" consumers where bailouts were locally obvious. I plan to follow up with loop unroll in a following change.
Differential Revision: https://reviews.llvm.org/D127131
show more ...
|
#
557efc9a |
| 04-Jun-2022 |
Fangrui Song <i@maskray.me> |
[llvm] Remove unneeded cl::ZeroOrMore for cl::opt options. NFC
Some cl::ZeroOrMore were added to avoid the `may only occur zero or one times!` error. More were added due to cargo cult. Since the err
[llvm] Remove unneeded cl::ZeroOrMore for cl::opt options. NFC
Some cl::ZeroOrMore were added to avoid the `may only occur zero or one times!` error. More were added due to cargo cult. Since the error has been removed, cl::ZeroOrMore is unneeded.
Also remove cl::init(false) while touching the lines.
show more ...
|
#
80b3dcc0 |
| 30-May-2022 |
Nuno Lopes <nuno.lopes@tecnico.ulisboa.pt> |
[Support] Make report_fatal_error respect its GenCrashDiag argument so it doesn't generate a backtrace
There are a few places where we use report_fatal_error when the input is broken. Currently, thi
[Support] Make report_fatal_error respect its GenCrashDiag argument so it doesn't generate a backtrace
There are a few places where we use report_fatal_error when the input is broken. Currently, this function always crashes LLVM with an abort signal, which then triggers the backtrace printing code. I think this is excessive, as wrong input shouldn't give a link to LLVM's github issue URL and tell users to file a bug report. We shouldn't print a stack trace either.
This patch changes report_fatal_error so it uses exit() rather than abort() when its argument GenCrashDiag=false.
Reviewed by: nikic, MaskRay, RKSimon
Differential Revision: https://reviews.llvm.org/D126550
show more ...
|
Revision tags: llvmorg-14.0.4, llvmorg-14.0.3 |
|
#
205246cb |
| 27-Apr-2022 |
Anna Thomas <anna@azul.com> |
[CompileTime] [Passes] Avoid computing unnecessary analyses. NFC
Similar to c515b2f39e77, If there are no loops in the function as seen through LI, we should avoid computing the remaining expensive
[CompileTime] [Passes] Avoid computing unnecessary analyses. NFC
Similar to c515b2f39e77, If there are no loops in the function as seen through LI, we should avoid computing the remaining expensive analyses (such as SCEV, BPI). Reordered the analyses requests and early return if there are no loops.
The logic of avoiding expensive analyses is applied to LoopVectorizer, LoopLoadElimination and LoopUnrollPass, i.e. all function passes which operate on loops.
This is an NFC with compile time improvement.
Differential Revision: https://reviews.llvm.org/D124529
show more ...
|
Revision tags: llvmorg-14.0.2, llvmorg-14.0.1 |
|
#
80304c5f |
| 11-Apr-2022 |
Whitney Tsang <whitneyt@ca.ibm.com> |
[LoopUnroll] Always respect user unroll pragma
IMO when user provide unroll pragma, compiler should always respect it. It is not clear to me why loop unroll pass currently ensure that the unrolled l
[LoopUnroll] Always respect user unroll pragma
IMO when user provide unroll pragma, compiler should always respect it. It is not clear to me why loop unroll pass currently ensure that the unrolled loop size is limited by PragmaUnrollThreshold.
Reviewed By: Meinersbur
Differential Revision: https://reviews.llvm.org/D119148
show more ...
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3 |
|
#
59630917 |
| 02-Mar-2022 |
serge-sans-paille <sguelton@redhat.com> |
Cleanup includes: Transform/Scalar
Estimated impact on preprocessor output line: before: 1062981579 after: 1062494547
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cl
Cleanup includes: Transform/Scalar
Estimated impact on preprocessor output line: before: 1062981579 after: 1062494547
Discourse thread: https://discourse.llvm.org/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D120817
show more ...
|
Revision tags: llvmorg-14.0.0-rc2, llvmorg-14.0.0-rc1, llvmorg-15-init |
|
#
bc48a266 |
| 01-Feb-2022 |
Anna Thomas <anna@azul.com> |
[LoopPeel] Use reference instead of pointer for DT argument
Cleanup code in peelLoop API. We already have usage of DT without guarding against a null DT, so this change constant folds the remaining
[LoopPeel] Use reference instead of pointer for DT argument
Cleanup code in peelLoop API. We already have usage of DT without guarding against a null DT, so this change constant folds the remaining null DT checks. Also make the argument a reference so that it is clear the argument is a nonnull DT. Extracted from D118472.
show more ...
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
#
5a667c0e |
| 28-Dec-2021 |
Kazu Hirata <kazu@google.com> |
[llvm] Use nullptr instead of 0 (NFC)
Identified with modernize-use-nullptr.
|
#
dd245bab |
| 14-Dec-2021 |
Zaara Syeda <syzaara@ca.ibm.com> |
[LoopUnroll] Disable loop unroll when user explicitly asks for unroll-and-jam
If a loop isn't forced to be unrolled, we want to avoid unrolling it when there is an explicit unroll-and-jam pragma. Th
[LoopUnroll] Disable loop unroll when user explicitly asks for unroll-and-jam
If a loop isn't forced to be unrolled, we want to avoid unrolling it when there is an explicit unroll-and-jam pragma. This is to prevent automatic unrolling from interfering with the user requested transformation.
Differential Revision: https://reviews.llvm.org/D114886
show more ...
|
#
54e21df9 |
| 02-Dec-2021 |
Daniel Sanders <daniel_l_sanders@apple.com> |
[unroll] Fix a functional change in an NFC patch
5c77aa2b917c [unroll] Use early return in shouldFullUnroll [nfc] wasn't quite NFC since !(x <= y) is x > y rather than x >= y
Credit to Justin Bogne
[unroll] Fix a functional change in an NFC patch
5c77aa2b917c [unroll] Use early return in shouldFullUnroll [nfc] wasn't quite NFC since !(x <= y) is x > y rather than x >= y
Credit to Justin Bogner for spotting the bug
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D114894
show more ...
|
#
f50207c0 |
| 29-Nov-2021 |
Philip Reames <listmail@philipreames.com> |
[unroll] Use early return in shouldPartialUnroll [nfc]
|
#
a655e0f9 |
| 29-Nov-2021 |
Philip Reames <listmail@philipreames.com> |
[unroll] Reduce scope of UnrollFactor variable in computeUnrollCount [NFC]
Suggested in review of D114453, done as a separate change to get all uses at once.
|
#
829b62ad |
| 29-Nov-2021 |
Philip Reames <listmail@philipreames.com> |
[unroll] Split full exact and full bound unroll costing [NFC]
This change should be NFC. It's posted for review mostly to make sure others are happy with the names I'm introducing for "exact full un
[unroll] Split full exact and full bound unroll costing [NFC]
This change should be NFC. It's posted for review mostly to make sure others are happy with the names I'm introducing for "exact full unroll" and "bounded full unroll". The motivation here is that our cost model for bounded unrolling is too aggressive - it gives benefits for exits we aren't going to prune - but I also just think the new version of the code is a lot easier to follow.
Differential Revision: https://reviews.llvm.org/D114453
show more ...
|
Revision tags: llvmorg-13.0.1-rc1 |
|
#
18086186 |
| 23-Nov-2021 |
Philip Reames <listmail@philipreames.com> |
[unroll] Remove two dead variable assignments [nfc]
These variables are not out-params, and we immediately return after assigning them. Thus, the assignments are dead and just confusing.
I believe
[unroll] Remove two dead variable assignments [nfc]
These variables are not out-params, and we immediately return after assigning them. Thus, the assignments are dead and just confusing.
I believe these used to be out-params, but they're not any more.
show more ...
|
#
5c77aa2b |
| 23-Nov-2021 |
Philip Reames <listmail@philipreames.com> |
[unroll] Use early return in shouldFullUnroll [nfc]
|