[PATCH] D12499: [WIP] Replace ScalarEvolution based domain generation
Johannes Doerfert via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 31 12:41:28 PDT 2015
jdoerfert created this revision.
jdoerfert added reviewers: grosser, mssimpso, Meinersbur.
jdoerfert added a subscriber: Polly.
Herald added a subscriber: sanjoy.
This patch replaces the second legacy part of the domain generation, namely
the ScalarEvolution part that was used to obtain loop bounds. Alternatively,
we iterate over the loops in the region and propagate the back edge condition
to the header blocks. Afterwards we propagate the new information once
through the whole region.
Why [WIP]:
- 4 Unit tests are not yet adjusted, I think 3 have just different formed
output but for one this patch might be broken (some non-affine region
stuff)
- 9 LNT compile time failures because we allow loops with pointer bounds
that cause some crash in the IslExprBuilder:
llvm_unreachable( "Only additive binary operations are allowed on
pointer types.");
- It is not yet 100% clear if and why one pass is enough to propagate all
loop-carried information.
Benefits:
- This patch already identified a couple of broken unit tests we had for
years.
- We allow more loops already (numbers will follow) and the step to
multiple exit and multiple back edges is minimal.
- It performs well (numbers will follow), at least that's what I think.
- It allows to model the overflow checks properly as we actually visit
every block in the SCoP and know where which condition is evaluated.
Drawbacks:
- See "Why [WIP]"
- Big change
http://reviews.llvm.org/D12499
Files:
include/polly/ScopInfo.h
lib/Analysis/ScopInfo.cpp
test/Isl/CodeGen/OpenMP/loop-body-references-outer-values-3.ll
test/Isl/CodeGen/OpenMP/reference-preceeding-loop.ll
test/Isl/CodeGen/two-scops-in-row.ll
test/ScopInfo/NonAffine/non-affine-loop-condition-dependent-access_2.ll
test/ScopInfo/isl_trip_count_01.ll
test/ScopInfo/isl_trip_count_02.ll
test/ScopInfo/loop_affine_bound_0.ll
test/ScopInfo/loop_affine_bound_1.ll
test/ScopInfo/loop_affine_bound_2.ll
test/ScopInfo/pointer-type-expressions.ll
test/ScopInfo/redundant_parameter_constraint.ll
test/ScopInfo/unsigned-condition.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12499.33613.patch
Type: text/x-patch
Size: 31164 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150831/384d4dab/attachment.bin>
More information about the llvm-commits
mailing list