[PATCH] D12014: [Polly] Make TempScopInfo a RegionPass

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 13 10:00:05 PDT 2015


Meinersbur created this revision.
Meinersbur added reviewers: grosser, jdoerfert.
Meinersbur added subscribers: pollydev, llvm-commits.
Meinersbur added a project: Polly.

This modifies the order in which Polly passes are executed.

Assuming a function has two scops (A and B), the order before was:

FunctionPassManager:
  ScopDetection
  IndependentBlocks
  TempScopInfo for A and B
  RegionPassManager:
    ScopInfo for A
    DependenceInfo for A
    IslScheduleOptimizer for A
    IslAstInfo for A
    CodeGeneration for A
    ScopInfo for B
    DependenceInfo for B
    IslScheduleOptimizer for B
    IslAstInfo for B
    CodeGeneration for B

After this patch:

FunctionPassManager:
  ScopDetection
  IndependentBlocks
  RegionPassManager:
    TempScopInfo for A
    ScopInfo for A
    DependenceInfo for A
    IslScheduleOptimizer for A
    IslAstInfo for A
    CodeGeneration for A
    TempScopInfo for B
    ScopInfo for B
    DependenceInfo for B
    IslScheduleOptimizer for B
    IslAstInfo for B
    CodeGeneration for B

TempScopInfo for B might store information and references to the IR that CodeGeneration for A might modify. Changing the order ensures that the IR is not modified from the analysis of a region until code generation.

This is a preparation for allowing PHI nodes in exit blocks which are entries for different regions. CodeGeneration would "steal" each other's PHI nodes.

http://reviews.llvm.org/D12014

Files:
  include/polly/TempScopInfo.h
  lib/Analysis/ScopInfo.cpp
  lib/Analysis/TempScopInfo.cpp
  lib/CodeGen/CodeGeneration.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12014.32070.patch
Type: text/x-patch
Size: 5163 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150813/394b02f6/attachment.bin>


More information about the llvm-commits mailing list