Revision tags: llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3 |
|
#
cd783453 |
| 25-Aug-2017 |
Florian Hahn <florian.hahn@arm.com> |
[LoopInterchange] Skip zext instructions when looking for induction var.
Summary: SimplifyIndVar may introduce zext instructions to widen arguments of the loop exit check. They should not prevent us
[LoopInterchange] Skip zext instructions when looking for induction var.
Summary: SimplifyIndVar may introduce zext instructions to widen arguments of the loop exit check. They should not prevent us from splitting the loop at the induction variable, but maybe the check should be more conservative, e.g. making sure it only extends arguments used by a comparison?
Reviewers: karthikthecool, mcrosier, mzolotukhin
Reviewed By: mcrosier
Subscribers: mzolotukhin, llvm-commits
Differential Revision: https://reviews.llvm.org/D34879
llvm-svn: 311783
show more ...
|
Revision tags: llvmorg-5.0.0-rc2 |
|
#
4284049d |
| 31-Jul-2017 |
Florian Hahn <florian.hahn@arm.com> |
[LoopInterchange] Do not interchange loops with function calls.
Summary: Without any information about the called function, we cannot be sure that it is safe to interchange loops which contain funct
[LoopInterchange] Do not interchange loops with function calls.
Summary: Without any information about the called function, we cannot be sure that it is safe to interchange loops which contain function calls. For example there could be dependences that prevent interchanging between accesses in the called function and the loops. Even functions without any parameters could cause problems, as they could access memory using global pointers.
For now, I think it is only safe to interchange loops with calls marked as readnone.
With this patch, the LLVM test suite passes with `-O3 -mllvm -enable-loopinterchange` and LoopInterchangeProfitability::isProfitable returning true for all loops. check-llvm and check-clang also pass when bootstrapped in a similar fashion, although only 3 loops got interchanged.
Reviewers: karthikthecool, blitz.opensource, hfinkel, mcrosier, mkuper
Reviewed By: mcrosier
Subscribers: mzolotukhin, llvm-commits
Differential Revision: https://reviews.llvm.org/D35489
llvm-svn: 309547
show more ...
|
Revision tags: llvmorg-5.0.0-rc1 |
|
#
f66efd61 |
| 24-Jul-2017 |
Florian Hahn <florian.hahn@arm.com> |
[LoopInterchange] Update code to use range-based for loops (NFC).
Summary: The remaining non range-based for loops do not iterate over full ranges, so leave them as they are.
Reviewers: karthikthec
[LoopInterchange] Update code to use range-based for loops (NFC).
Summary: The remaining non range-based for loops do not iterate over full ranges, so leave them as they are.
Reviewers: karthikthecool, blitz.opensource, mcrosier, mkuper, aemerson
Reviewed By: aemerson
Subscribers: aemerson, mzolotukhin, llvm-commits
Differential Revision: https://reviews.llvm.org/D35777
llvm-svn: 308872
show more ...
|
#
ad993521 |
| 15-Jul-2017 |
Florian Hahn <florian.hahn@arm.com> |
[LoopInterchange] Add some optimization remarks.
Reviewers: anemet, karthikthecool, blitz.opensource
Reviewed By: anemet
Subscribers: mzolotukhin, llvm-commits
Differential Revision: https://revi
[LoopInterchange] Add some optimization remarks.
Reviewers: anemet, karthikthecool, blitz.opensource
Reviewed By: anemet
Subscribers: mzolotukhin, llvm-commits
Differential Revision: https://reviews.llvm.org/D35122
llvm-svn: 308094
show more ...
|
#
4eeff394 |
| 03-Jul-2017 |
Florian Hahn <florian.hahn@arm.com> |
[LoopInterchange] Add more debug messages to currentLimitations().
Summary: This makes it easier to find out which limitation prevented this pass from doing its work.
Reviewers: karthikthecool, mz
[LoopInterchange] Add more debug messages to currentLimitations().
Summary: This makes it easier to find out which limitation prevented this pass from doing its work.
Reviewers: karthikthecool, mzolotukhin, efriedma, mcrosier
Reviewed By: mcrosier
Subscribers: mcrosier, llvm-commits
Differential Revision: https://reviews.llvm.org/D34940
llvm-svn: 307035
show more ...
|
Revision tags: llvmorg-4.0.1, llvmorg-4.0.1-rc3, llvmorg-4.0.1-rc2, llvmorg-4.0.1-rc1, llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3, llvmorg-4.0.0-rc2 |
|
#
9d8f6f8a |
| 29-Jan-2017 |
Davide Italiano <davide@freebsd.org> |
Remove inclusion of SSAUpdater from several passes.
It is, in fact, unused. Found while reviewing Danny's new SSAUpdater and porting passes to it to see how the new API looked like.
llvm-svn: 293407
|
Revision tags: llvmorg-4.0.0-rc1 |
|
#
aec2fa35 |
| 19-Dec-2016 |
Daniel Jasper <djasper@google.com> |
Revert @llvm.assume with operator bundles (r289755-r289757)
This creates non-linear behavior in the inliner (see more details in r289755's commit thread).
llvm-svn: 290086
|
#
3ca4a6bc |
| 15-Dec-2016 |
Hal Finkel <hfinkel@anl.gov> |
Remove the AssumptionCache
After r289755, the AssumptionCache is no longer needed. Variables affected by assumptions are now found by using the new operand-bundle-based scheme. This new scheme is mo
Remove the AssumptionCache
After r289755, the AssumptionCache is no longer needed. Variables affected by assumptions are now found by using the new operand-bundle-based scheme. This new scheme is more computationally efficient, and also we need much less code...
llvm-svn: 289756
show more ...
|
Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1 |
|
#
fca1ff0d |
| 03-Nov-2016 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a bug found by inspection by PVS-Studio.
This condition is trivially always true prior to the change. The comment at the call site makes it clear that we expect *all* of these to be '=', 'S', or
Fix a bug found by inspection by PVS-Studio.
This condition is trivially always true prior to the change. The comment at the call site makes it clear that we expect *all* of these to be '=', 'S', or 'I' so fix the code.
We have a bug I will update to track the fact that Clang doesn't warn on this: http://llvm.org/PR13101
llvm-svn: 285930
show more ...
|
#
00eb8db3 |
| 21-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
[LoopInterchange] Track all dependencies, not just anti dependencies.
Currently, we give up on loop interchange if we encounter a flow dependency anywhere in the loop list. Worse yet, we don't even
[LoopInterchange] Track all dependencies, not just anti dependencies.
Currently, we give up on loop interchange if we encounter a flow dependency anywhere in the loop list. Worse yet, we don't even track output dependencies.
This patch updates the dependency matrix computation to track flow and output dependencies in the same way we track anti dependencies.
This improves an internal workload by 2.2x.
Note the loop interchange pass is off by default and it can be enabled with '-mllvm -enable-loopinterchange'
Differential Revision: https://reviews.llvm.org/D24564
llvm-svn: 282101
show more ...
|
#
f7c76f91 |
| 21-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
[LoopInterchange] Various cleanup. NFC.
llvm-svn: 282071
|
#
e6b3a63a |
| 14-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
[LoopInterchange] Typo. NFC.
llvm-svn: 281501
|
#
72431890 |
| 14-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
[LoopInterchange] Add CL option to override cost threshold.
Mostly useful for getting consistent lit testing.
llvm-svn: 281500
|
#
58ede270 |
| 14-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
[LoopInterchange] Cleanup debug whitespace. NFC.
llvm-svn: 281497
|
#
7ea0d394 |
| 13-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
[LoopInterchange] Minor refactor. NFC.
llvm-svn: 281334
|
#
61683a22 |
| 13-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
Don't use else if after return. Tidy comments. NFC.
llvm-svn: 281331
|
#
d18ea065 |
| 13-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
Typo. NFC.
llvm-svn: 281330
|
#
09c1109b |
| 13-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
[LoopInterchange] Tidy up and remove unnecessary dyn_casts. NFC.
llvm-svn: 281328
|
#
a4c42465 |
| 12-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
[LoopInterchange] Improve debug output. NFC.
llvm-svn: 281212
|
#
13bc0d19 |
| 07-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
Typo. NFC.
llvm-svn: 280834
|
#
90bcb917 |
| 07-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
[LoopInterchange] Improve debug output. NFC.
llvm-svn: 280820
|
#
f5814f56 |
| 07-Sep-2016 |
Chad Rosier <mcrosier@codeaurora.org> |
[LoopInterchange] Improve debug output. NFC.
llvm-svn: 280819
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2 |
|
#
0a16c228 |
| 11-Aug-2016 |
David Majnemer <david.majnemer@gmail.com> |
Use range algorithms instead of unpacking begin/end
No functionality change is intended.
llvm-svn: 278417
|
Revision tags: llvmorg-3.9.0-rc1 |
|
#
376a18bd |
| 24-Jul-2016 |
Elena Demikhovsky <elena.demikhovsky@intel.com> |
[Loop Vectorizer] Handling loops FP induction variables.
Allowed loop vectorization with secondary FP IVs. Like this: float *A; float x = init; for (int i=0; i < N; ++i) { A[i] = x; x -= fp_inc;
[Loop Vectorizer] Handling loops FP induction variables.
Allowed loop vectorization with secondary FP IVs. Like this: float *A; float x = init; for (int i=0; i < N; ++i) { A[i] = x; x -= fp_inc; }
The auto-vectorization is possible when the induction binary operator is "fast" or the function has "unsafe" attribute.
Differential Revision: https://reviews.llvm.org/D21330
llvm-svn: 276554
show more ...
|
#
135f735a |
| 26-Jun-2016 |
Benjamin Kramer <benny.kra@googlemail.com> |
Apply clang-tidy's modernize-loop-convert to most of lib/Transforms.
Only minor manual fixes. No functionality change intended.
llvm-svn: 273808
|