From 214deb7960ade0817276733cbe55f63b51fa44f7 Mon Sep 17 00:00:00 2001 From: Michael Kruse Date: Mon, 19 Jun 2017 10:19:29 +0000 Subject: [CodeGen] Emit aliasing metadata for new arrays. Ensure that all array base pointers are assigned before generating aliasing metadata by allocating new arrays beforehand. Before this patch, getBasePtr() returned nullptr for new arrays because the arrays were created at a later point. Nullptr did not match to any array after the created array base pointers have been assigned and when the loads/stores are generated. llvm-svn: 305675 --- polly/lib/CodeGen/IRBuilder.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'polly/lib/CodeGen/IRBuilder.cpp') diff --git a/polly/lib/CodeGen/IRBuilder.cpp b/polly/lib/CodeGen/IRBuilder.cpp index a8fb1fdf281..7e8c3ad84d9 100644 --- a/polly/lib/CodeGen/IRBuilder.cpp +++ b/polly/lib/CodeGen/IRBuilder.cpp @@ -67,10 +67,12 @@ void ScopAnnotator::buildAliasScopes(Scop &S) { return; std::string AliasScopeStr = "polly.alias.scope."; - for (const ScopArrayInfo *Array : S.arrays()) + for (const ScopArrayInfo *Array : S.arrays()) { + assert(Array->getBasePtr() && "Base pointer must be present"); AliasScopeMap[Array->getBasePtr()] = getID(Ctx, AliasScopeDomain, MDString::get(Ctx, (AliasScopeStr + Array->getName()).c_str())); + } for (const ScopArrayInfo *Array : S.arrays()) { MDNode *AliasScopeList = MDNode::get(Ctx, {}); -- cgit v1.2.3