[Refactor] Use attributes to mark function as invalid for polly
+ Test case annotated with the new attribute
+ Modified test case to check if subfunctions are annotated
llvm-svn: 213093
diff --git a/polly/lib/Analysis/ScopDetection.cpp b/polly/lib/Analysis/ScopDetection.cpp
index 53c5ed7..f061f01 100644
--- a/polly/lib/Analysis/ScopDetection.cpp
+++ b/polly/lib/Analysis/ScopDetection.cpp
@@ -136,6 +136,7 @@
bool polly::PollyTrackFailures = false;
bool polly::PollyDelinearize = false;
+StringRef polly::PollySkipFnAttr = "polly.skip.fn";
//===----------------------------------------------------------------------===//
// Statistics.
@@ -769,8 +770,12 @@
return true;
}
+void ScopDetection::markFunctionAsInvalid(Function *F) const {
+ F->addFnAttr(PollySkipFnAttr);
+}
+
bool ScopDetection::isValidFunction(llvm::Function &F) {
- return !InvalidFunctions.count(&F);
+ return !F.hasFnAttribute(PollySkipFnAttr);
}
void ScopDetection::printLocations(llvm::Function &F) {