summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/IRCE/only-upper-check.ll
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Temporarily Revert "Add basic loop fusion pass.""Eric Christopher2019-04-171-0/+37
| | | | | | | | 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-37/+0
| | | | | | | | As it's causing some bot failures (and per request from kbarton). This reverts commit r358543/ab70da07286e618016e78247e4a24fcb84077fda. llvm-svn: 358546
* [NFC] Remove obsolete enum RangeCheckKindMax Kazantsev2019-01-151-1/+0
| | | | llvm-svn: 351183
* [New PM][IRCE] port of Inductive Range Check Elimination pass to the new ↵Fedor Sergeev2018-03-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | pass manager There are two nontrivial details here: * Loop structure update interface is quite different with new pass manager, so the code to add new loops was factored out * BranchProbabilityInfo is not a loop analysis, so it can not be just getResult'ed from within the loop pass. It cant even be queried through getCachedResult as LoopCanonicalization sequence (e.g. LoopSimplify) might invalidate BPI results. Complete solution for BPI will likely take some time to discuss and figure out, so for now this was partially solved by making BPI optional in IRCE (skipping a couple of profitability checks if it is absent). Most of the IRCE tests got their corresponding new-pass-manager variant enabled. Only two of them depend on BPI, both marked with TODO, to be turned on when BPI starts being available for loop passes. Reviewers: chandlerc, mkazantsev, sanjoy, asbirlea Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D43795 llvm-svn: 327619
* [IRCE][NFC] Rename fields of InductiveRangeCheckMax Kazantsev2017-10-311-1/+1
| | | | | | | | | | Rename `Offset`, `Scale`, `Length` into `Begin`, `Step`, `End` respectively to make naming of similar entities for Ranges and Range Checks more consistent. Differential Revision: https://reviews.llvm.org/D39414 llvm-svn: 316979
* [IRCE][NFC] Store Length as SCEV in RangeCheck instead of ValueMax Kazantsev2017-10-301-1/+1
| | | | llvm-svn: 316889
* [IRCE] Create llvm::Loop instances for cloned out loopsSanjoy Das2016-08-141-1/+1
| | | | llvm-svn: 278618
* [IRCE] Optimize "uses" not branches; NFCISanjoy Das2016-05-231-1/+1
| | | | | | | | | | This changes IRCE to optimize uses, and not branches. This change is NFCI since the uses we do inspect are in practice only ever going to be the condition use in conditional branches; but this flexibility will later allow us to analyze more complex expressions than just a direct branch on a range check. llvm-svn: 270500
* [IRCE] Re-commit tests cases.Sanjoy Das2015-03-171-0/+37
| | | | | | | | Re-commit the test cases added in r232444. These now use -irce-print-changed-loops and -irce-print-range-checks so they run correctly on a without asserts build of llvm. llvm-svn: 232452
* [IRCE] Delete two tests.Sanjoy Das2015-03-171-37/+0
| | | | | | | | I accidentally checked in two tests that used -debug-only -- these fail on a release LLVM build. Temporarily delete these from the repo to keep the bots green while I fix this locally. llvm-svn: 232446
* [IRCE] Support half-range checks.Sanjoy Das2015-03-171-0/+37
This change to IRCE gets it to recognize "half" range checks. Half range checks are range checks that only either check if the index is `slt` some positive integer ("length") or if the index is `sge` `0`. The range solver does not try to be clever / aggressive about solving half-range checks -- it transforms "I < L" to "0 <= I < L" and "0 <= I" to "0 <= I < INT_SMAX". This is safe, but not always optimal. llvm-svn: 232444
OpenPOWER on IntegriCloud