Index: include/polly/ScopInfo.h =================================================================== --- include/polly/ScopInfo.h +++ include/polly/ScopInfo.h @@ -626,6 +626,9 @@ /// The underlying Region. Region &R; + /// Flag to indicate that the scheduler actually optimized the SCoP. + bool IsOptimized; + /// Max loop depth. unsigned MaxLoopDepth; @@ -781,6 +784,12 @@ return maxScatterDim; } + /// @brief Mark the SCoP as optmized by the scheduler. + void markAsOptimized() { IsOptimized = true; } + + /// @brief Check ifthe SCoP has been optimized by the scheduler. + bool isOptimized() const { return IsOptimized; } + /// @brief Get the name of this Scop. std::string getNameStr() const; Index: lib/Analysis/ScopInfo.cpp =================================================================== --- lib/Analysis/ScopInfo.cpp +++ lib/Analysis/ScopInfo.cpp @@ -1522,7 +1522,7 @@ 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(); Index: lib/CodeGen/IslAst.cpp =================================================================== --- lib/CodeGen/IslAst.cpp +++ lib/CodeGen/IslAst.cpp @@ -63,6 +63,11 @@ cl::init(false), cl::ZeroOrMore, cl::cat(PollyCategory)); +static cl::opt 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 @@ } } -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 @@ 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 @@ 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 @@ 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); Index: lib/CodeGen/IslCodeGeneration.cpp =================================================================== --- lib/CodeGen/IslCodeGeneration.cpp +++ lib/CodeGen/IslCodeGeneration.cpp @@ -912,8 +912,14 @@ } bool runOnScop(Scop &S) { - LI = &getAnalysis().getLoopInfo(); AI = &getAnalysis(); + + // Check if we created an isl_ast root node, otherwise exit. + isl_ast_node *AstRoot = AI->getAst(); + if (!AstRoot) + return false; + + LI = &getAnalysis().getLoopInfo(); DT = &getAnalysis().getDomTree(); SE = &getAnalysis(); DL = &getAnalysis().getDataLayout(); @@ -935,7 +941,7 @@ BasicBlock *StartBlock = executeScopConditionally(S, this, RTC); Builder.SetInsertPoint(StartBlock->begin()); - NodeBuilder.create(AI->getAst()); + NodeBuilder.create(AstRoot); return true; } Index: lib/Transform/ScheduleOptimizer.cpp =================================================================== --- lib/Transform/ScheduleOptimizer.cpp +++ lib/Transform/ScheduleOptimizer.cpp @@ -554,13 +554,34 @@ DEBUG(dbgs() << "Schedule := " << stringFromIslObj(Schedule) << ";\n"); - isl_union_map *ScheduleMap = getScheduleMap(Schedule); + isl_union_map *OldSchedule = S.getSchedule(); + isl_union_map *NewSchedule = getScheduleMap(Schedule); + + // 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. number of stride-one accesses) + bool changed = !isl_union_map_is_equal(OldSchedule, NewSchedule); + isl_union_map_free(OldSchedule); + + if (changed) + S.markAsOptimized(); + else { + isl_schedule_free(Schedule); + isl_union_map_free(NewSchedule); + return false; + } 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 +594,7 @@ Stmt->setScattering(StmtSchedule); } - isl_union_map_free(ScheduleMap); + isl_union_map_free(NewSchedule); LastSchedule = Schedule; unsigned MaxScatDims = 0; Index: test/DeadCodeElimination/chained_iterations.ll =================================================================== --- test/DeadCodeElimination/chained_iterations.ll +++ 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" ; Index: test/DeadCodeElimination/chained_iterations_2.ll =================================================================== --- test/DeadCodeElimination/chained_iterations_2.ll +++ 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" ; Index: test/DeadCodeElimination/computeout.ll =================================================================== --- test/DeadCodeElimination/computeout.ll +++ 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" Index: test/DeadCodeElimination/dead_iteration_elimination.ll =================================================================== --- test/DeadCodeElimination/dead_iteration_elimination.ll +++ 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" ; Index: test/DeadCodeElimination/non-affine-affine-mix.ll =================================================================== --- test/DeadCodeElimination/non-affine-affine-mix.ll +++ 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++) Index: test/DeadCodeElimination/non-affine.ll =================================================================== --- test/DeadCodeElimination/non-affine.ll +++ 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) ; Index: test/DeadCodeElimination/null_schedule.ll =================================================================== --- test/DeadCodeElimination/null_schedule.ll +++ 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; Index: test/Isl/Ast/alias_simple_1.ll =================================================================== --- test/Isl/Ast/alias_simple_1.ll +++ 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]; ; Index: test/Isl/Ast/alias_simple_2.ll =================================================================== --- test/Isl/Ast/alias_simple_2.ll +++ 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]; ; Index: test/Isl/Ast/alias_simple_3.ll =================================================================== --- test/Isl/Ast/alias_simple_3.ll +++ 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]; Index: test/Isl/Ast/run-time-condition.ll =================================================================== --- test/Isl/Ast/run-time-condition.ll +++ 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]; Index: test/Isl/Ast/simple-run-time-condition.ll =================================================================== --- test/Isl/Ast/simple-run-time-condition.ll +++ 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" Index: test/Isl/Ast/single_loop_strip_mine.ll =================================================================== --- test/Isl/Ast/single_loop_strip_mine.ll +++ 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]; Index: test/Isl/CodeGen/20120316-InvalidCast.ll =================================================================== --- test/Isl/CodeGen/20120316-InvalidCast.ll +++ 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 Index: test/Isl/CodeGen/MemAccess/codegen_constant_offset.ll =================================================================== --- test/Isl/CodeGen/MemAccess/codegen_constant_offset.ll +++ 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-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]; ; Index: test/Isl/CodeGen/MemAccess/codegen_simple.ll =================================================================== --- test/Isl/CodeGen/MemAccess/codegen_simple.ll +++ 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]; ; Index: test/Isl/CodeGen/MemAccess/codegen_simple_float.ll =================================================================== --- test/Isl/CodeGen/MemAccess/codegen_simple_float.ll +++ 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]; ; Index: test/Isl/CodeGen/MemAccess/codegen_simple_md.ll =================================================================== --- test/Isl/CodeGen/MemAccess/codegen_simple_md.ll +++ 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]; ; Index: test/Isl/CodeGen/MemAccess/codegen_simple_md_float.ll =================================================================== --- test/Isl/CodeGen/MemAccess/codegen_simple_md_float.ll +++ 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]; ; Index: test/Isl/CodeGen/alignment.ll =================================================================== --- test/Isl/CodeGen/alignment.ll +++ 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 ; Index: test/Isl/CodeGen/constant_condition.ll =================================================================== --- test/Isl/CodeGen/constant_condition.ll +++ 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 ;int A[1]; Index: test/Isl/CodeGen/create-conditional-scop.ll =================================================================== --- test/Isl/CodeGen/create-conditional-scop.ll +++ 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" Index: test/Isl/CodeGen/debug-intrinsics.ll =================================================================== --- test/Isl/CodeGen/debug-intrinsics.ll +++ 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" Index: test/Isl/CodeGen/loop_with_condition.ll =================================================================== --- test/Isl/CodeGen/loop_with_condition.ll +++ 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 ;#define N 1024 Index: test/Isl/CodeGen/loop_with_condition_ineq.ll =================================================================== --- test/Isl/CodeGen/loop_with_condition_ineq.ll +++ 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 ;#define N 1024 Index: test/Isl/CodeGen/loop_with_condition_nested.ll =================================================================== --- test/Isl/CodeGen/loop_with_condition_nested.ll +++ 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 Index: test/Isl/CodeGen/loop_with_conditional_entry_edge_splited_hard_case.ll =================================================================== --- test/Isl/CodeGen/loop_with_conditional_entry_edge_splited_hard_case.ll +++ 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 Index: test/Isl/CodeGen/multidim_2d_parametric_array_static_loop_bounds.ll =================================================================== --- test/Isl/CodeGen/multidim_2d_parametric_array_static_loop_bounds.ll +++ 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" Index: test/Isl/CodeGen/pointer-type-expressions.ll =================================================================== --- test/Isl/CodeGen/pointer-type-expressions.ll +++ 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; Index: test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll =================================================================== --- test/Isl/CodeGen/pointer-type-pointer-type-comparison.ll +++ 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; Index: test/Isl/CodeGen/reduction_2.ll =================================================================== --- test/Isl/CodeGen/reduction_2.ll +++ 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 ;#include Index: test/Isl/CodeGen/run-time-condition-with-scev-parameters.ll =================================================================== --- test/Isl/CodeGen/run-time-condition-with-scev-parameters.ll +++ 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 Index: test/Isl/CodeGen/run-time-condition.ll =================================================================== --- test/Isl/CodeGen/run-time-condition.ll +++ 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" Index: test/Isl/CodeGen/scalar-references-used-in-scop-compute.ll =================================================================== --- test/Isl/CodeGen/scalar-references-used-in-scop-compute.ll +++ 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. Index: test/Isl/CodeGen/scop_never_executed_runtime_check_location.ll =================================================================== --- test/Isl/CodeGen/scop_never_executed_runtime_check_location.ll +++ 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). Index: test/Isl/CodeGen/sequential_loops.ll =================================================================== --- test/Isl/CodeGen/sequential_loops.ll +++ 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 ;#define N 1024 Index: test/Isl/CodeGen/simple_loop_non_single_exit.ll =================================================================== --- test/Isl/CodeGen/simple_loop_non_single_exit.ll +++ 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; Index: test/Isl/CodeGen/simple_loop_non_single_exit_2.ll =================================================================== --- test/Isl/CodeGen/simple_loop_non_single_exit_2.ll +++ 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; Index: test/Isl/CodeGen/simple_non_single_entry.ll =================================================================== --- test/Isl/CodeGen/simple_non_single_entry.ll +++ 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; Index: test/Isl/CodeGen/simple_nonaffine_loop.ll =================================================================== --- test/Isl/CodeGen/simple_nonaffine_loop.ll +++ 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 ;#include Index: test/Isl/CodeGen/single_do_loop_int_max_iterations.ll =================================================================== --- test/Isl/CodeGen/single_do_loop_int_max_iterations.ll +++ 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" Index: test/Isl/CodeGen/single_do_loop_ll_max_iterations.ll =================================================================== --- test/Isl/CodeGen/single_do_loop_ll_max_iterations.ll +++ 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" Index: test/Isl/CodeGen/single_do_loop_scev_replace.ll =================================================================== --- test/Isl/CodeGen/single_do_loop_scev_replace.ll +++ 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" Index: test/Isl/CodeGen/single_loop.ll =================================================================== --- test/Isl/CodeGen/single_loop.ll +++ 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 ;#define N 1024 Index: test/Isl/CodeGen/single_loop_int_max_iterations.ll =================================================================== --- test/Isl/CodeGen/single_loop_int_max_iterations.ll +++ 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" Index: test/Isl/CodeGen/single_loop_ll_max_iterations.ll =================================================================== --- test/Isl/CodeGen/single_loop_ll_max_iterations.ll +++ 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 Index: test/Isl/CodeGen/single_loop_one_iteration.ll =================================================================== --- test/Isl/CodeGen/single_loop_one_iteration.ll +++ 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 ; Index: test/Isl/CodeGen/single_loop_param.ll =================================================================== --- test/Isl/CodeGen/single_loop_param.ll +++ 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" Index: test/Isl/CodeGen/split_edges.ll =================================================================== --- test/Isl/CodeGen/split_edges.ll +++ 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" Index: test/Isl/CodeGen/split_edges_2.ll =================================================================== --- test/Isl/CodeGen/split_edges_2.ll +++ 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" Index: test/Isl/CodeGen/two-scops-in-row.ll =================================================================== --- test/Isl/CodeGen/two-scops-in-row.ll +++ 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" Index: test/Isl/single_loop_param_less_equal.ll =================================================================== --- test/Isl/single_loop_param_less_equal.ll +++ 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" Index: test/Isl/single_loop_param_less_than.ll =================================================================== --- test/Isl/single_loop_param_less_than.ll +++ 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" Index: test/Isl/single_loop_uint_max_iterations.ll =================================================================== --- test/Isl/single_loop_uint_max_iterations.ll +++ 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" Index: test/Isl/single_loop_ull_max_iterations.ll =================================================================== --- test/Isl/single_loop_ull_max_iterations.ll +++ 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" Index: test/ScheduleOptimizer/computeout.ll =================================================================== --- test/ScheduleOptimizer/computeout.ll +++ 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"