[PATCH] D15681: [Polly] Unique phi write accesses
Michael Kruse via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 20 16:34:37 PST 2015
Meinersbur created this revision.
Meinersbur added reviewers: jdoerfert, grosser.
Meinersbur added subscribers: llvm-commits, pollydev.
Meinersbur added a project: Polly.
Ensure that there is at most one phi write access per PHINode and ScopStmt. In particular, this would be possible for non-affine subregions with multiple exiting blocks. We replace multiple MAY_WRITE accesses by one MUST_WRITE access. The written value is constructed using a PHINode of all exiting blocks. The interpretation of the PHI WRITE's "accessed value" changed from the incoming value to the PHI like for PHI READs since there is no unique incoming value.
Because region simplification shuffles around PHI nodes -- particularly with exit node PHIs -- the PHINodes at analysis time does not always exist anymore in the code generation pass. We instead remember the incoming block/value pair in the MemoryAccess.
http://reviews.llvm.org/D15681
Files:
include/polly/ScopInfo.h
lib/Analysis/ScopInfo.cpp
lib/CodeGen/BlockGenerators.cpp
test/Isl/CodeGen/non-affine-phi-node-expansion-2.ll
test/Isl/CodeGen/non-affine-phi-node-expansion-3.ll
test/Isl/CodeGen/non-affine-phi-node-expansion-4.ll
test/Isl/CodeGen/non-affine-region-exit-phi-incoming-synthesize.ll
test/Isl/CodeGen/pr25241.ll
test/ScopInfo/NonAffine/non_affine_loop_used_later.ll
test/ScopInfo/intra-non-affine-stmt-phi-node.ll
test/ScopInfo/non_affine_region_2.ll
test/ScopInfo/non_affine_region_3.ll
test/ScopInfo/non_affine_region_4.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15681.43340.patch
Type: text/x-patch
Size: 24518 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151221/a71c21cb/attachment.bin>
More information about the llvm-commits
mailing list