[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