Fix r309826: Move intantiation and specialization of OwningScopAnalysisManagerFunctionProxy to the polly namespace.

When compiling with clang, explicit instantiation of the
OwningScopAnalysisManagerFunctionProxy needs to happen within the polly
namespace. Same goes with the specialization of its run method.

llvm-svn: 309835
This commit is contained in:
Philip Pfaffe 2017-08-02 17:25:45 +00:00
parent bd6d291c59
commit 8f1872fb27
1 changed files with 11 additions and 6 deletions

View File

@ -41,7 +41,9 @@ void ScopPass::getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
}
namespace polly {
template class OwningInnerAnalysisManagerProxy<ScopAnalysisManager, Function>;
}
namespace llvm {
@ -131,12 +133,6 @@ bool ScopAnalysisManagerFunctionProxy::Result::invalidate(
return false; // This proxy is still valid
}
template <>
OwningScopAnalysisManagerFunctionProxy::Result
OwningScopAnalysisManagerFunctionProxy::run(Function &F,
FunctionAnalysisManager &FAM) {
return Result(InnerAM, FAM.getResult<ScopInfoAnalysis>(F));
}
template <>
ScopAnalysisManagerFunctionProxy::Result
ScopAnalysisManagerFunctionProxy::run(Function &F,
@ -144,3 +140,12 @@ ScopAnalysisManagerFunctionProxy::run(Function &F,
return Result(*InnerAM, FAM.getResult<ScopInfoAnalysis>(F));
}
} // namespace llvm
namespace polly {
template <>
OwningScopAnalysisManagerFunctionProxy::Result
OwningScopAnalysisManagerFunctionProxy::run(Function &F,
FunctionAnalysisManager &FAM) {
return Result(InnerAM, FAM.getResult<ScopInfoAnalysis>(F));
}
}