[PATCH] D14715: [Polly] Loop versioning after code generation (WIP)

Michael Kruse via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 16 10:46:47 PST 2015


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

Loop versioning modifies the scop, especially the PHI nodes in the entry and exit block. Code generation must take this into account and test for multiple cases where the PHIs could have landed which can also depend on the code surrounding the scop. Not considering all cases has been a source of many bugs.

With this patch we generate code before modifying the scop region into a region disconnected from the original code. Only after the code has been created, it is connected as an alternative of the original scop region.

Going further with this idea, we could generate all SCoPs in a function before connecting them in order to not require to verify whether other detected SCoPs are still valid.

http://reviews.llvm.org/D14715

Files:
  include/polly/CodeGen/BlockGenerators.h
  include/polly/CodeGen/IRBuilder.h
  include/polly/CodeGen/IslNodeBuilder.h
  include/polly/ScopInfo.h
  include/polly/Support/ScopHelper.h
  lib/Analysis/ScopInfo.cpp
  lib/CodeGen/BlockGenerators.cpp
  lib/CodeGen/CodeGeneration.cpp
  lib/Support/ScopHelper.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14715.40310.patch
Type: text/x-patch
Size: 26476 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151116/ddb6b170/attachment.bin>


More information about the llvm-commits mailing list