llvm-project/polly/lib/CodeGen
Tobias Grosser bc29e0b27c RegionGenerator: Only introduce subregion.ivs for loops fully within a subregion
IVs of loops for which the loop header is in the subregion, but not the entire
loop may be incremented outside of the subregion and can consequently not be
kept private to the subregion. Instead, they need to and are modeled as virtual
loops in the iteration domains. As this is the case, generating new subregion
induction variables for such loops is not needed and indeed wrong as they would
hide the virtual induction variables modeled in the scop.

This fixes a miscompile in MultiSource/Benchmarks/Ptrdist/bc and
MultiSource/Benchmarks/nbench/. Thanks Michael and Johannes for their
investiagations and helpful observations regarding this bug.

llvm-svn: 252860
2015-11-12 07:34:09 +00:00
..
BlockGenerators.cpp RegionGenerator: Only introduce subregion.ivs for loops fully within a subregion 2015-11-12 07:34:09 +00:00
CodeGeneration.cpp [FIX] Use unreachable to indicate dead code and repair dominance 2015-11-08 17:57:41 +00:00
IRBuilder.cpp IRBuilder: Use Map.lookup instead of Map.find [NFC] 2015-10-07 13:35:20 +00:00
IslAst.cpp Remove old and redundant options 2015-11-02 10:13:32 +00:00
IslExprBuilder.cpp ScopInfo: Make getDimensionSize better reflect which dimensions carry sizes 2015-11-10 14:24:21 +00:00
IslNodeBuilder.cpp [FIX] Do not generate code for parameters referencing dead values 2015-11-11 22:40:51 +00:00
LoopGenerators.cpp polly/ADT: Remove implicit ilist iterator conversions, NFC 2015-11-06 22:56:54 +00:00
RuntimeDebugBuilder.cpp polly/ADT: Remove implicit ilist iterator conversions, NFC 2015-11-06 22:56:54 +00:00
Utils.cpp Fix Codegen adding a second exit out of region 2015-08-18 13:14:42 +00:00