diff --git a/polly/include/polly/CodeGen/IslAst.h b/polly/include/polly/CodeGen/IslAst.h --- a/polly/include/polly/CodeGen/IslAst.h +++ b/polly/include/polly/CodeGen/IslAst.h @@ -145,7 +145,7 @@ static bool isParallel(__isl_keep isl_ast_node *Node); /// Is this loop an outermost parallel loop? - static bool isOutermostParallel(__isl_keep isl_ast_node *Node); + static bool isOutermostParallel(const isl::ast_node &Node); /// Is this loop an innermost parallel loop? static bool isInnermostParallel(const isl::ast_node &Node); diff --git a/polly/lib/CodeGen/IslAst.cpp b/polly/lib/CodeGen/IslAst.cpp --- a/polly/lib/CodeGen/IslAst.cpp +++ b/polly/lib/CodeGen/IslAst.cpp @@ -186,7 +186,7 @@ if (IslAstInfo::isExecutedInParallel(Node)) Printer = printLine(Printer, OmpPragmaStr); - else if (IslAstInfo::isOutermostParallel(Node)) + else if (IslAstInfo::isOutermostParallel(isl::manage_copy(Node))) Printer = printLine(Printer, KnownParallelStr + BrokenReductionsStr); isl_pw_aff_free(DD); @@ -483,7 +483,7 @@ NumParallel++; if (IslAstInfo::isInnermostParallel(isl::manage_copy(Node))) NumInnermostParallel++; - if (IslAstInfo::isOutermostParallel(Node)) + if (IslAstInfo::isOutermostParallel(isl::manage_copy(Node))) NumOutermostParallel++; if (IslAstInfo::isReductionParallel(Node)) NumReductionParallel++; @@ -602,7 +602,7 @@ bool IslAstInfo::isParallel(__isl_keep isl_ast_node *Node) { return IslAstInfo::isInnermostParallel(isl::manage_copy(Node)) || - IslAstInfo::isOutermostParallel(Node); + IslAstInfo::isOutermostParallel(isl::manage_copy(Node)); } bool IslAstInfo::isInnermostParallel(const isl::ast_node &Node) { @@ -610,8 +610,8 @@ return Payload && Payload->IsInnermostParallel; } -bool IslAstInfo::isOutermostParallel(__isl_keep isl_ast_node *Node) { - IslAstUserPayload *Payload = getNodePayload(isl::manage_copy(Node)); +bool IslAstInfo::isOutermostParallel(const isl::ast_node &Node) { + IslAstUserPayload *Payload = getNodePayload(Node); return Payload && Payload->IsOutermostParallel; } @@ -636,7 +636,8 @@ if (!PollyParallelForce && isInnermost(Node)) return false; - return isOutermostParallel(Node) && !isReductionParallel(Node); + return isOutermostParallel(isl::manage_copy(Node)) && + !isReductionParallel(Node); } __isl_give isl_union_map *