summaryrefslogtreecommitdiffstats
path: root/polly/test/ScopInfo/NonAffine/non_affine_conditional_nested.ll
Commit message (Collapse)AuthorAgeFilesLines
* tests: Drop -polly-detect-unprofitable and -polly-no-early-exitTobias Grosser2015-10-061-1/+1
| | | | | | | | These flags are now always passed to all tests and need to be disabled if not needed. Disabling these flags, rather than passing them to almost all tests, significantly simplfies our RUN: lines. llvm-svn: 249422
* Traverse the SCoP to compute non-loop-carried domain conditionsJohannes Doerfert2015-08-301-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | In order to compute domain conditions for conditionals we will now traverse the region in the ScopInfo once and build the domains for each block in the region. The SCoP statements can then use these constraints when they build their domain. The reason behind this change is twofold: 1) This removes a big chunk of preprocessing logic from the TempScopInfo, namely the Conditionals we used to build there. Additionally to moving this logic it is also simplified. Instead of walking the dominance tree up for each basic block in the region (as we did before), we now traverse the region only once in order to collect the domain conditions. 2) This is the first step towards the isl based domain creation. The second step will traverse the region similar to this step, however it will propagate back edge conditions. Once both are in place this conditional handling will allow multiple exit loops additional logic. Reviewers: grosser Differential Revision: http://reviews.llvm.org/D12428 llvm-svn: 246398
* Do not detect Scops with only one loop.Tobias Grosser2015-08-271-1/+2
| | | | | | | | | | | | | | | | | | | | If a region does not have more than one loop, we do not identify it as a Scop in ScopDetection. The main optimizations Polly is currently performing (tiling, preparation for outer-loop vectorization and loop fusion) are unlikely to have a positive impact on individual loops. In some cases, Polly's run-time alias checks or conditional hoisting may still have a positive impact, but those are mostly enabling transformations which LLVM already performs for individual loops. As we do not focus on individual loops, we leave them untouched to not introduce compile time regressions and execution time noise. This results in good compile time reduction (oourafft: -73.99%, smg2000: -56.25%). Contributed-by: Pratik Bhatu <cs12b1010@iith.ac.in> Reviewers: grosser Differential Revision: http://reviews.llvm.org/D12268 llvm-svn: 246161
* Make non-affine statement names isl compatibleTobias Grosser2015-07-091-7/+7
| | | | | | | | | Named isl sets can generally have any name if they remain within Polly, but only certain strings can be parsed by isl. The new names we create ensure that we can always copy-past isl strings from Polly to other isl tools, e.g. for debugging. llvm-svn: 241787
* Rename 'scattering' to 'schedule'Tobias Grosser2015-04-211-1/+1
| | | | | | | | | | | | | | | | In Polly we used both the term 'scattering' and the term 'schedule' to describe the execution order of a statement without actually distinguishing between them. We now uniformly use the term 'schedule' for the execution order. This corresponds to the terminology of isl. History: CLooG introduced the term scattering as the generated code can be used as a sequential execution order (schedule) or as a parallel dimension enumerating different threads of execution (placement). In Polly and/or isl the term placement was never used, but we uniformly refer to an execution order as a schedule and only later introduce parallelism. When doing so we do not talk about about specific placement dimensions. llvm-svn: 235380
* Update Polly tests to handle explicitly typed load changes in LLVM.David Blaikie2015-02-271-3/+3
| | | | llvm-svn: 230796
* Update Polly tests to handle explicitly typed gep changes in LLVMDavid Blaikie2015-02-271-4/+4
| | | | llvm-svn: 230784
* Allow non-affine control flow -- SCoP ModelingJohannes Doerfert2015-02-241-0/+72
This allows us to model non-affine regions in the SCoP representation. SCoP statements can now describe either basic blocks or non-affine regions. In the latter case all accesses in the region are accumulated for the statement and write accesses, except in the entry, have to be marked as may-write. Differential Revision: http://reviews.llvm.org/D7846 llvm-svn: 230329
OpenPOWER on IntegriCloud