[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