[PATCH] D14351: [Refactor] Replace RegionPasses by FunctionPasses
Johannes Doerfert via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 4 14:38:30 PST 2015
jdoerfert created this revision.
jdoerfert added reviewers: grosser, Meinersbur.
jdoerfert added a subscriber: Polly.
Herald added a subscriber: sanjoy.
The main change is the switch to function instead of region passes.
However, due to the changed interface and the fact that analysis now
run on multiple SCoPs before their results are queried, other
adjustments were needed. These additional changes include:
- Allow passes to handle multiple SCoPs at once, e.g., map the SCoPs
to the information formerly stored as members in the pass.
- Parametrize functions with the SCoP in question as there is not
only one at a time anymore.
- Update the tests not to look for the region pass manager output
- Add a explicit ScopPass initialization function that is called
once per function. This way analysis passes do not need to be
queried for each SCoP.
- Remap values between SCoPs in a function correctly.
------------------------------------------------------------------------
There is a unit test failing because we split the region and that causes
dominance problems for other SCoPs. However, I'll wait till we fix the two
open dominance bugs (including the region splitting one) before I fix this.
http://reviews.llvm.org/D14351
Files:
include/polly/CodeGen/BlockGenerators.h
include/polly/CodeGen/IslAst.h
include/polly/CodeGen/IslNodeBuilder.h
include/polly/DependenceInfo.h
include/polly/ScopDetection.h
include/polly/ScopInfo.h
include/polly/ScopPass.h
lib/Analysis/DependenceInfo.cpp
lib/Analysis/ScopInfo.cpp
lib/Analysis/ScopPass.cpp
lib/CodeGen/BlockGenerators.cpp
lib/CodeGen/CodeGeneration.cpp
lib/CodeGen/IslAst.cpp
lib/CodeGen/IslExprBuilder.cpp
lib/CodeGen/IslNodeBuilder.cpp
lib/Exchange/JSONExporter.cpp
lib/Support/SCEVAffinator.cpp
lib/Transform/DeadCodeElimination.cpp
lib/Transform/ScheduleOptimizer.cpp
test/DependenceInfo/computeout.ll
test/DependenceInfo/sequential_loops.ll
test/Isl/CodeGen/MemAccess/simple_analyze.ll
test/Isl/CodeGen/invariant_load_escaping_second_scop.ll
test/Isl/CodeGen/simple_loop_non_single_exit.ll
test/Isl/CodeGen/simple_loop_non_single_exit_2.ll
test/Isl/CodeGen/simple_non_single_entry.ll
test/Isl/CodeGen/single_loop_zero_iterations.ll
test/Isl/CodeGen/two-scops-in-row.ll
test/ScopInfo/aliasing_many_parameters_not_all_involved.ll
test/ScopInfo/cond_in_loop.ll
test/ScopInfo/integers.ll
test/ScopInfo/undef_in_cond.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14351.39261.patch
Type: text/x-patch
Size: 69977 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151104/a2779b02/attachment.bin>
More information about the llvm-commits
mailing list