llvm-project/polly/lib/Transform
Michael Kruse 2dab88e652 [OpTree] Introduce shortcut for computing the def->target mapping. NFCI.
In case the schedule has not changed and the operand tree root uses a
value defined in an ancestor loop, the def-to-target mapping is trivial.
For instance, the SCoP

    for (int i < 0; i < N; i+=1) {
    DefStmt:
      D = ...;
      for (int j < 0; j < N; j+=1) {
    TargetStmt:
        use(D);
      }
    }

has DefStmt-to-TargetStmt mapping of

    { DefStmt[i] -> TargetStmt[i,j] }

This should apply on the majority of def-to-target mappings.
This patch detects this case and directly constructs the expected
mapping. It assumes that the mapping never crosses the loop header
DefStmt is in, which ForwardOpTree does not support at the moment
anyway.

Differential Revision: https://reviews.llvm.org/D47752

llvm-svn: 334134
2018-06-06 21:37:35 +00:00
..
Canonicalization.cpp Fixup Polly for an LLVM header file change. 2018-04-24 02:23:41 +00:00
CodePreparation.cpp Update for a header file move in LLVM 2018-06-04 21:23:32 +00:00
DeLICM.cpp [polly] Update uses of DEBUG macro to LLVM_DEBUG. 2018-05-15 13:37:17 +00:00
DeadCodeElimination.cpp getDependences to new C++ interface 2018-06-06 13:10:32 +00:00
FlattenAlgo.cpp [polly] Update uses of DEBUG macro to LLVM_DEBUG. 2018-05-15 13:37:17 +00:00
FlattenSchedule.cpp [polly] Update uses of DEBUG macro to LLVM_DEBUG. 2018-05-15 13:37:17 +00:00
ForwardOpTree.cpp [OpTree] Introduce shortcut for computing the def->target mapping. NFCI. 2018-06-06 21:37:35 +00:00
MaximalStaticExpansion.cpp getDependences to new C++ interface 2018-06-06 13:10:32 +00:00
RewriteByReferenceParameters.cpp Add rewrite by-reference parameter pass 2017-08-17 05:25:08 +00:00
ScheduleOptimizer.cpp getDependences to new C++ interface 2018-06-06 13:10:32 +00:00
ScopInliner.cpp [polly] Update uses of DEBUG macro to LLVM_DEBUG. 2018-05-15 13:37:17 +00:00
Simplify.cpp [polly] Update uses of DEBUG macro to LLVM_DEBUG. 2018-05-15 13:37:17 +00:00
ZoneAlgo.cpp [ZoneAlgo] Make ZoneAlgorithm::isNormalized out-of-quota safe. 2018-05-31 22:44:23 +00:00