[PATCH] D13487: [Polly] Load/Store scalar accesses before/after the statement itself

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 12 10:30:51 PDT 2015


Meinersbur updated the summary for this revision.
Meinersbur updated this revision to Diff 37133.
Meinersbur added a comment.

One LNT test was failing (consumer-lame). In some cases the SCEV expander can generate code into the current position. This yields invalid code if a neighboring block which is not dominated by the former block tries to expand the same SCEV.

The update undoes the use single ValueMap for entire subregion patch, therefore adds another map that contains all values that are potentially visible in other ScopStmts. Redundant maps to be cleaned up in a separate patch.

I would have liked a handwritten testcase , but I could not easily determine under which conditions SCEV expander does this.


http://reviews.llvm.org/D13487

Files:
  include/polly/CodeGen/BlockGenerators.h
  include/polly/ScopInfo.h
  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/phi_loop_carried_float.ll
  test/Isl/CodeGen/phi_loop_carried_float_escape.ll
  test/Isl/CodeGen/read-only-scalars.ll
  test/Isl/CodeGen/scev_expansion_in_nonaffine.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D13487.37133.patch
Type: text/x-patch
Size: 24367 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151012/f417702d/attachment.bin>


More information about the llvm-commits mailing list