scop detection: only handle functions with loops
to detect scops in functions with no loops, use -polly-detect-scops-in-functions-without-loops llvm-svn: 182941
This commit is contained in:
parent
ce257f296b
commit
8fe6d11b84
|
@ -68,6 +68,11 @@
|
|||
using namespace llvm;
|
||||
using namespace polly;
|
||||
|
||||
static cl::opt<bool>
|
||||
DetectScopsWithoutLoops("polly-detect-scops-in-functions-without-loops",
|
||||
cl::desc("Detect scops in functions without loops"),
|
||||
cl::Hidden, cl::init(false), cl::cat(PollyCategory));
|
||||
|
||||
static cl::opt<std::string>
|
||||
OnlyFunction("polly-only-func", cl::desc("Only run on a single function"),
|
||||
cl::value_desc("function-name"), cl::ValueRequired, cl::init(""),
|
||||
|
@ -625,9 +630,12 @@ void ScopDetection::printLocations(llvm::Function &F) {
|
|||
}
|
||||
|
||||
bool ScopDetection::runOnFunction(llvm::Function &F) {
|
||||
LI = &getAnalysis<LoopInfo>();
|
||||
if (!DetectScopsWithoutLoops && LI->empty())
|
||||
return false;
|
||||
|
||||
AA = &getAnalysis<AliasAnalysis>();
|
||||
SE = &getAnalysis<ScalarEvolution>();
|
||||
LI = &getAnalysis<LoopInfo>();
|
||||
RI = &getAnalysis<RegionInfo>();
|
||||
Region *TopRegion = RI->getTopLevelRegion();
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;RUN: opt %loadPolly %defaultOpts -polly-cloog -analyze < %s | FileCheck %s
|
||||
;RUN: opt %loadPolly %defaultOpts -polly-detect-scops-in-functions-without-loops -polly-cloog -analyze < %s | FileCheck %s
|
||||
|
||||
;#include <string.h>
|
||||
;int A[1];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
;RUN: opt %loadPolly %defaultOpts -polly-ast -analyze < %s | FileCheck %s
|
||||
;RUN: opt %loadPolly %defaultOpts -polly-detect-scops-in-functions-without-loops -polly-ast -analyze < %s | FileCheck %s
|
||||
|
||||
;#include <string.h>
|
||||
;int A[1];
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
; RUN: opt %loadPolly -polly-opt-isl -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-detect-scops-in-functions-without-loops -polly-opt-isl -analyze < %s | FileCheck %s
|
||||
target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128"
|
||||
target triple = "x86_64-unknown-linux-gnu"
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
; RUN: opt %loadPolly -polly-detect -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-detect -polly-codegen-scev -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-detect-scops-in-functions-without-loops -polly-detect -analyze < %s | FileCheck %s
|
||||
; RUN: opt %loadPolly -polly-detect-scops-in-functions-without-loops -polly-detect -polly-codegen-scev -analyze < %s | FileCheck %s
|
||||
|
||||
|
||||
; foo(float *A, long n, long k) {
|
||||
|
|
Loading…
Reference in New Issue