summaryrefslogtreecommitdiffstats
path: root/polly/lib/CodeGen/CodeGeneration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'polly/lib/CodeGen/CodeGeneration.cpp')
-rw-r--r--polly/lib/CodeGen/CodeGeneration.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/polly/lib/CodeGen/CodeGeneration.cpp b/polly/lib/CodeGen/CodeGeneration.cpp
index b60cc7cd246..5569378982f 100644
--- a/polly/lib/CodeGen/CodeGeneration.cpp
+++ b/polly/lib/CodeGen/CodeGeneration.cpp
@@ -162,7 +162,6 @@ static bool CodeGen(Scop &S, IslAstInfo &AI, LoopInfo &LI, DominatorTree &DT,
assert(!R->isTopLevelRegion() && "Top level regions are not supported");
ScopAnnotator Annotator;
- Annotator.buildAliasScopes(S);
simplifyRegion(R, &DT, &LI, &RI);
assert(R->isSimple());
@@ -183,6 +182,11 @@ static bool CodeGen(Scop &S, IslAstInfo &AI, LoopInfo &LI, DominatorTree &DT,
IslNodeBuilder NodeBuilder(Builder, Annotator, DL, LI, SE, DT, S, StartBlock);
+ // All arrays must have their base pointers known before
+ // ScopAnnotator::buildAliasScopes.
+ NodeBuilder.allocateNewArrays();
+ Annotator.buildAliasScopes(S);
+
if (PerfMonitoring) {
PerfMonitor P(S, EnteringBB->getParent()->getParent());
P.initialize();
@@ -224,7 +228,6 @@ static bool CodeGen(Scop &S, IslAstInfo &AI, LoopInfo &LI, DominatorTree &DT,
isl_ast_node_free(AstRoot);
} else {
- NodeBuilder.allocateNewArrays();
NodeBuilder.addParameters(S.getContext());
Value *RTC = NodeBuilder.createRTC(AI.getRunCondition());
OpenPOWER on IntegriCloud