[PATCH] [Polly][PoC] First (smarter) step to remove IndependentBlocks & CodeGeneration
Johannes Doerfert
doerfert at cs.uni-saarland.de
Sun Oct 12 23:03:22 PDT 2014
Hi grosser, sebpop, dpeixott, simbuerg,
This is a proof of concept that we can model the SCoP and the
dependences as accurate as before even witout IndependentBlocks
and CodePreparation. It should help to start a discussion about
Polly as analyzer and make it more applicable at some point.
Changes include:
- Remove the CodeGeneration pass and tests
- Remove the IndependentBlocks pass and tests
- Removed some tests only testing the passes above (not all though)
- Modified some tests that were failing without good reason
- Allowed PHI nodes in ScopDetection
- Changed the SCoP creation to allow the proper handling of PHIs
- Modelt PHI nodes precicly in the SCoP
- Enabled -polly-codegen-scev and disabled "DisableIntraScopScalarToArray"
- A test case for non synthesizable PHI nodes
(test/ScopInfo/phi_scalar_simple_1.ll)
Features include:
- Only PHI nodes needed are represented in the SCoP, PHI chains
can therefore be reduced if they do not change the value. This
should also "look through" trivial PHIs, similar to the old code
prepare pass.
Missing changes:
- The code generation will not be able to handle PHI nodes properly
Thoughts of any kind are welcome.
http://reviews.llvm.org/D5749
Files:
include/polly/LinkAllPasses.h
include/polly/ScopDetection.h
include/polly/ScopInfo.h
include/polly/Support/ScopHelper.h
include/polly/TempScopInfo.h
lib/Analysis/ScopDetection.cpp
lib/Analysis/ScopInfo.cpp
lib/Analysis/TempScopInfo.cpp
lib/CMakeLists.txt
lib/CodeGen/BlockGenerators.cpp
lib/CodeGen/CodeGeneration.cpp
lib/CodeGen/IslCodeGeneration.cpp
lib/Makefile
lib/Support/RegisterPasses.cpp
lib/Support/ScopHelper.cpp
lib/Transform/Canonicalization.cpp
lib/Transform/CodePreparation.cpp
lib/Transform/IndependentBlocks.cpp
test/Cloog/CodeGen/constant_condition.ll
test/CodePreparation/if_condition.ll
test/CodePreparation/multiple_loops_trivial_phis.ll
test/CodePreparation/single_loop_trivial_phi.ll
test/IndependentBlocks/inter_bb_scalar_dep.ll
test/IndependentBlocks/intra_and_inter_bb_scalar_dep.ll
test/IndependentBlocks/intra_bb_scalar_dep.ll
test/IndependentBlocks/phi_outside_scop.ll
test/IndependentBlocks/scalar_to_array.ll
test/IndependentBlocks/scev-invalidated.ll
test/Isl/Ast/dependence_distance_parametric_expr.ll
test/Isl/CodeGen/constant_condition.ll
test/Isl/CodeGen/loop_with_condition_nested.ll
test/ScopDetect/simple_loop_two_phi_nodes.ll
test/ScopInfo/bug_2011_1_5.ll
test/ScopInfo/loop_carry.ll
test/ScopInfo/phi_not_grouped_at_top.ll
test/ScopInfo/phi_scalar_simple_1.ll
test/ScopInfo/phi_with_invoke_edge.ll
test/ScopInfo/scalar.ll
test/TempScop/inter_bb_scalar_dep.ll
test/TempScop/intra_and_inter_bb_scalar_dep.ll
test/TempScop/intra_bb_scalar_dep.ll
test/TempScop/scalar_to_array.ll
test/TempScop/tempscop-printing.ll
www/documentation/passes.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D5749.14783.patch
Type: text/x-patch
Size: 102224 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141013/ffdbfcbb/attachment.bin>
More information about the llvm-commits
mailing list