diff options
Diffstat (limited to 'polly/lib')
| -rw-r--r-- | polly/lib/CodeGen/IslNodeBuilder.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/polly/lib/CodeGen/IslNodeBuilder.cpp b/polly/lib/CodeGen/IslNodeBuilder.cpp index 5c866a54b72..1a726dc9468 100644 --- a/polly/lib/CodeGen/IslNodeBuilder.cpp +++ b/polly/lib/CodeGen/IslNodeBuilder.cpp @@ -298,7 +298,7 @@ void IslNodeBuilder::createUserVector(__isl_take isl_ast_node *User, Schedule = isl_union_map_intersect_domain(Schedule, Domain); isl_map *S = isl_map_from_union_map(Schedule); - auto *NewAccesses = createNewAccesses(Stmt, IslAstInfo::getBuild(User)); + auto *NewAccesses = createNewAccesses(Stmt, User); createSubstitutionsVector(Expr, Stmt, VLTS, IVS, IteratorID); VectorBlockGenerator::generate(BlockGen, *Stmt, VLTS, S, NewAccesses); isl_id_to_ast_expr_free(NewAccesses); @@ -647,13 +647,15 @@ void IslNodeBuilder::createIf(__isl_take isl_ast_node *If) { __isl_give isl_id_to_ast_expr * IslNodeBuilder::createNewAccesses(ScopStmt *Stmt, - __isl_keep isl_ast_build *Build) { + __isl_keep isl_ast_node *Node) { isl_id_to_ast_expr *NewAccesses = - isl_id_to_ast_expr_alloc(isl_ast_build_get_ctx(Build), 0); + isl_id_to_ast_expr_alloc(Stmt->getParent()->getIslCtx(), 0); for (auto *MA : *Stmt) { if (!MA->hasNewAccessRelation()) continue; + auto Build = IslAstInfo::getBuild(Node); + assert(Build && "Could not obtain isl_ast_build from user node"); auto Schedule = isl_ast_build_get_schedule(Build); auto PWAccRel = MA->applyScheduleToAccessRelation(Schedule); @@ -714,7 +716,7 @@ void IslNodeBuilder::createUser(__isl_take isl_ast_node *User) { LTS.insert(OutsideLoopIterations.begin(), OutsideLoopIterations.end()); Stmt = (ScopStmt *)isl_id_get_user(Id); - auto *NewAccesses = createNewAccesses(Stmt, IslAstInfo::getBuild(User)); + auto *NewAccesses = createNewAccesses(Stmt, User); createSubstitutions(Expr, Stmt, LTS); if (Stmt->isBlockStmt()) |

