llvm-project/polly/lib/Transform
Michael Kruse bfca5f4334 [DeLICM] Allow non-injective PHIRead->PHIWrite mapping.
Remove an assertion that tests the injectivity of the
PHIRead -> PHIWrite relation.  That is, allow a single PHI write to be
used by multiple PHI reads.  This may happen due to some statements
containing the PHI write not having the statement instances that would
overwrite the previous incoming value due to (assumed/invalid) contexts.
This result in that PHI write is mapped to multiple targets which is not
supported.  Codegen will select one one of the targets using
getAddressFunction().  However, the runtime check should protect us from
this case ever being executed.

We therefore allow injective PHI relations.  Additional calculations to
detect/santitize this case would probably not be worth the compuational
effort.

This fixes llvm.org/PR34485

llvm-svn: 313902
2017-09-21 19:08:23 +00:00
..
Canonicalization.cpp [Polly] Run early cse + memory SSA to remove redundancies in the input code 2017-08-19 08:44:46 +00:00
CodePreparation.cpp [Polly][PM][WIP] Polly pass registration 2017-08-02 15:52:25 +00:00
DeLICM.cpp [DeLICM] Allow non-injective PHIRead->PHIWrite mapping. 2017-09-21 19:08:23 +00:00
DeadCodeElimination.cpp Move include/isl-noexceptions.h to include/isl/isl-noexceptions.h 2017-08-22 22:04:22 +00:00
FlattenAlgo.cpp [isl++] Rebase isl C++ bindings on top of 29aee98ce 2017-05-21 15:59:15 +00:00
FlattenSchedule.cpp [ScopInfo] Move Scop::getPwAffOnly to isl++ [NFC] 2017-08-06 21:42:38 +00:00
ForwardOpTree.cpp [ForwardOpTree] Allow out-of-quota in examination part of forwardTree. 2017-09-19 22:53:20 +00:00
MaximalStaticExpansion.cpp Fix some unused warnings in polly 2017-09-07 22:46:51 +00:00
RewriteByReferenceParameters.cpp Add rewrite by-reference parameter pass 2017-08-17 05:25:08 +00:00
ScheduleOptimizer.cpp Check whether IslAstInfo and DependenceInfo were computed for the same Scop. 2017-09-21 00:01:13 +00:00
ScopInliner.cpp [ScopInliner] Fix hidden overload warning. NFC. 2017-08-23 13:07:43 +00:00
Simplify.cpp [Simplify] Actually remove unsed instruction from region header. 2017-09-05 19:44:39 +00:00
ZoneAlgo.cpp [ForwardOpTree] Test the max operations quota. 2017-09-18 17:43:50 +00:00