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 @@ -148,7 +148,7 @@ static bool isOutermostParallel(__isl_keep isl_ast_node *Node); /// Is this loop an innermost parallel loop? - static bool isInnermostParallel(__isl_keep isl_ast_node *Node); + static bool isInnermostParallel(const isl::ast_node &Node); /// Is this loop a reduction parallel loop? static bool isReductionParallel(__isl_keep 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 @@ -181,7 +181,7 @@ if (DD) Printer = printLine(Printer, DepDisPragmaStr, DD); - if (IslAstInfo::isInnermostParallel(Node)) + if (IslAstInfo::isInnermostParallel(isl::manage_copy(Node))) Printer = printLine(Printer, SimdPragmaStr + BrokenReductionsStr); if (IslAstInfo::isExecutedInParallel(Node)) @@ -481,7 +481,7 @@ NumForLoops++; if (IslAstInfo::isParallel(Node)) NumParallel++; - if (IslAstInfo::isInnermostParallel(Node)) + if (IslAstInfo::isInnermostParallel(isl::manage_copy(Node))) NumInnermostParallel++; if (IslAstInfo::isOutermostParallel(Node)) NumOutermostParallel++; @@ -601,12 +601,12 @@ } bool IslAstInfo::isParallel(__isl_keep isl_ast_node *Node) { - return IslAstInfo::isInnermostParallel(Node) || + return IslAstInfo::isInnermostParallel(isl::manage_copy(Node)) || IslAstInfo::isOutermostParallel(Node); } -bool IslAstInfo::isInnermostParallel(__isl_keep isl_ast_node *Node) { - IslAstUserPayload *Payload = getNodePayload(isl::manage_copy(Node)); +bool IslAstInfo::isInnermostParallel(const isl::ast_node &Node) { + IslAstUserPayload *Payload = getNodePayload(Node); return Payload && Payload->IsInnermostParallel; } diff --git a/polly/lib/CodeGen/IslNodeBuilder.cpp b/polly/lib/CodeGen/IslNodeBuilder.cpp --- a/polly/lib/CodeGen/IslNodeBuilder.cpp +++ b/polly/lib/CodeGen/IslNodeBuilder.cpp @@ -762,7 +762,7 @@ void IslNodeBuilder::createFor(__isl_take isl_ast_node *For) { bool Vector = PollyVectorizerChoice == VECTORIZER_POLLY; - if (Vector && IslAstInfo::isInnermostParallel(For) && + if (Vector && IslAstInfo::isInnermostParallel(isl::manage_copy(For)) && !IslAstInfo::isReductionParallel(For)) { int VectorWidth = getNumberOfIterations(isl::manage_copy(For)); if (1 < VectorWidth && VectorWidth <= 16 && !hasPartialAccesses(For)) {