[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