summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/LICM/guards.ll
Commit message (Collapse)AuthorAgeFilesLines
* [MemorySSA] Don't hoist stores if interfering uses (as calls) exist.Alina Sbirlea2019-10-031-1/+1
| | | | llvm-svn: 373674
* [LoopPassManager + MemorySSA] Only enable use of MemorySSA for LPMs known to ↵Alina Sbirlea2019-08-211-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | preserve it. Summary: Add a flag to the FunctionToLoopAdaptor that allows enabling MemorySSA only for the loop pass managers that are known to preserve it. If an LPM is known to have only loop transforms that *all* preserve MemorySSA, then use MemorySSA if `EnableMSSALoopDependency` is set. If an LPM has loop passes that do not preserve MemorySSA, then the flag passed is `false`, regardless of the value of `EnableMSSALoopDependency`. When using a custom loop pass pipeline via `passes=...`, use keyword `loop` vs `loop-mssa` to use MemorySSA in that LPM. If a loop that does not preserve MemorySSA is added while using the `loop-mssa` keyword, that's an error. Add the new `loop-mssa` keyword to a few tests where a difference occurs when enabling MemorySSA. Reviewers: chandlerc Subscribers: mehdi_amini, Prazek, george.burgess.iv, sanjoy.google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66376 llvm-svn: 369548
* Revert "Temporarily Revert "Add basic loop fusion pass.""Eric Christopher2019-04-171-0/+540
| | | | | | | | The reversion apparently deleted the test/Transforms directory. Will be re-reverting again. llvm-svn: 358552
* Temporarily Revert "Add basic loop fusion pass."Eric Christopher2019-04-171-540/+0
| | | | | | | | As it's causing some bot failures (and per request from kbarton). This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda. llvm-svn: 358546
* [TEST] Update test comments, refactor checks with update_test_checks.pyMax Kazantsev2019-02-151-90/+216
| | | | | | | This patch changes messages in guards-related tests to adequately reflect reality. llvm-svn: 354101
* [LICM] Hoist guards from non-header blocksMax Kazantsev2018-11-121-2/+150
| | | | | | | | | | | This patch relaxes overconservative checks on whether or not we could write memory before we execute an instruction. This allows us to hoist guards out of loops even if they are not in the header block. Differential Revision: https://reviews.llvm.org/D50891 Reviewed By: fedor.sergeev llvm-svn: 346643
* [LICM] Use ICFLoopSafetyInfo in LICMMax Kazantsev2018-11-061-3/+3
| | | | | | | | | | | | | | | This patch makes LICM use `ICFLoopSafetyInfo` that is a smarter version of LoopSafetyInfo that leverages power of Implicit Control Flow Tracking to keep track of throwing instructions and give less pessimistic answers to queries related to throws. The ICFLoopSafetyInfo itself has been introduced in rL344601. This patch enables it in LICM only. Differential Revision: https://reviews.llvm.org/D50377 Reviewed By: apilipenko llvm-svn: 346201
* [NFC] Add Requires: asserts where neededMax Kazantsev2018-09-131-0/+1
| | | | llvm-svn: 342108
* [NFC] Use expensive asserts in relevant LICM testsMax Kazantsev2018-09-131-2/+2
| | | | llvm-svn: 342107
* [LICM] Hoist guards with invariant conditionsMax Kazantsev2018-08-211-6/+7
| | | | | | | | | | This patch teaches LICM to hoist guards from the loop if they are guaranteed to execute and if there are no side effects that could prevent that. Differential Revision: https://reviews.llvm.org/D50501 Reviewed By: reames llvm-svn: 340256
* [NFC] Add some LICM testsMax Kazantsev2018-08-211-0/+179
| | | | llvm-svn: 340254
* [LICM] Further strengthen tests for hoisting guards and invariant.starts [NFC]Philip Reames2018-08-061-0/+62
| | | | llvm-svn: 339062
* [LICM] Add tests highlighting missing hoists for intrinsics [NFC]Philip Reames2018-08-061-0/+23
llvm-svn: 339054
OpenPOWER on IntegriCloud