Add ScopDetection::isValidRegion(Region)

llvm-svn: 201592
This commit is contained in:
Tobias Grosser 2014-02-18 18:49:46 +00:00
parent dcfbea1e32
commit 9b1100b305
2 changed files with 13 additions and 3 deletions

View File

@ -141,6 +141,13 @@ class ScopDetection : public FunctionPass {
/// @return True if R is a Scop, false otherwise.
bool isValidRegion(DetectionContext &Context) const;
/// @brief Check if a region is a Scop.
///
/// @param Context The context of scop detection.
///
/// @return True if R is a Scop, false otherwise.
bool isValidRegion(Region &R) const;
/// @brief Check if a call instruction can be part of a Scop.
///
/// @param CI The call instruction to check.

View File

@ -613,11 +613,9 @@ void ScopDetection::findScops(Region &R) {
if (!DetectRegionsWithoutLoops && regionWithoutLoops(R, LI))
return;
DetectionContext Context(R, *AA, false /*verifying*/);
LastFailure = "";
if (isValidRegion(Context)) {
if (isValidRegion(R)) {
++ValidRegion;
ValidRegions.insert(&R);
return;
@ -704,6 +702,11 @@ bool ScopDetection::isValidExit(DetectionContext &Context) const {
return true;
}
bool ScopDetection::isValidRegion(Region &R) const {
DetectionContext Context(R, *AA, false /*verifying*/);
return isValidRegion(Context);
}
bool ScopDetection::isValidRegion(DetectionContext &Context) const {
Region &R = Context.CurRegion;