summaryrefslogtreecommitdiffstats
path: root/polly/test/Isl/CodeGen/invariant_load_complex_condition.ll
Commit message (Collapse)AuthorAgeFilesLines
* [IslNodeBuilder] Relax complexity check in invariant loads and run it earlyTobias Grosser2017-07-201-70/+0
| | | | | | | | | | | | | | | | | | | | | | | | When performing invariant load hoisting we check that invariant load expressions are not too complex. Up to this commit, we performed this check by counting the sum of dimensions in the access range as a very simple heuristic. This heuristic is a little too conservative, as it prevents hoisting for any scops with a very large number of parameters. Hence, we update the heuristic to only count existentially quantified dimensions and set dimensions. We expect this to still detect the problematic expressions in h264 because of which this check was originally introduced. For some unknown reason, this complexity check was originally committed in IslNodeBuilder. It really belongs in ScopInfo, as there is no point in optimizing a program which we could have known earlier cannot be code generated. The benefit of running the check early is that we can avoid to even hoist checks that are expensive to code generate as invariant loads. This can be seen in the changed tests, where we now indeed detect the scop, but just not invariant load hoist the complicated access. We also improve the formatting of the code, document it, and use isl++ to simplify expressions. llvm-svn: 308659
* [tests] Make sure tests do not end in 'unreachable' - Part IIITobias Grosser2017-03-071-2/+2
| | | | | | | | | | There is no point in optimizing unreachable code, hence our test cases should always return. This commit is part of a series that makes Polly more robust on the presence of unreachables. llvm-svn: 297158
* [tests] Force invariant load hoisting for test cases that need itTobias Grosser2016-08-151-1/+1
| | | | | | | | This will make it easier to switch the default of Polly's invariant load hoisting strategy and also makes it very clear that these test cases indeed require invariant code hoisting to work. llvm-svn: 278667
* [FIX] Prevent compile time problems due to complex invariant loadsJohannes Doerfert2016-03-011-0/+70
This cures the symptoms we see in h264 of SPEC2006 but not the cause. llvm-svn: 262327
OpenPOWER on IntegriCloud