diff options
| author | Johannes Doerfert <doerfert@cs.uni-saarland.de> | 2015-02-11 17:25:09 +0000 |
|---|---|---|
| committer | Johannes Doerfert <doerfert@cs.uni-saarland.de> | 2015-02-11 17:25:09 +0000 |
| commit | 7ceb040213566037b24951b8196993fe58e25294 (patch) | |
| tree | 6f4bb0f45d8da9b4b08db83e676853c84f29bbf2 | |
| parent | de5b7b180ac147a6aced35ce616c5dcc2f1e5b20 (diff) | |
| download | bcm5719-llvm-7ceb040213566037b24951b8196993fe58e25294.tar.gz bcm5719-llvm-7ceb040213566037b24951b8196993fe58e25294.zip | |
Add early exits for SCoPs we did not optimize
This allows us to skip ast and code generation if we did not optimize
a SCoP and will not generate parallel or alias annotations. The
initial heuristic to exit is simple but allows improvements later on.
All failing test cases have been modified to disable early exit, thus
to keep their coverage.
Differential Revision: http://reviews.llvm.org/D7254
llvm-svn: 228851
61 files changed, 196 insertions, 105 deletions
diff --git a/polly/include/polly/ScopInfo.h b/polly/include/polly/ScopInfo.h index b04a3f51187..44ae6e27c36 100644 --- a/polly/include/polly/ScopInfo.h +++ b/polly/include/polly/ScopInfo.h @@ -636,6 +636,9 @@ private: /// The underlying Region. Region &R; + /// Flag to indicate that the scheduler actually optimized the SCoP. + bool IsOptimized; + /// Max loop depth. unsigned MaxLoopDepth; @@ -791,6 +794,12 @@ public: return maxScatterDim; } + /// @brief Mark the SCoP as optimized by the scheduler. + void markAsOptimized() { IsOptimized = true; } + + /// @brief Check if the SCoP has been optimized by the scheduler. + bool isOptimized() const { return IsOptimized; } + /// @brief Get the name of this Scop. std::string getNameStr() const; diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index 31173887acb..4d0b93d1f82 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -1550,7 +1550,7 @@ void Scop::dropConstantScheduleDims() { Scop::Scop(TempScop &tempScop, LoopInfo &LI, ScalarEvolution &ScalarEvolution, isl_ctx *Context) - : SE(&ScalarEvolution), R(tempScop.getMaxRegion()), + : SE(&ScalarEvolution), R(tempScop.getMaxRegion()), IsOptimized(false), MaxLoopDepth(getMaxLoopDepthInRegion(tempScop.getMaxRegion(), LI)) { IslCtx = Context; buildContext(); diff --git a/polly/lib/CodeGen/IslAst.cpp b/polly/lib/CodeGen/IslAst.cpp index d7973e4e019..5b26d3f3875 100644 --- a/polly/lib/CodeGen/IslAst.cpp +++ b/polly/lib/CodeGen/IslAst.cpp @@ -63,6 +63,11 @@ static cl::opt<bool> DetectParallel("polly-ast-detect-parallel", cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory)); +static cl::opt<bool> NoEarlyExit( + "polly-no-early-exit", + cl::desc("Do not exit early if no benefit of the Polly version was found."), + cl::Hidden, cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory)); + namespace polly { class IslAst { public: @@ -355,7 +360,38 @@ void IslAst::buildRunCondition(__isl_keep isl_ast_build *Build) { } } -IslAst::IslAst(Scop *Scop, Dependences &D) : S(Scop) { +/// @brief Simple cost analysis for a given SCoP +/// +/// TODO: Improve this analysis and extract it to make it usable in other +/// places too. +/// In order to improve the cost model we could either keep track of +/// performed optimizations (e.g., tiling) or compute properties on the +/// original as well as optimized SCoP (e.g., #stride-one-accesses). +static bool benefitsFromPolly(Scop *Scop, bool PerformParallelTest) { + + // First check the user choice. + if (NoEarlyExit) + return true; + + // Check if nothing interesting happened. + if (!PerformParallelTest && !Scop->isOptimized() && + Scop->getAliasGroups().empty()) + return false; + + // The default assumption is that Polly improves the code. + return true; +} + +IslAst::IslAst(Scop *Scop, Dependences &D) + : S(Scop), Root(nullptr), RunCondition(nullptr) { + + bool PerformParallelTest = PollyParallel || DetectParallel || + PollyVectorizerChoice != VECTORIZER_NONE; + + // Skip AST and code generation if there was no benefit achieved. + if (!benefitsFromPolly(Scop, PerformParallelTest)) + return; + isl_ctx *Ctx = S->getIslCtx(); isl_options_set_ast_build_atomic_upper_bound(Ctx, true); isl_ast_build *Build; @@ -371,8 +407,7 @@ IslAst::IslAst(Scop *Scop, Dependences &D) : S(Scop) { isl_union_map *Schedule = isl_union_map_intersect_domain(S->getSchedule(), S->getDomains()); - if (PollyParallel || DetectParallel || - PollyVectorizerChoice != VECTORIZER_NONE) { + if (PerformParallelTest) { BuildInfo.Deps = &D; BuildInfo.InParallelFor = 0; @@ -505,10 +540,20 @@ isl_ast_build *IslAstInfo::getBuild(__isl_keep isl_ast_node *Node) { void IslAstInfo::printScop(raw_ostream &OS) const { isl_ast_print_options *Options; isl_ast_node *RootNode = getAst(); + Scop &S = getCurScop(); + Function *F = S.getRegion().getEntry()->getParent(); + + OS << ":: isl ast :: " << F->getName() << " :: " << S.getRegion().getNameStr() + << "\n"; + + if (!RootNode) { + OS << ":: isl ast generation and code generation was skipped!\n\n"; + return; + } + isl_ast_expr *RunCondition = getRunCondition(); char *RtCStr, *AstStr; - Scop &S = getCurScop(); Options = isl_ast_print_options_alloc(S.getIslCtx()); Options = isl_ast_print_options_set_print_for(Options, cbPrintFor, nullptr); @@ -521,12 +566,9 @@ void IslAstInfo::printScop(raw_ostream &OS) const { P = isl_ast_node_print(RootNode, P, Options); AstStr = isl_printer_get_str(P); - Function *F = S.getRegion().getEntry()->getParent(); isl_union_map *Schedule = isl_union_map_intersect_domain(S.getSchedule(), S.getDomains()); - OS << ":: isl ast :: " << F->getName() << " :: " << S.getRegion().getNameStr() - << "\n"; DEBUG({ dbgs() << S.getContextStr() << "\n"; dbgs() << stringFromIslObj(Schedule); diff --git a/polly/lib/CodeGen/IslCodeGeneration.cpp b/polly/lib/CodeGen/IslCodeGeneration.cpp index 45e8e9d06f6..e2f81dbf344 100644 --- a/polly/lib/CodeGen/IslCodeGeneration.cpp +++ b/polly/lib/CodeGen/IslCodeGeneration.cpp @@ -914,8 +914,14 @@ public: } bool runOnScop(Scop &S) { - LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo(); AI = &getAnalysis<IslAstInfo>(); + + // Check if we created an isl_ast root node, otherwise exit. + isl_ast_node *AstRoot = AI->getAst(); + if (!AstRoot) + return false; + + LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo(); DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree(); SE = &getAnalysis<ScalarEvolution>(); DL = &getAnalysis<DataLayoutPass>().getDataLayout(); @@ -937,7 +943,7 @@ public: BasicBlock *StartBlock = executeScopConditionally(S, this, RTC); Builder.SetInsertPoint(StartBlock->begin()); - NodeBuilder.create(AI->getAst()); + NodeBuilder.create(AstRoot); return true; } diff --git a/polly/lib/Transform/ScheduleOptimizer.cpp b/polly/lib/Transform/ScheduleOptimizer.cpp index 6e10a2b0ac3..3409f87c82c 100644 --- a/polly/lib/Transform/ScheduleOptimizer.cpp +++ b/polly/lib/Transform/ScheduleOptimizer.cpp @@ -106,6 +106,14 @@ public: private: isl_schedule *LastSchedule; + /// @brief Decide if the @p NewSchedule is profitable for @p S. + /// + /// @param S The SCoP we optimize. + /// @param NewSchedule The new schedule we computed. + /// + /// @return True, if we believe @p NewSchedule is an improvement for @p S. + bool isProfitableSchedule(Scop &S, __isl_keep isl_union_map *NewSchedule); + static void extendScattering(Scop &S, unsigned NewDimensions); /// @brief Create a map that describes a n-dimensonal tiling. @@ -447,6 +455,23 @@ isl_union_map *IslScheduleOptimizer::getScheduleMap(isl_schedule *Schedule) { return ScheduleMap; } +bool IslScheduleOptimizer::isProfitableSchedule( + Scop &S, __isl_keep isl_union_map *NewSchedule) { + // To understand if the schedule has been optimized we check if the schedule + // has changed at all. + // TODO: We can improve this by tracking if any necessarily beneficial + // transformations have been performed. This can e.g. be tiling, loop + // interchange, or ...) We can track this either at the place where the + // transformation has been performed or, in case of automatic ILP based + // optimizations, by comparing (yet to be defined) performance metrics + // before/after the scheduling optimizer + // (e.g., #stride-one accesses) + isl_union_map *OldSchedule = S.getSchedule(); + bool changed = !isl_union_map_is_equal(OldSchedule, NewSchedule); + isl_union_map_free(OldSchedule); + return changed; +} + bool IslScheduleOptimizer::runOnScop(Scop &S) { Dependences *D = &getAnalysis<Dependences>(); @@ -554,13 +579,22 @@ bool IslScheduleOptimizer::runOnScop(Scop &S) { DEBUG(dbgs() << "Schedule := " << stringFromIslObj(Schedule) << ";\n"); - isl_union_map *ScheduleMap = getScheduleMap(Schedule); + isl_union_map *NewSchedule = getScheduleMap(Schedule); + + // Check if the optimizations performed were profitable, otherwise exit early. + if (!isProfitableSchedule(S, NewSchedule)) { + isl_schedule_free(Schedule); + isl_union_map_free(NewSchedule); + return false; + } + + S.markAsOptimized(); for (ScopStmt *Stmt : S) { isl_map *StmtSchedule; isl_set *Domain = Stmt->getDomain(); isl_union_map *StmtBand; - StmtBand = isl_union_map_intersect_domain(isl_union_map_copy(ScheduleMap), + StmtBand = isl_union_map_intersect_domain(isl_union_map_copy(NewSchedule), isl_union_set_from_set(Domain)); if (isl_union_map_is_empty(StmtBand)) { StmtSchedule = isl_map_from_domain(isl_set_empty(Stmt->getDomainSpace())); @@ -573,7 +607,7 @@ bool IslScheduleOptimizer::runOnScop(Scop &S) { Stmt->setScattering(StmtSchedule); } - isl_union_map_free(ScheduleMap); + isl_union_map_free(NewSchedule); LastSchedule = Schedule; unsigned MaxScatDims = 0; diff --git a/polly/test/DeadCodeElimination/chained_iterations.ll b/polly/test/DeadCodeElimination/chained_iterations.ll index 5df2a593894..e7cbe412c30 100644 --- a/polly/test/DeadCodeElimination/chained_iterations.ll +++ b/polly/test/DeadCodeElimination/chained_iterations.ll @@ -1,5 +1,5 @@ -; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-ast -analyze < %s | FileCheck %s -; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-dce -polly-ast -analyze < %s | FileCheck %s -check-prefix=CHECK-DCE +; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s +; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-dce -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s -check-prefix=CHECK-DCE 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" target triple = "x86_64-pc-linux-gnu" ; diff --git a/polly/test/DeadCodeElimination/chained_iterations_2.ll b/polly/test/DeadCodeElimination/chained_iterations_2.ll index 5c84057601a..f019a5a749e 100644 --- a/polly/test/DeadCodeElimination/chained_iterations_2.ll +++ b/polly/test/DeadCodeElimination/chained_iterations_2.ll @@ -1,5 +1,5 @@ -; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-ast -analyze < %s | FileCheck %s -; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-dce -polly-ast -analyze < %s | FileCheck %s -check-prefix=CHECK-DCE +; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s +; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-dce -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s -check-prefix=CHECK-DCE 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" target triple = "x86_64-pc-linux-gnu" ; diff --git a/polly/test/DeadCodeElimination/computeout.ll b/polly/test/DeadCodeElimination/computeout.ll index a908c4ed314..df44b14b4eb 100644 --- a/polly/test/DeadCodeElimination/computeout.ll +++ b/polly/test/DeadCodeElimination/computeout.ll @@ -1,5 +1,5 @@ -; RUN: opt -S %loadPolly -basicaa -polly-dce -polly-ast -analyze < %s | FileCheck %s -; RUN: opt -S %loadPolly -basicaa -polly-dce -polly-ast -analyze -polly-dependences-computeout=1 < %s | FileCheck %s -check-prefix=TIMEOUT +; RUN: opt -S %loadPolly -basicaa -polly-dce -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s +; RUN: opt -S %loadPolly -basicaa -polly-dce -polly-ast -analyze -polly-no-early-exit -polly-dependences-computeout=1 < %s | FileCheck %s -check-prefix=TIMEOUT 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" target triple = "x86_64-pc-linux-gnu" diff --git a/polly/test/DeadCodeElimination/dead_iteration_elimination.ll b/polly/test/DeadCodeElimination/dead_iteration_elimination.ll index 8549a0cfc08..e48b14aea2d 100644 --- a/polly/test/DeadCodeElimination/dead_iteration_elimination.ll +++ b/polly/test/DeadCodeElimination/dead_iteration_elimination.ll @@ -1,4 +1,4 @@ -; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-dce -polly-dce-precise-steps=2 -polly-ast -analyze < %s | FileCheck %s -check-prefix=CHECK +; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-dce -polly-dce-precise-steps=2 -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s -check-prefix=CHECK 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" target triple = "x86_64-pc-linux-gnu" ; diff --git a/polly/test/DeadCodeElimination/non-affine-affine-mix.ll b/polly/test/DeadCodeElimination/non-affine-affine-mix.ll index 24b04a14084..a645fb029a9 100644 --- a/polly/test/DeadCodeElimination/non-affine-affine-mix.ll +++ b/polly/test/DeadCodeElimination/non-affine-affine-mix.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-allow-nonaffine -polly-dce -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-allow-nonaffine -polly-dce -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s ; ; void f(int *A) { ; for (int i = 0; i < 1024; i++) diff --git a/polly/test/DeadCodeElimination/non-affine.ll b/polly/test/DeadCodeElimination/non-affine.ll index 5f9e9538dca..3a5be1eb41b 100644 --- a/polly/test/DeadCodeElimination/non-affine.ll +++ b/polly/test/DeadCodeElimination/non-affine.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-allow-nonaffine -polly-dce -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-allow-nonaffine -polly-dce -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s ; ; CHECK: for (int c0 = 0; c0 <= 1023; c0 += 1) ; diff --git a/polly/test/DeadCodeElimination/null_schedule.ll b/polly/test/DeadCodeElimination/null_schedule.ll index 106eac2b89a..7c8f3743273 100644 --- a/polly/test/DeadCodeElimination/null_schedule.ll +++ b/polly/test/DeadCodeElimination/null_schedule.ll @@ -1,4 +1,4 @@ -; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-dce -polly-ast -analyze < %s | FileCheck %s -check-prefix=CHECK-DCE +; RUN: opt -S %loadPolly -basicaa -polly-dependences-analysis-type=value-based -polly-dce -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s -check-prefix=CHECK-DCE 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" target triple = "x86_64-pc-linux-gnu" ; A[0] = 1; diff --git a/polly/test/Isl/Ast/alias_simple_1.ll b/polly/test/Isl/Ast/alias_simple_1.ll index d66a8966159..aa31dfb021a 100644 --- a/polly/test/Isl/Ast/alias_simple_1.ll +++ b/polly/test/Isl/Ast/alias_simple_1.ll @@ -1,8 +1,8 @@ -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze < %s | FileCheck %s --check-prefix=NOAA -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -basicaa < %s | FileCheck %s --check-prefix=BASI -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -tbaa < %s | FileCheck %s --check-prefix=TBAA -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -scev-aa < %s | FileCheck %s --check-prefix=SCEV -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -globalsmodref-aa < %s | FileCheck %s --check-prefix=GLOB +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s --check-prefix=NOAA +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -basicaa < %s | FileCheck %s --check-prefix=BASI +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -tbaa < %s | FileCheck %s --check-prefix=TBAA +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -scev-aa < %s | FileCheck %s --check-prefix=SCEV +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -globalsmodref-aa < %s | FileCheck %s --check-prefix=GLOB ; ; int A[1024]; ; diff --git a/polly/test/Isl/Ast/alias_simple_2.ll b/polly/test/Isl/Ast/alias_simple_2.ll index 3c4f51353a2..e8d523c2099 100644 --- a/polly/test/Isl/Ast/alias_simple_2.ll +++ b/polly/test/Isl/Ast/alias_simple_2.ll @@ -1,8 +1,8 @@ -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze < %s | FileCheck %s --check-prefix=NOAA -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -basicaa < %s | FileCheck %s --check-prefix=BASI -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -tbaa < %s | FileCheck %s --check-prefix=TBAA -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -scev-aa < %s | FileCheck %s --check-prefix=SCEV -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -globalsmodref-aa < %s | FileCheck %s --check-prefix=GLOB +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s --check-prefix=NOAA +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -basicaa < %s | FileCheck %s --check-prefix=BASI +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -tbaa < %s | FileCheck %s --check-prefix=TBAA +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -scev-aa < %s | FileCheck %s --check-prefix=SCEV +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -globalsmodref-aa < %s | FileCheck %s --check-prefix=GLOB ; ; int A[1024], B[1024]; ; diff --git a/polly/test/Isl/Ast/alias_simple_3.ll b/polly/test/Isl/Ast/alias_simple_3.ll index 10ff3f09ade..f8112492354 100644 --- a/polly/test/Isl/Ast/alias_simple_3.ll +++ b/polly/test/Isl/Ast/alias_simple_3.ll @@ -1,8 +1,8 @@ -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze < %s | FileCheck %s --check-prefix=NOAA -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -basicaa < %s | FileCheck %s --check-prefix=BASI -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -tbaa < %s | FileCheck %s --check-prefix=TBAA -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -scev-aa < %s | FileCheck %s --check-prefix=SCEV -; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -globalsmodref-aa < %s | FileCheck %s --check-prefix=GLOB +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s --check-prefix=NOAA +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -basicaa < %s | FileCheck %s --check-prefix=BASI +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -tbaa < %s | FileCheck %s --check-prefix=TBAA +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -scev-aa < %s | FileCheck %s --check-prefix=SCEV +; RUN: opt %loadPolly -polly-code-generator=isl -polly-ast -analyze -polly-no-early-exit -globalsmodref-aa < %s | FileCheck %s --check-prefix=GLOB ; ; int A[1024]; ; float B[1024]; diff --git a/polly/test/Isl/Ast/run-time-condition.ll b/polly/test/Isl/Ast/run-time-condition.ll index fedada1aabe..9d841d3c91c 100644 --- a/polly/test/Isl/Ast/run-time-condition.ll +++ b/polly/test/Isl/Ast/run-time-condition.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -basicaa -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -basicaa -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s ; for (i = 0; i < 1024; i++) ; A[i] = B[i]; diff --git a/polly/test/Isl/Ast/simple-run-time-condition.ll b/polly/test/Isl/Ast/simple-run-time-condition.ll index 9bf52f2652f..0fbb2db69da 100644 --- a/polly/test/Isl/Ast/simple-run-time-condition.ll +++ b/polly/test/Isl/Ast/simple-run-time-condition.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -analyze -polly-delinearize < %s | FileCheck %s +; RUN: opt %loadPolly -polly-ast -analyze -polly-no-early-exit -polly-delinearize < %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" diff --git a/polly/test/Isl/Ast/single_loop_strip_mine.ll b/polly/test/Isl/Ast/single_loop_strip_mine.ll index e61c2a8b54e..4311ee5c742 100644 --- a/polly/test/Isl/Ast/single_loop_strip_mine.ll +++ b/polly/test/Isl/Ast/single_loop_strip_mine.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -basicaa -polly-ast -analyze < %s | FileCheck %s -; RUN: opt %loadPolly -polly-import-jscop-dir=%S -basicaa -polly-import-jscop -polly-ast -polly-ast-detect-parallel -analyze < %s | FileCheck %s -check-prefix=CHECK-VECTOR +; RUN: opt %loadPolly -basicaa -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s +; RUN: opt %loadPolly -polly-import-jscop-dir=%S -basicaa -polly-import-jscop -polly-ast -polly-ast-detect-parallel -analyze -polly-no-early-exit < %s | FileCheck %s -check-prefix=CHECK-VECTOR ; for (i = 0; i < 1024; i++) ; A[i] = B[i]; diff --git a/polly/test/Isl/CodeGen/20120316-InvalidCast.ll b/polly/test/Isl/CodeGen/20120316-InvalidCast.ll index 62ee97aef43..0c3cc76c67e 100644 --- a/polly/test/Isl/CodeGen/20120316-InvalidCast.ll +++ b/polly/test/Isl/CodeGen/20120316-InvalidCast.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -S -polly-detect-scops-in-functions-without-loops -polly-detect-scops-in-regions-without-loops -polly-codegen-isl < %s | FileCheck %s +; RUN: opt %loadPolly -S -polly-detect-scops-in-functions-without-loops -polly-detect-scops-in-regions-without-loops -polly-codegen-isl -polly-no-early-exit < %s | FileCheck %s ; CHECK: polly.start diff --git a/polly/test/Isl/CodeGen/MemAccess/codegen_constant_offset.ll b/polly/test/Isl/CodeGen/MemAccess/codegen_constant_offset.ll index 36dbf12448a..e9ab0c68876 100644 --- a/polly/test/Isl/CodeGen/MemAccess/codegen_constant_offset.ll +++ b/polly/test/Isl/CodeGen/MemAccess/codegen_constant_offset.ll @@ -1,4 +1,4 @@ -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed -polly-codegen-isl -instnamer < %s -S | FileCheck %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed -polly-codegen-isl -instnamer < %s -S | FileCheck %s ;int A[100]; ; diff --git a/polly/test/Isl/CodeGen/MemAccess/codegen_simple.ll b/polly/test/Isl/CodeGen/MemAccess/codegen_simple.ll index 0afcff89aa5..b924ba4826b 100644 --- a/polly/test/Isl/CodeGen/MemAccess/codegen_simple.ll +++ b/polly/test/Isl/CodeGen/MemAccess/codegen_simple.ll @@ -1,4 +1,4 @@ -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed -polly-codegen-isl -instnamer < %s -S | FileCheck %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed -polly-codegen-isl -instnamer < %s -S | FileCheck %s ;int A[100]; ; diff --git a/polly/test/Isl/CodeGen/MemAccess/codegen_simple_float.ll b/polly/test/Isl/CodeGen/MemAccess/codegen_simple_float.ll index ccc01df7831..a289e50b370 100644 --- a/polly/test/Isl/CodeGen/MemAccess/codegen_simple_float.ll +++ b/polly/test/Isl/CodeGen/MemAccess/codegen_simple_float.ll @@ -1,4 +1,4 @@ -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed -polly-codegen-isl -instnamer < %s -S | FileCheck %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed -polly-codegen-isl -instnamer < %s -S | FileCheck %s ; ;float A[100]; ; diff --git a/polly/test/Isl/CodeGen/MemAccess/codegen_simple_md.ll b/polly/test/Isl/CodeGen/MemAccess/codegen_simple_md.ll index 6d1de115e99..8eadfb408ec 100644 --- a/polly/test/Isl/CodeGen/MemAccess/codegen_simple_md.ll +++ b/polly/test/Isl/CodeGen/MemAccess/codegen_simple_md.ll @@ -1,7 +1,7 @@ -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHCONST %s -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withoutconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHOUTCONST %s -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHCONST %s -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withoutconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHOUTCONST %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHCONST %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withoutconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHOUTCONST %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHCONST %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withoutconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHOUTCONST %s ;int A[1040]; ; diff --git a/polly/test/Isl/CodeGen/MemAccess/codegen_simple_md_float.ll b/polly/test/Isl/CodeGen/MemAccess/codegen_simple_md_float.ll index 7db1e1f26dd..89a49353669 100644 --- a/polly/test/Isl/CodeGen/MemAccess/codegen_simple_md_float.ll +++ b/polly/test/Isl/CodeGen/MemAccess/codegen_simple_md_float.ll @@ -1,7 +1,7 @@ -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHCONST %s -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withoutconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHOUTCONST %s -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHCONST %s -;RUN: opt %loadPolly -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withoutconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHOUTCONST %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHCONST %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withoutconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHOUTCONST %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHCONST %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-import-jscop -polly-import-jscop-dir=%S -polly-import-jscop-postfix=transformed+withoutconst -polly-codegen-isl < %s -S | FileCheck -check-prefix=WITHOUTCONST %s ; ;float A[1040]; ; diff --git a/polly/test/Isl/CodeGen/alignment.ll b/polly/test/Isl/CodeGen/alignment.ll index f4038c94fb3..493a4576834 100644 --- a/polly/test/Isl/CodeGen/alignment.ll +++ b/polly/test/Isl/CodeGen/alignment.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-codegen-isl -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S < %s | FileCheck %s ; ; Check that the special alignment information is kept ; diff --git a/polly/test/Isl/CodeGen/constant_condition.ll b/polly/test/Isl/CodeGen/constant_condition.ll index c62d59a6980..ce8fff85dd3 100644 --- a/polly/test/Isl/CodeGen/constant_condition.ll +++ b/polly/test/Isl/CodeGen/constant_condition.ll @@ -1,4 +1,4 @@ -;RUN: opt %loadPolly -polly-prepare -polly-detect-scops-in-regions-without-loops -polly-detect-scops-in-functions-without-loops -polly-ast -analyze < %s | FileCheck %s +;RUN: opt %loadPolly -polly-no-early-exit -polly-prepare -polly-detect-scops-in-regions-without-loops -polly-detect-scops-in-functions-without-loops -polly-ast -analyze < %s | FileCheck %s ;#include <string.h> ;int A[1]; diff --git a/polly/test/Isl/CodeGen/create-conditional-scop.ll b/polly/test/Isl/CodeGen/create-conditional-scop.ll index d0e6e9471a2..f03591fd604 100644 --- a/polly/test/Isl/CodeGen/create-conditional-scop.ll +++ b/polly/test/Isl/CodeGen/create-conditional-scop.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -basicaa -polly-codegen-isl -verify-loop-info < %s -S | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -basicaa -polly-codegen-isl -verify-loop-info < %s -S | FileCheck %s target datalayout = "e-p:32:32:32-i64:64:64-i32:32:32-i16:16:16-i1:32:32-f64:64:64-f32:32:32-a0:0-n32" target triple = "hexagon-unknown-linux-gnu" diff --git a/polly/test/Isl/CodeGen/debug-intrinsics.ll b/polly/test/Isl/CodeGen/debug-intrinsics.ll index 53c48ef607f..57828b6546d 100644 --- a/polly/test/Isl/CodeGen/debug-intrinsics.ll +++ b/polly/test/Isl/CodeGen/debug-intrinsics.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-codegen-isl -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S < %s | FileCheck %s target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/polly/test/Isl/CodeGen/loop_with_condition.ll b/polly/test/Isl/CodeGen/loop_with_condition.ll index d8e0ab91385..d7276ca5b51 100644 --- a/polly/test/Isl/CodeGen/loop_with_condition.ll +++ b/polly/test/Isl/CodeGen/loop_with_condition.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -basicaa -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -basicaa -polly-ast -analyze < %s | FileCheck %s ;#include <string.h> ;#define N 1024 diff --git a/polly/test/Isl/CodeGen/loop_with_condition_ineq.ll b/polly/test/Isl/CodeGen/loop_with_condition_ineq.ll index df923bc2edd..e0a9e152519 100644 --- a/polly/test/Isl/CodeGen/loop_with_condition_ineq.ll +++ b/polly/test/Isl/CodeGen/loop_with_condition_ineq.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -basicaa -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -basicaa -polly-ast -analyze < %s | FileCheck %s ;#include <string.h> ;#define N 1024 diff --git a/polly/test/Isl/CodeGen/loop_with_condition_nested.ll b/polly/test/Isl/CodeGen/loop_with_condition_nested.ll index 5d4a61c80e3..cab86b279bf 100644 --- a/polly/test/Isl/CodeGen/loop_with_condition_nested.ll +++ b/polly/test/Isl/CodeGen/loop_with_condition_nested.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -basicaa -polly-ast -analyze < %s | FileCheck %s -; RUN: opt %loadPolly -basicaa -polly-codegen-isl -loops -analyze < %s | FileCheck %s -check-prefix=LOOPS +; RUN: opt %loadPolly -polly-no-early-exit -basicaa -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -basicaa -polly-codegen-isl -loops -analyze < %s | FileCheck %s -check-prefix=LOOPS ;#include <string.h> diff --git a/polly/test/Isl/CodeGen/loop_with_conditional_entry_edge_splited_hard_case.ll b/polly/test/Isl/CodeGen/loop_with_conditional_entry_edge_splited_hard_case.ll index 997a24c7219..dcca3b19d47 100644 --- a/polly/test/Isl/CodeGen/loop_with_conditional_entry_edge_splited_hard_case.ll +++ b/polly/test/Isl/CodeGen/loop_with_conditional_entry_edge_splited_hard_case.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-codegen-isl -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S < %s | FileCheck %s ; ; Test case to trigger the hard way of creating a unique entering ; edge for the SCoP. It is triggered because the entering edge diff --git a/polly/test/Isl/CodeGen/multidim_2d_parametric_array_static_loop_bounds.ll b/polly/test/Isl/CodeGen/multidim_2d_parametric_array_static_loop_bounds.ll index a49151c0dc9..2e3fea60ace 100644 --- a/polly/test/Isl/CodeGen/multidim_2d_parametric_array_static_loop_bounds.ll +++ b/polly/test/Isl/CodeGen/multidim_2d_parametric_array_static_loop_bounds.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-codegen-isl -S -polly-delinearize < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S -polly-delinearize < %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" diff --git a/polly/test/Isl/CodeGen/pointer-type-expressions.ll b/polly/test/Isl/CodeGen/pointer-type-expressions.ll index 913905b9fb2..7e2d8cc9dc2 100644 --- a/polly/test/Isl/CodeGen/pointer-type-expressions.ll +++ b/polly/test/Isl/CodeGen/pointer-type-expressions.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -polly-ast -analyze < %s | FileCheck %s -; RUN: opt %loadPolly -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CODEGEN +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CODEGEN ; void f(int a[], int N, float *P) { ; int i; diff --git a/polly/test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll b/polly/test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll index ee9ce5c04be..7f30301be45 100644 --- a/polly/test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll +++ b/polly/test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -polly-ast -analyze < %s | FileCheck %s -; RUN: opt %loadPolly -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CODEGEN +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CODEGEN ; ; void f(int a[], int N, float *P, float *Q) { ; int i; diff --git a/polly/test/Isl/CodeGen/reduction_2.ll b/polly/test/Isl/CodeGen/reduction_2.ll index 1bcff98cc52..1885083d17d 100644 --- a/polly/test/Isl/CodeGen/reduction_2.ll +++ b/polly/test/Isl/CodeGen/reduction_2.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -basicaa -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -basicaa -polly-ast -analyze < %s | FileCheck %s ;#include <string.h> ;#include <stdio.h> diff --git a/polly/test/Isl/CodeGen/run-time-condition-with-scev-parameters.ll b/polly/test/Isl/CodeGen/run-time-condition-with-scev-parameters.ll index a4dbbcd2b0a..b8ff202212c 100644 --- a/polly/test/Isl/CodeGen/run-time-condition-with-scev-parameters.ll +++ b/polly/test/Isl/CodeGen/run-time-condition-with-scev-parameters.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -polly-codegen-isl -S -polly-delinearize < %s | FileCheck %s -; RUN: opt %loadPolly -polly-codegen-isl -S -polly-delinearize < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S -polly-delinearize < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S -polly-delinearize < %s | FileCheck %s ; CHECK: %1 = zext i32 %n to i64 ; CHECK: %2 = icmp sge i64 %1, 1 diff --git a/polly/test/Isl/CodeGen/run-time-condition.ll b/polly/test/Isl/CodeGen/run-time-condition.ll index 77af3a43247..0ddc4cee417 100644 --- a/polly/test/Isl/CodeGen/run-time-condition.ll +++ b/polly/test/Isl/CodeGen/run-time-condition.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -basicaa -polly-codegen-isl -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -basicaa -polly-codegen-isl -S < %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" diff --git a/polly/test/Isl/CodeGen/scalar-references-used-in-scop-compute.ll b/polly/test/Isl/CodeGen/scalar-references-used-in-scop-compute.ll index fdf9139454f..e1089950534 100644 --- a/polly/test/Isl/CodeGen/scalar-references-used-in-scop-compute.ll +++ b/polly/test/Isl/CodeGen/scalar-references-used-in-scop-compute.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-codegen-isl -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S < %s | FileCheck %s ; Test the code generation in the presence of a scalar out-of-scop value being ; used from within the SCoP. diff --git a/polly/test/Isl/CodeGen/scop_never_executed_runtime_check_location.ll b/polly/test/Isl/CodeGen/scop_never_executed_runtime_check_location.ll index 5a3194094bd..35eeb0c22ec 100644 --- a/polly/test/Isl/CodeGen/scop_never_executed_runtime_check_location.ll +++ b/polly/test/Isl/CodeGen/scop_never_executed_runtime_check_location.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -polly-codegen-isl -S -polly-delinearize < %s | FileCheck %s -; RUN: opt %loadPolly -polly-codegen-isl -S -polly-delinearize < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S -polly-delinearize < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S -polly-delinearize < %s | FileCheck %s ; Verify that we generate the runtime check code after the conditional branch ; in the SCoP region entering block (here %entry). diff --git a/polly/test/Isl/CodeGen/sequential_loops.ll b/polly/test/Isl/CodeGen/sequential_loops.ll index 51d76136d58..2f6e92a4ce0 100644 --- a/polly/test/Isl/CodeGen/sequential_loops.ll +++ b/polly/test/Isl/CodeGen/sequential_loops.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze < %s | FileCheck %s ;#include <string.h> ;#define N 1024 diff --git a/polly/test/Isl/CodeGen/simple_loop_non_single_exit.ll b/polly/test/Isl/CodeGen/simple_loop_non_single_exit.ll index ab4c2b9cbe7..9cf9fd18ebd 100644 --- a/polly/test/Isl/CodeGen/simple_loop_non_single_exit.ll +++ b/polly/test/Isl/CodeGen/simple_loop_non_single_exit.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -polly-codegen-isl -analyze < %s | FileCheck %s -; RUN: opt %loadPolly -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CHECK-CODE +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CHECK-CODE ; void f(long A[], long N) { ; long i; diff --git a/polly/test/Isl/CodeGen/simple_loop_non_single_exit_2.ll b/polly/test/Isl/CodeGen/simple_loop_non_single_exit_2.ll index 4f09802bb7a..719545b52d4 100644 --- a/polly/test/Isl/CodeGen/simple_loop_non_single_exit_2.ll +++ b/polly/test/Isl/CodeGen/simple_loop_non_single_exit_2.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -polly-codegen-isl -analyze < %s | FileCheck %s -; RUN: opt %loadPolly -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CHECK-CODE +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CHECK-CODE ; void f(long A[], long N) { ; long i; diff --git a/polly/test/Isl/CodeGen/simple_non_single_entry.ll b/polly/test/Isl/CodeGen/simple_non_single_entry.ll index c0c90ecca77..29bf54dec75 100644 --- a/polly/test/Isl/CodeGen/simple_non_single_entry.ll +++ b/polly/test/Isl/CodeGen/simple_non_single_entry.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -polly-detect-scops-in-regions-without-loops -polly-codegen-isl -analyze < %s | FileCheck %s -; RUN: opt %loadPolly -polly-detect-scops-in-regions-without-loops -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CHECK-CODE +; RUN: opt %loadPolly -polly-no-early-exit -polly-detect-scops-in-regions-without-loops -polly-codegen-isl -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-detect-scops-in-regions-without-loops -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CHECK-CODE ; void f(long A[], long N) { ; long i; diff --git a/polly/test/Isl/CodeGen/simple_nonaffine_loop.ll b/polly/test/Isl/CodeGen/simple_nonaffine_loop.ll index bfed04b5d4d..b9a16d37a75 100644 --- a/polly/test/Isl/CodeGen/simple_nonaffine_loop.ll +++ b/polly/test/Isl/CodeGen/simple_nonaffine_loop.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -polly-allow-nonaffine -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -polly-allow-nonaffine -analyze < %s | FileCheck %s ;#include <stdio.h> ;#include <stdlib.h> diff --git a/polly/test/Isl/CodeGen/single_do_loop_int_max_iterations.ll b/polly/test/Isl/CodeGen/single_do_loop_int_max_iterations.ll index 081d32317df..914da0b0191 100644 --- a/polly/test/Isl/CodeGen/single_do_loop_int_max_iterations.ll +++ b/polly/test/Isl/CodeGen/single_do_loop_int_max_iterations.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -analyze -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze -S < %s | FileCheck %s ;#define N 20 ;#include "limits.h" diff --git a/polly/test/Isl/CodeGen/single_do_loop_ll_max_iterations.ll b/polly/test/Isl/CodeGen/single_do_loop_ll_max_iterations.ll index 365ac076b58..5f5588e3c80 100644 --- a/polly/test/Isl/CodeGen/single_do_loop_ll_max_iterations.ll +++ b/polly/test/Isl/CodeGen/single_do_loop_ll_max_iterations.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -polly-ast -analyze -S < %s | FileCheck %s -; RUN: opt %loadPolly -polly-codegen-isl < %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl < %s ;#define N 20 ;#include "limits.h" diff --git a/polly/test/Isl/CodeGen/single_do_loop_scev_replace.ll b/polly/test/Isl/CodeGen/single_do_loop_scev_replace.ll index a5b8ed829c7..57e37ec6231 100644 --- a/polly/test/Isl/CodeGen/single_do_loop_scev_replace.ll +++ b/polly/test/Isl/CodeGen/single_do_loop_scev_replace.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze < %s | FileCheck %s ;#define N 20 ;#include "limits.h" diff --git a/polly/test/Isl/CodeGen/single_loop.ll b/polly/test/Isl/CodeGen/single_loop.ll index c80e225215c..2f6a55439b0 100644 --- a/polly/test/Isl/CodeGen/single_loop.ll +++ b/polly/test/Isl/CodeGen/single_loop.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze < %s | FileCheck %s ;#include <string.h> ;#define N 1024 diff --git a/polly/test/Isl/CodeGen/single_loop_int_max_iterations.ll b/polly/test/Isl/CodeGen/single_loop_int_max_iterations.ll index c76c18a2f4c..9431c3a3c1b 100644 --- a/polly/test/Isl/CodeGen/single_loop_int_max_iterations.ll +++ b/polly/test/Isl/CodeGen/single_loop_int_max_iterations.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -analyze -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze -S < %s | FileCheck %s ;#define N 20 ;#include "limits.h" diff --git a/polly/test/Isl/CodeGen/single_loop_ll_max_iterations.ll b/polly/test/Isl/CodeGen/single_loop_ll_max_iterations.ll index 7d34b2ff966..7d3b5ca2b74 100644 --- a/polly/test/Isl/CodeGen/single_loop_ll_max_iterations.ll +++ b/polly/test/Isl/CodeGen/single_loop_ll_max_iterations.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -analyze -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze -S < %s | FileCheck %s ;#include "limits.h" ;#define N 20 diff --git a/polly/test/Isl/CodeGen/single_loop_one_iteration.ll b/polly/test/Isl/CodeGen/single_loop_one_iteration.ll index 9e973a91e0f..e2d473e1f43 100644 --- a/polly/test/Isl/CodeGen/single_loop_one_iteration.ll +++ b/polly/test/Isl/CodeGen/single_loop_one_iteration.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze < %s | FileCheck %s ;#define N 20 ; diff --git a/polly/test/Isl/CodeGen/single_loop_param.ll b/polly/test/Isl/CodeGen/single_loop_param.ll index 402b6832f63..75ce5646c76 100644 --- a/polly/test/Isl/CodeGen/single_loop_param.ll +++ b/polly/test/Isl/CodeGen/single_loop_param.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -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" target triple = "x86_64-pc-linux-gnu" diff --git a/polly/test/Isl/CodeGen/split_edges.ll b/polly/test/Isl/CodeGen/split_edges.ll index 93ffa9bc08f..cc7687b2152 100644 --- a/polly/test/Isl/CodeGen/split_edges.ll +++ b/polly/test/Isl/CodeGen/split_edges.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-codegen-isl -verify-region-info -verify-dom-info -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -verify-region-info -verify-dom-info -S < %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" target triple = "x86_64-pc-linux-gnu" diff --git a/polly/test/Isl/CodeGen/split_edges_2.ll b/polly/test/Isl/CodeGen/split_edges_2.ll index 386845f8007..38713fb52c6 100644 --- a/polly/test/Isl/CodeGen/split_edges_2.ll +++ b/polly/test/Isl/CodeGen/split_edges_2.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-codegen-isl -verify-region-info -verify-dom-info -S < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -verify-region-info -verify-dom-info -S < %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" target triple = "x86_64-pc-linux-gnu" diff --git a/polly/test/Isl/CodeGen/two-scops-in-row.ll b/polly/test/Isl/CodeGen/two-scops-in-row.ll index e4e4270db40..6692388a277 100644 --- a/polly/test/Isl/CodeGen/two-scops-in-row.ll +++ b/polly/test/Isl/CodeGen/two-scops-in-row.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -polly-ast -analyze -polly-ignore-aliasing < %s | FileCheck %s -; RUN: opt %loadPolly -polly-codegen-isl -polly-ignore-aliasing < %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze -polly-ignore-aliasing < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -polly-ignore-aliasing < %s target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" diff --git a/polly/test/Isl/single_loop_param_less_equal.ll b/polly/test/Isl/single_loop_param_less_equal.ll index 5d6f733b3c6..d8eb1a80f83 100644 --- a/polly/test/Isl/single_loop_param_less_equal.ll +++ b/polly/test/Isl/single_loop_param_less_equal.ll @@ -1,6 +1,6 @@ -; RUN: opt %loadPolly -polly-ast -analyze < %s | FileCheck %s -; RUN: opt %loadPolly -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CODEGEN -; RUN: opt %loadPolly -polly-codegen-isl -loops -analyze < %s | FileCheck %s -check-prefix=LOOPS +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CODEGEN +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -loops -analyze < %s | FileCheck %s -check-prefix=LOOPS 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" target triple = "x86_64-pc-linux-gnu" diff --git a/polly/test/Isl/single_loop_param_less_than.ll b/polly/test/Isl/single_loop_param_less_than.ll index b8a673dd4de..af78683afa3 100644 --- a/polly/test/Isl/single_loop_param_less_than.ll +++ b/polly/test/Isl/single_loop_param_less_than.ll @@ -1,5 +1,5 @@ -; RUN: opt %loadPolly -polly-ast -analyze < %s | FileCheck %s -; RUN: opt %loadPolly -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CODEGEN +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-codegen-isl -S < %s | FileCheck %s -check-prefix=CODEGEN 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" target triple = "x86_64-pc-linux-gnu" diff --git a/polly/test/Isl/single_loop_uint_max_iterations.ll b/polly/test/Isl/single_loop_uint_max_iterations.ll index de1982f23cc..d4010b50e30 100644 --- a/polly/test/Isl/single_loop_uint_max_iterations.ll +++ b/polly/test/Isl/single_loop_uint_max_iterations.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -S -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -S -analyze < %s | FileCheck %s ; XFAIL: * ;#include "limits.h" diff --git a/polly/test/Isl/single_loop_ull_max_iterations.ll b/polly/test/Isl/single_loop_ull_max_iterations.ll index 78e1b86f2c4..5a8042879d6 100644 --- a/polly/test/Isl/single_loop_ull_max_iterations.ll +++ b/polly/test/Isl/single_loop_ull_max_iterations.ll @@ -1,4 +1,4 @@ -; RUN: opt %loadPolly -polly-ast -S -analyze < %s | FileCheck %s +; RUN: opt %loadPolly -polly-no-early-exit -polly-ast -S -analyze < %s | FileCheck %s ; XFAIL: * ;#include "limits.h" diff --git a/polly/test/ScheduleOptimizer/computeout.ll b/polly/test/ScheduleOptimizer/computeout.ll index 578478c3a11..58154867518 100644 --- a/polly/test/ScheduleOptimizer/computeout.ll +++ b/polly/test/ScheduleOptimizer/computeout.ll @@ -1,5 +1,5 @@ -; RUN: opt -S %loadPolly -basicaa -polly-opt-isl -polly-opt-fusion=max -polly-ast -analyze < %s | FileCheck %s -; RUN: opt -S %loadPolly -basicaa -polly-opt-isl -polly-opt-fusion=max -polly-ast -analyze -polly-dependences-computeout=1 < %s | FileCheck %s -check-prefix=TIMEOUT +; RUN: opt -S %loadPolly -basicaa -polly-opt-isl -polly-opt-fusion=max -polly-ast -analyze -polly-no-early-exit < %s | FileCheck %s +; RUN: opt -S %loadPolly -basicaa -polly-opt-isl -polly-opt-fusion=max -polly-ast -analyze -polly-no-early-exit -polly-dependences-computeout=1 < %s | FileCheck %s -check-prefix=TIMEOUT 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" target triple = "x86_64-pc-linux-gnu" |

