[Passes] Remove Os and Oz optimization pipelines (#191363)
These should use O2 with the optsize or minsize attributes instead. This enforces that there is no divergence between pipeline-level Os/Oz and function-level Os/Oz at an architectural level. For the purpose of testing IR that does not have optsize/minsize itself, it's possible to use `-force-attribute=optsize` etc.
This commit is contained in:
@@ -629,19 +629,7 @@ static OptimizationLevel mapToLevel(const CodeGenOptions &Opts) {
|
|||||||
return OptimizationLevel::O1;
|
return OptimizationLevel::O1;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
switch (Opts.OptimizeSize) {
|
return OptimizationLevel::O2;
|
||||||
default:
|
|
||||||
llvm_unreachable("Invalid optimization level for size!");
|
|
||||||
|
|
||||||
case 0:
|
|
||||||
return OptimizationLevel::O2;
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
return OptimizationLevel::Os;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
return OptimizationLevel::Oz;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
return OptimizationLevel::O3;
|
return OptimizationLevel::O3;
|
||||||
|
|||||||
@@ -266,7 +266,7 @@ void createHLFIRToFIRPassPipeline(mlir::PassManager &pm,
|
|||||||
EnableOpenMP enableOpenMP,
|
EnableOpenMP enableOpenMP,
|
||||||
const MLIRToLLVMPassPipelineConfig &config) {
|
const MLIRToLLVMPassPipelineConfig &config) {
|
||||||
llvm::OptimizationLevel optLevel = config.OptLevel;
|
llvm::OptimizationLevel optLevel = config.OptLevel;
|
||||||
if (optLevel.getSizeLevel() > 0 || optLevel.getSpeedupLevel() > 0) {
|
if (optLevel.getSpeedupLevel() > 0) {
|
||||||
addNestedPassToAllTopLevelOperations<PassConstructor>(
|
addNestedPassToAllTopLevelOperations<PassConstructor>(
|
||||||
pm, hlfir::createExpressionSimplification);
|
pm, hlfir::createExpressionSimplification);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,16 +22,10 @@ namespace llvm {
|
|||||||
|
|
||||||
class OptimizationLevel final {
|
class OptimizationLevel final {
|
||||||
unsigned SpeedLevel = 2;
|
unsigned SpeedLevel = 2;
|
||||||
unsigned SizeLevel = 0;
|
OptimizationLevel(unsigned SpeedLevel) : SpeedLevel(SpeedLevel) {
|
||||||
OptimizationLevel(unsigned SpeedLevel, unsigned SizeLevel)
|
// Check that only valid values are passed.
|
||||||
: SpeedLevel(SpeedLevel), SizeLevel(SizeLevel) {
|
|
||||||
// Check that only valid combinations are passed.
|
|
||||||
assert(SpeedLevel <= 3 &&
|
assert(SpeedLevel <= 3 &&
|
||||||
"Optimization level for speed should be 0, 1, 2, or 3");
|
"Optimization level for speed should be 0, 1, 2, or 3");
|
||||||
assert(SizeLevel <= 2 &&
|
|
||||||
"Optimization level for size should be 0, 1, or 2");
|
|
||||||
assert((SizeLevel == 0 || SpeedLevel == 2) &&
|
|
||||||
"Optimize for size should be encoded with speedup level == 2");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@@ -88,40 +82,17 @@ public:
|
|||||||
/// reasonably. This does not preclude very substantial constant factor
|
/// reasonably. This does not preclude very substantial constant factor
|
||||||
/// costs though.
|
/// costs though.
|
||||||
LLVM_ABI static const OptimizationLevel O3;
|
LLVM_ABI static const OptimizationLevel O3;
|
||||||
/// Similar to \c O2 but tries to optimize for small code size instead of
|
|
||||||
/// fast execution without triggering significant incremental execution
|
|
||||||
/// time slowdowns.
|
|
||||||
///
|
|
||||||
/// The logic here is exactly the same as \c O2, but with code size and
|
|
||||||
/// execution time metrics swapped.
|
|
||||||
///
|
|
||||||
/// A consequence of the different core goal is that this should in general
|
|
||||||
/// produce substantially smaller executables that still run in
|
|
||||||
/// a reasonable amount of time.
|
|
||||||
LLVM_ABI static const OptimizationLevel Os;
|
|
||||||
/// A very specialized mode that will optimize for code size at any and all
|
|
||||||
/// costs.
|
|
||||||
///
|
|
||||||
/// This is useful primarily when there are absolute size limitations and
|
|
||||||
/// any effort taken to reduce the size is worth it regardless of the
|
|
||||||
/// execution time impact. You should expect this level to produce rather
|
|
||||||
/// slow, but very small, code.
|
|
||||||
LLVM_ABI static const OptimizationLevel Oz;
|
|
||||||
|
|
||||||
bool isOptimizingForSpeed() const { return SizeLevel == 0 && SpeedLevel > 0; }
|
bool isOptimizingForSpeed() const { return SpeedLevel > 0; }
|
||||||
|
|
||||||
bool isOptimizingForSize() const { return SizeLevel > 0; }
|
|
||||||
|
|
||||||
bool operator==(const OptimizationLevel &Other) const {
|
bool operator==(const OptimizationLevel &Other) const {
|
||||||
return SizeLevel == Other.SizeLevel && SpeedLevel == Other.SpeedLevel;
|
return SpeedLevel == Other.SpeedLevel;
|
||||||
}
|
}
|
||||||
bool operator!=(const OptimizationLevel &Other) const {
|
bool operator!=(const OptimizationLevel &Other) const {
|
||||||
return SizeLevel != Other.SizeLevel || SpeedLevel != Other.SpeedLevel;
|
return SpeedLevel != Other.SpeedLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned getSpeedupLevel() const { return SpeedLevel; }
|
unsigned getSpeedupLevel() const { return SpeedLevel; }
|
||||||
|
|
||||||
unsigned getSizeLevel() const { return SizeLevel; }
|
|
||||||
};
|
};
|
||||||
} // namespace llvm
|
} // namespace llvm
|
||||||
|
|
||||||
|
|||||||
@@ -10,21 +10,7 @@
|
|||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
const OptimizationLevel OptimizationLevel::O0 = {
|
const OptimizationLevel OptimizationLevel::O0 = {0};
|
||||||
/*SpeedLevel*/ 0,
|
const OptimizationLevel OptimizationLevel::O1 = {1};
|
||||||
/*SizeLevel*/ 0};
|
const OptimizationLevel OptimizationLevel::O2 = {2};
|
||||||
const OptimizationLevel OptimizationLevel::O1 = {
|
const OptimizationLevel OptimizationLevel::O3 = {3};
|
||||||
/*SpeedLevel*/ 1,
|
|
||||||
/*SizeLevel*/ 0};
|
|
||||||
const OptimizationLevel OptimizationLevel::O2 = {
|
|
||||||
/*SpeedLevel*/ 2,
|
|
||||||
/*SizeLevel*/ 0};
|
|
||||||
const OptimizationLevel OptimizationLevel::O3 = {
|
|
||||||
/*SpeedLevel*/ 3,
|
|
||||||
/*SizeLevel*/ 0};
|
|
||||||
const OptimizationLevel OptimizationLevel::Os = {
|
|
||||||
/*SpeedLevel*/ 2,
|
|
||||||
/*SizeLevel*/ 1};
|
|
||||||
const OptimizationLevel OptimizationLevel::Oz = {
|
|
||||||
/*SpeedLevel*/ 2,
|
|
||||||
/*SizeLevel*/ 2};
|
|
||||||
|
|||||||
@@ -489,13 +489,17 @@ public:
|
|||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
static std::optional<OptimizationLevel> parseOptLevel(StringRef S) {
|
static std::optional<OptimizationLevel> parseOptLevel(StringRef S) {
|
||||||
|
if (S == "Os" || S == "Oz")
|
||||||
|
reportFatalUsageError(
|
||||||
|
Twine("The optimization level \"") + S +
|
||||||
|
"\" is no longer supported. Use O2 in conjunction with the " +
|
||||||
|
(S == "Os" ? "optsize" : "minsize") + " attribute instead.");
|
||||||
|
|
||||||
return StringSwitch<std::optional<OptimizationLevel>>(S)
|
return StringSwitch<std::optional<OptimizationLevel>>(S)
|
||||||
.Case("O0", OptimizationLevel::O0)
|
.Case("O0", OptimizationLevel::O0)
|
||||||
.Case("O1", OptimizationLevel::O1)
|
.Case("O1", OptimizationLevel::O1)
|
||||||
.Case("O2", OptimizationLevel::O2)
|
.Case("O2", OptimizationLevel::O2)
|
||||||
.Case("O3", OptimizationLevel::O3)
|
.Case("O3", OptimizationLevel::O3)
|
||||||
.Case("Os", OptimizationLevel::Os)
|
|
||||||
.Case("Oz", OptimizationLevel::Oz)
|
|
||||||
.Default(std::nullopt);
|
.Default(std::nullopt);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -827,8 +831,7 @@ Expected<LoopUnrollOptions> parseLoopUnrollOptions(StringRef Params) {
|
|||||||
StringRef ParamName;
|
StringRef ParamName;
|
||||||
std::tie(ParamName, Params) = Params.split(';');
|
std::tie(ParamName, Params) = Params.split(';');
|
||||||
std::optional<OptimizationLevel> OptLevel = parseOptLevel(ParamName);
|
std::optional<OptimizationLevel> OptLevel = parseOptLevel(ParamName);
|
||||||
// Don't accept -Os/-Oz.
|
if (OptLevel) {
|
||||||
if (OptLevel && !OptLevel->isOptimizingForSize()) {
|
|
||||||
UnrollOpts.setOptLevel(OptLevel->getSpeedupLevel());
|
UnrollOpts.setOptLevel(OptLevel->getSpeedupLevel());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -162,8 +162,9 @@ MODULE_PASS("rtsan", RealtimeSanitizerPass())
|
|||||||
MODULE_PASS("sample-profile", SampleProfileLoaderPass())
|
MODULE_PASS("sample-profile", SampleProfileLoaderPass())
|
||||||
MODULE_PASS("sancov-module", SanitizerCoveragePass())
|
MODULE_PASS("sancov-module", SanitizerCoveragePass())
|
||||||
MODULE_PASS("sanmd-module", SanitizerBinaryMetadataPass())
|
MODULE_PASS("sanmd-module", SanitizerBinaryMetadataPass())
|
||||||
|
// TODO: Rename (or parameterize by optimization level)
|
||||||
MODULE_PASS("scc-oz-module-inliner",
|
MODULE_PASS("scc-oz-module-inliner",
|
||||||
buildInlinerPipeline(OptimizationLevel::Oz,
|
buildInlinerPipeline(OptimizationLevel::O2,
|
||||||
ThinOrFullLTOPhase::None))
|
ThinOrFullLTOPhase::None))
|
||||||
MODULE_PASS("shadow-stack-gc-lowering", ShadowStackGCLoweringPass())
|
MODULE_PASS("shadow-stack-gc-lowering", ShadowStackGCLoweringPass())
|
||||||
MODULE_PASS("strip", StripSymbolsPass())
|
MODULE_PASS("strip", StripSymbolsPass())
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
; RUN: opt -stats -enable-detailed-function-properties -disable-output -O0 < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POSTNOOPT
|
; RUN: opt -stats -enable-detailed-function-properties -disable-output -O0 < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POSTNOOPT
|
||||||
; RUN: opt -stats -enable-detailed-function-properties -disable-output -O3 < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
; RUN: opt -stats -enable-detailed-function-properties -disable-output -O3 < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
||||||
; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='lto<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='lto<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
||||||
; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='lto-pre-link<Os>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
|
||||||
; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='lto-pre-link<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='lto-pre-link<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
||||||
; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='thinlto<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='thinlto<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
||||||
; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='thinlto-pre-link<O2>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
; RUN: opt -stats -enable-detailed-function-properties -disable-output -passes='thinlto-pre-link<O2>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
; RUN: opt -stats -disable-output -O0 < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POSTNOOPT
|
; RUN: opt -stats -disable-output -O0 < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POSTNOOPT
|
||||||
; RUN: opt -stats -disable-output -O3 < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
; RUN: opt -stats -disable-output -O3 < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
||||||
; RUN: opt -stats -disable-output -passes='lto<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
; RUN: opt -stats -disable-output -passes='lto<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
||||||
; RUN: opt -stats -disable-output -passes='lto-pre-link<Os>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
|
||||||
; RUN: opt -stats -disable-output -passes='lto-pre-link<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
; RUN: opt -stats -disable-output -passes='lto-pre-link<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
||||||
; RUN: opt -stats -disable-output -passes='thinlto<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
; RUN: opt -stats -disable-output -passes='thinlto<O3>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
||||||
; RUN: opt -stats -disable-output -passes='thinlto-pre-link<O2>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
; RUN: opt -stats -disable-output -passes='thinlto-pre-link<O2>' < %s 2>&1 | FileCheck %s --check-prefixes=PRE,POST
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: opt -Os -S < %s | FileCheck %s
|
; RUN: opt -O2 -S < %s | FileCheck %s
|
||||||
; Don't reset the alignment on the struct to 1.
|
; Don't reset the alignment on the struct to 1.
|
||||||
; CHECK: align 4
|
; CHECK: align 4
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
; RUN: opt -passes='function-simplification<O1>' -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s --check-prefix=O1
|
; RUN: opt -passes='function-simplification<O1>' -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s --check-prefix=O1
|
||||||
; RUN: opt -passes='function-simplification<O2>' -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s --check-prefix=O23SZ
|
; RUN: opt -passes='function-simplification<O2>' -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s --check-prefix=O23
|
||||||
; RUN: opt -passes='function-simplification<O3>' -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s --check-prefix=O23SZ
|
; RUN: opt -passes='function-simplification<O3>' -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s --check-prefix=O23
|
||||||
; RUN: opt -passes='function-simplification<Os>' -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s --check-prefix=O23SZ
|
|
||||||
; RUN: opt -passes='function-simplification<Oz>' -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s --check-prefix=O23SZ
|
|
||||||
; RUN: not opt -passes='function-simplification<O0>' -disable-output < %s 2>&1 | FileCheck %s --check-prefix=O0
|
; RUN: not opt -passes='function-simplification<O0>' -disable-output < %s 2>&1 | FileCheck %s --check-prefix=O0
|
||||||
|
|
||||||
; O1: Running pass: EarlyCSEPass
|
; O1: Running pass: EarlyCSEPass
|
||||||
; O1-NOT: Running pass: GVNPass
|
; O1-NOT: Running pass: GVNPass
|
||||||
|
|
||||||
; O23SZ: Running pass: EarlyCSEPass
|
; O23: Running pass: EarlyCSEPass
|
||||||
; O23SZ: Running pass: GVNPass
|
; O23: Running pass: GVNPass
|
||||||
|
|
||||||
; O0: invalid function-simplification parameter 'O0'
|
; O0: invalid function-simplification parameter 'O0'
|
||||||
|
|
||||||
define void @f() {
|
define void @f() {
|
||||||
ret void
|
ret void
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,84 +12,78 @@
|
|||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O1,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O1,%llvmcheckext
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='default<O2>' -S %s 2>&1 \
|
; RUN: -passes='default<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O2,CHECK-O23SZ,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O2,CHECK-O23,%llvmcheckext
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23SZ,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23,%llvmcheckext
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -passes='default<Os>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O23SZ,%llvmcheckext
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -passes='default<Oz>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O23SZ,%llvmcheckext
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='lto-pre-link<O2>' -S %s 2>&1 \
|
; RUN: -passes='lto-pre-link<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-LTO,CHECK-O2,CHECK-O23SZ,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-LTO,CHECK-O2,CHECK-O23,%llvmcheckext
|
||||||
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-peephole='no-op-function' \
|
; RUN: -passes-ep-peephole='no-op-function' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-PEEPHOLE,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-PEEPHOLE,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-late-loop-optimizations='no-op-loop' \
|
; RUN: -passes-ep-late-loop-optimizations='no-op-loop' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-LOOP-LATE,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-LOOP-LATE,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-loop-optimizer-end='no-op-loop' \
|
; RUN: -passes-ep-loop-optimizer-end='no-op-loop' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-LOOP-END,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-LOOP-END,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-scalar-optimizer-late='no-op-function' \
|
; RUN: -passes-ep-scalar-optimizer-late='no-op-function' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-SCALAR-LATE,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-SCALAR-LATE,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-cgscc-optimizer-late='no-op-cgscc' \
|
; RUN: -passes-ep-cgscc-optimizer-late='no-op-cgscc' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-CGSCC-LATE,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-CGSCC-LATE,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-vectorizer-start='no-op-function' \
|
; RUN: -passes-ep-vectorizer-start='no-op-function' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-VECTORIZER-START,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-VECTORIZER-START,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-vectorizer-end='no-op-function' \
|
; RUN: -passes-ep-vectorizer-end='no-op-function' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-VECTORIZER-END,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-VECTORIZER-END,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-pipeline-start='no-op-module' \
|
; RUN: -passes-ep-pipeline-start='no-op-module' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-PIPELINE-START,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-PIPELINE-START,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-pipeline-early-simplification='no-op-module' \
|
; RUN: -passes-ep-pipeline-early-simplification='no-op-module' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-PIPELINE-EARLY-SIMPLIFICATION,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-PIPELINE-EARLY-SIMPLIFICATION,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-pipeline-start='no-op-module' \
|
; RUN: -passes-ep-pipeline-start='no-op-module' \
|
||||||
; RUN: -passes='lto-pre-link<O3>' -S %s 2>&1 \
|
; RUN: -passes='lto-pre-link<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-LTO,CHECK-O3,%llvmcheckext,CHECK-EP-PIPELINE-START,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-LTO,CHECK-O3,%llvmcheckext,CHECK-EP-PIPELINE-START,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-optimizer-early='no-op-module' \
|
; RUN: -passes-ep-optimizer-early='no-op-module' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-OPTIMIZER-EARLY,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-OPTIMIZER-EARLY,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes-ep-optimizer-last='no-op-module' \
|
; RUN: -passes-ep-optimizer-last='no-op-module' \
|
||||||
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-OPTIMIZER-LAST,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,%llvmcheckext,CHECK-EP-OPTIMIZER-LAST,CHECK-O23
|
||||||
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='default<O3>' -enable-matrix -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -enable-matrix -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23SZ,%llvmcheckext,CHECK-MATRIX
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23,%llvmcheckext,CHECK-MATRIX
|
||||||
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='default<O3>' -enable-merge-functions -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -enable-merge-functions -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23SZ,%llvmcheckext,CHECK-MERGE-FUNCS
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23,%llvmcheckext,CHECK-MERGE-FUNCS
|
||||||
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='default<O3>' -ir-outliner -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -ir-outliner -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23SZ,%llvmcheckext,CHECK-IR-OUTLINER
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23,%llvmcheckext,CHECK-IR-OUTLINER
|
||||||
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='default<O3>' -hot-cold-split -S %s 2>&1 \
|
; RUN: -passes='default<O3>' -hot-cold-split -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23SZ,%llvmcheckext,CHECK-HOT-COLD-SPLIT
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-DEFAULT,CHECK-O3,CHECK-O23,%llvmcheckext,CHECK-HOT-COLD-SPLIT
|
||||||
|
|
||||||
; CHECK-O: Running pass: Annotation2Metadata
|
; CHECK-O: Running pass: Annotation2Metadata
|
||||||
; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass
|
||||||
@@ -149,23 +143,23 @@
|
|||||||
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
||||||
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
||||||
; CHECK-O-NEXT: Running analysis: AAManager
|
; CHECK-O-NEXT: Running analysis: AAManager
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
|
; CHECK-O23-NEXT: Running pass: SpeculativeExecutionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpTableToSwitchPass
|
; CHECK-O23-NEXT: Running pass: JumpTableToSwitchPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
|
; CHECK-O23-NEXT: Running pass: AggressiveInstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
||||||
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
|
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass
|
; CHECK-O23-NEXT: Running pass: TailCallElimPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: ReassociatePass
|
; CHECK-O-NEXT: Running pass: ReassociatePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
|
; CHECK-O23-NEXT: Running pass: ConstraintEliminationPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LoopAnalysis
|
; CHECK-O23-NEXT: Running analysis: LoopAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O23-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O1-NEXT: Running analysis: LoopAnalysis
|
; CHECK-O1-NEXT: Running analysis: LoopAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LCSSAPass
|
; CHECK-O-NEXT: Running pass: LCSSAPass
|
||||||
@@ -188,10 +182,10 @@
|
|||||||
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
||||||
; CHECK-EP-LOOP-END-NEXT: Running pass: NoOpLoopPass
|
; CHECK-EP-LOOP-END-NEXT: Running pass: NoOpLoopPass
|
||||||
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
|
; CHECK-O23-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-O23-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GVNPass
|
; CHECK-O23-NEXT: Running pass: GVNPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
|
; CHECK-O23-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O1-NEXT: Running analysis: PostDominatorTreeAnalysis
|
; CHECK-O1-NEXT: Running analysis: PostDominatorTreeAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: SCCPPass
|
; CHECK-O-NEXT: Running pass: SCCPPass
|
||||||
@@ -199,21 +193,21 @@
|
|||||||
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
|
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: ADCEPass
|
; CHECK-O-NEXT: Running pass: ADCEPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: PostDominatorTreeAnalysis
|
; CHECK-O23-NEXT: Running analysis: PostDominatorTreeAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O23-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DSEPass
|
; CHECK-O23-NEXT: Running pass: DSEPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: CycleAnalysis
|
; CHECK-O23-NEXT: Running analysis: CycleAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MoveAutoInitPass on foo
|
; CHECK-O23-NEXT: Running pass: MoveAutoInitPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LCSSAPass
|
; CHECK-O23-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LICMPass
|
; CHECK-O23-NEXT: Running pass: LICMPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CoroElidePass
|
; CHECK-O23-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-EP-SCALAR-LATE-NEXT: Running pass: NoOpFunctionPass
|
; CHECK-EP-SCALAR-LATE-NEXT: Running pass: NoOpFunctionPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
@@ -257,7 +251,7 @@
|
|||||||
; CHECK-O-NEXT: Running pass: LoopLoadEliminationPass
|
; CHECK-O-NEXT: Running pass: LoopLoadEliminationPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SLPVectorizerPass
|
; CHECK-O23-NEXT: Running pass: SLPVectorizerPass
|
||||||
; CHECK-O-NEXT: Running pass: VectorCombinePass
|
; CHECK-O-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: LoopUnrollPass
|
; CHECK-O-NEXT: Running pass: LoopUnrollPass
|
||||||
|
|||||||
@@ -9,29 +9,23 @@
|
|||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,CHECK-EP
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,CHECK-EP
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='lto<O2>' -S %s 2>&1 \
|
; RUN: -passes='lto<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='lto<O2>' -S %s -passes-ep-full-link-time-optimization-early=no-op-module \
|
; RUN: -passes='lto<O2>' -S %s -passes-ep-full-link-time-optimization-early=no-op-module \
|
||||||
; RUN: -passes-ep-full-link-time-optimization-last=no-op-module 2>&1 \
|
; RUN: -passes-ep-full-link-time-optimization-last=no-op-module 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,CHECK-EP
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23,CHECK-EP
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='lto<O3>' -S %s 2>&1 \
|
; RUN: -passes='lto<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='lto<O3>' -S %s -passes-ep-vectorizer-start='no-op-function' 2>&1 \
|
; RUN: -passes='lto<O3>' -S %s -passes-ep-vectorizer-start='no-op-function' 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,CHECK-EP-VECTORIZER-START
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23,CHECK-EP-VECTORIZER-START
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='lto<O3>' -S %s -passes-ep-vectorizer-end='no-op-function' 2>&1 \
|
; RUN: -passes='lto<O3>' -S %s -passes-ep-vectorizer-end='no-op-function' 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,CHECK-EP-VECTORIZER-END
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23,CHECK-EP-VECTORIZER-END
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -passes='lto<Os>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -passes='lto<Oz>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='lto<O3>' -S %s -passes-ep-peephole='no-op-function' 2>&1 \
|
; RUN: -passes='lto<O3>' -S %s -passes-ep-peephole='no-op-function' 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,CHECK-EP-PEEPHOLE
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23,CHECK-EP-PEEPHOLE
|
||||||
|
|
||||||
; CHECK-EP: Running pass: NoOpModulePass
|
; CHECK-EP: Running pass: NoOpModulePass
|
||||||
; CHECK-O: Running pass: CrossDSOCFIPass
|
; CHECK-O: Running pass: CrossDSOCFIPass
|
||||||
@@ -40,128 +34,128 @@
|
|||||||
; CHECK-O-NEXT: Running pass: InferFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: InferFunctionAttrsPass
|
||||||
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Module
|
; CHECK-O-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}Module
|
||||||
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
|
; CHECK-O-NEXT: Running analysis: TargetLibraryAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CallSiteSplittingPass on foo
|
; CHECK-O23-NEXT: Running pass: CallSiteSplittingPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: TargetLibraryAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: TargetLibraryAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: TargetIRAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: TargetIRAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: DominatorTreeAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: DominatorTreeAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: PGOIndirectCallPromotion
|
; CHECK-O23-NEXT: PGOIndirectCallPromotion
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: ProfileSummaryAnalysis
|
; CHECK-O23-NEXT: Running analysis: ProfileSummaryAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis
|
; CHECK-O23-NEXT: Running analysis: OptimizationRemarkEmitterAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}SCC
|
; CHECK-O23-NEXT: Running analysis: InnerAnalysisManagerProxy<{{.*}}SCC
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyCallGraphAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyCallGraphAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy
|
; CHECK-O23-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph{{.*}}>
|
; CHECK-O23-NEXT: Running analysis: OuterAnalysisManagerProxy<{{.*}}LazyCallGraph{{.*}}>
|
||||||
; CHECK-O23SZ-NEXT: Running pass: PostOrderFunctionAttrsPass
|
; CHECK-O23-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: AAManager
|
; CHECK-O23-NEXT: Running analysis: AAManager
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: BasicAA
|
; CHECK-O23-NEXT: Running analysis: BasicAA
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: AssumptionAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: AssumptionAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: ScopedNoAliasAA
|
; CHECK-O23-NEXT: Running analysis: ScopedNoAliasAA
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: TypeBasedAA
|
; CHECK-O23-NEXT: Running analysis: TypeBasedAA
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: OuterAnalysisManagerProxy
|
; CHECK-O23-NEXT: Running analysis: OuterAnalysisManagerProxy
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ArgumentPromotionPass
|
; CHECK-O23-NEXT: Running pass: ArgumentPromotionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SROAPass
|
; CHECK-O23-NEXT: Running pass: SROAPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: IPSCCPPass
|
; CHECK-O23-NEXT: Running pass: IPSCCPPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CalledValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CalledValuePropagationPass
|
||||||
; CHECK-O-NEXT: Running pass: ReversePostOrderFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: ReversePostOrderFunctionAttrsPass
|
||||||
; CHECK-O1-NEXT: Running analysis: LazyCallGraphAnalysis
|
; CHECK-O1-NEXT: Running analysis: LazyCallGraphAnalysis
|
||||||
; CHECK-O1-NEXT: Running analysis: TargetLibraryAnalysis
|
; CHECK-O1-NEXT: Running analysis: TargetLibraryAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: GlobalSplitPass
|
; CHECK-O-NEXT: Running pass: GlobalSplitPass
|
||||||
; CHECK-O-NEXT: Running pass: WholeProgramDevirtPass
|
; CHECK-O-NEXT: Running pass: WholeProgramDevirtPass
|
||||||
; CHECK-O-NEXT: Running pass: NoRecurseLTOInferencePass
|
; CHECK-O-NEXT: Running pass: NoRecurseLTOInferencePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CoroEarlyPass
|
; CHECK-O23-NEXT: Running pass: CoroEarlyPass
|
||||||
; CHECK-O1-NEXT: Running pass: LowerTypeTestsPass
|
; CHECK-O1-NEXT: Running pass: LowerTypeTestsPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GlobalOptPass
|
; CHECK-O23-NEXT: Running pass: GlobalOptPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: PromotePass
|
; CHECK-O23-NEXT: Running pass: PromotePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ConstantMergePass
|
; CHECK-O23-NEXT: Running pass: ConstantMergePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DeadArgumentEliminationPass
|
; CHECK-O23-NEXT: Running pass: DeadArgumentEliminationPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: InstCombinePass
|
; CHECK-O23-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LastRunTrackingAnalysis
|
; CHECK-O23-NEXT: Running analysis: LastRunTrackingAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
|
; CHECK-O23-NEXT: Running pass: AggressiveInstCombinePass
|
||||||
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
|
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ExpandVariadicsPass
|
; CHECK-O23-NEXT: Running pass: ExpandVariadicsPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ModuleInlinerWrapperPass
|
; CHECK-O23-NEXT: Running pass: ModuleInlinerWrapperPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: InlineAdvisorAnalysis
|
; CHECK-O23-NEXT: Running analysis: InlineAdvisorAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: InlinerPass
|
; CHECK-O23-NEXT: Running pass: InlinerPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: InlinerPass
|
; CHECK-O23-NEXT: Running pass: InlinerPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: InlineAdvisorAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: InlineAdvisorAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GlobalOptPass
|
; CHECK-O23-NEXT: Running pass: GlobalOptPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: OpenMPOptPass
|
; CHECK-O23-NEXT: Running pass: OpenMPOptPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GlobalDCEPass
|
; CHECK-O23-NEXT: Running pass: GlobalDCEPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ArgumentPromotionPass on (foo)
|
; CHECK-O23-NEXT: Running pass: ArgumentPromotionPass on (foo)
|
||||||
; CHECK-O23SZ-NEXT: CoroSplitPass on (foo)
|
; CHECK-O23-NEXT: CoroSplitPass on (foo)
|
||||||
; CHECK-O23SZ-NEXT: CoroAnnotationElidePass on (foo)
|
; CHECK-O23-NEXT: CoroAnnotationElidePass on (foo)
|
||||||
; CHECK-O23SZ-NEXT: Running pass: InstCombinePass
|
; CHECK-O23-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
|
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
|
; CHECK-O23-NEXT: Running pass: ConstraintEliminationPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LoopAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: LoopAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: ScalarEvolutionAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: ScalarEvolutionAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SROAPass on foo
|
; CHECK-O23-NEXT: Running pass: SROAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass on foo
|
; CHECK-O23-NEXT: Running pass: TailCallElimPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: PostOrderFunctionAttrsPass on (foo)
|
; CHECK-O23-NEXT: Running pass: PostOrderFunctionAttrsPass on (foo)
|
||||||
; CHECK-O23SZ-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
|
; CHECK-O23-NEXT: Running pass: RequireAnalysisPass<{{.*}}GlobalsAA
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: GlobalsAA on [module]
|
; CHECK-O23-NEXT: Running analysis: GlobalsAA on [module]
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: CallGraphAnalysis on [module]
|
; CHECK-O23-NEXT: Running analysis: CallGraphAnalysis on [module]
|
||||||
; CHECK-O23SZ-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
|
; CHECK-O23-NEXT: Running pass: InvalidateAnalysisPass<{{.*}}AAManager
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: AAManager on foo
|
; CHECK-O23-NEXT: Invalidating analysis: AAManager on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
|
; CHECK-O23-NEXT: Running pass: OpenMPOptCGSCCPass on (foo)
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass on foo
|
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LCSSAPass on foo
|
; CHECK-O23-NEXT: Running pass: LCSSAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: MemorySSAAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: MemorySSAAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: AAManager on foo
|
; CHECK-O23-NEXT: Running analysis: AAManager on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: InnerAnalysisManagerProxy
|
; CHECK-O23-NEXT: Running analysis: InnerAnalysisManagerProxy
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LICMPass on loop
|
; CHECK-O23-NEXT: Running pass: LICMPass on loop
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GVNPass on foo
|
; CHECK-O23-NEXT: Running pass: GVNPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: MemoryDependenceAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass on foo
|
; CHECK-O23-NEXT: Running pass: MemCpyOptPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DSEPass on foo
|
; CHECK-O23-NEXT: Running pass: DSEPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: CycleAnalysis
|
; CHECK-O23-NEXT: Running analysis: CycleAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MoveAutoInitPass on foo
|
; CHECK-O23-NEXT: Running pass: MoveAutoInitPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass on foo
|
; CHECK-O23-NEXT: Running pass: MergedLoadStoreMotionPass on foo
|
||||||
; CHECK-EP-VECTORIZER-START-NEXT: Running pass: NoOpFunctionPass on foo
|
; CHECK-EP-VECTORIZER-START-NEXT: Running pass: NoOpFunctionPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass on foo
|
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LCSSAPass on foo
|
; CHECK-O23-NEXT: Running pass: LCSSAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: IndVarSimplifyPass on loop
|
; CHECK-O23-NEXT: Running pass: IndVarSimplifyPass on loop
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopDeletionPass on loop
|
; CHECK-O23-NEXT: Running pass: LoopDeletionPass on loop
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopFullUnrollPass on loop
|
; CHECK-O23-NEXT: Running pass: LoopFullUnrollPass on loop
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopDistributePass on foo
|
; CHECK-O23-NEXT: Running pass: LoopDistributePass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LoopAccessAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: LoopAccessAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopVectorizePass on foo
|
; CHECK-O23-NEXT: Running pass: LoopVectorizePass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: DemandedBitsAnalysis on foo
|
; CHECK-O23-NEXT: Running analysis: DemandedBitsAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DropUnnecessaryAssumesPass on foo
|
; CHECK-O23-NEXT: Running pass: DropUnnecessaryAssumesPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: InferAlignmentPass on foo
|
; CHECK-O23-NEXT: Running pass: InferAlignmentPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopUnrollPass on foo
|
; CHECK-O23-NEXT: Running pass: LoopUnrollPass on foo
|
||||||
; CHECK-O23SZ-NEXT: WarnMissedTransformationsPass on foo
|
; CHECK-O23-NEXT: WarnMissedTransformationsPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SROAPass on foo
|
; CHECK-O23-NEXT: Running pass: SROAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: InstCombinePass on foo
|
; CHECK-O23-NEXT: Running pass: InstCombinePass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SimplifyCFGPass on foo
|
; CHECK-O23-NEXT: Running pass: SimplifyCFGPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SCCPPass on foo
|
; CHECK-O23-NEXT: Running pass: SCCPPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: InstCombinePass on foo
|
; CHECK-O23-NEXT: Running pass: InstCombinePass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: BDCEPass on foo
|
; CHECK-O23-NEXT: Running pass: BDCEPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SLPVectorizerPass on foo
|
; CHECK-O23-NEXT: Running pass: SLPVectorizerPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass on foo
|
; CHECK-O23-NEXT: Running pass: VectorCombinePass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: InferAlignmentPass on foo
|
; CHECK-O23-NEXT: Running pass: InferAlignmentPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: InstCombinePass on foo
|
; CHECK-O23-NEXT: Running pass: InstCombinePass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LCSSAPass
|
; CHECK-O23-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LICMPass
|
; CHECK-O23-NEXT: Running pass: LICMPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: AlignmentFromAssumptionsPass on foo
|
; CHECK-O23-NEXT: Running pass: AlignmentFromAssumptionsPass on foo
|
||||||
; CHECK-EP-VECTORIZER-END-NEXT: Running pass: NoOpFunctionPass on foo
|
; CHECK-EP-VECTORIZER-END-NEXT: Running pass: NoOpFunctionPass on foo
|
||||||
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass on foo
|
; CHECK-EP-PEEPHOLE-NEXT: Running pass: NoOpFunctionPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass on foo
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LowerTypeTestsPass
|
; CHECK-O23-NEXT: Running pass: LowerTypeTestsPass
|
||||||
; CHECK-O-NEXT: Running pass: DropTypeTestsPass
|
; CHECK-O-NEXT: Running pass: DropTypeTestsPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSink
|
; CHECK-O23-NEXT: Running pass: LoopSink
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DivRemPairs
|
; CHECK-O23-NEXT: Running pass: DivRemPairs
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O23-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: EliminateAvailableExternallyPass
|
; CHECK-O23-NEXT: Running pass: EliminateAvailableExternallyPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GlobalDCEPass
|
; CHECK-O23-NEXT: Running pass: GlobalDCEPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: RelLookupTableConverterPass
|
; CHECK-O23-NEXT: Running pass: RelLookupTableConverterPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CGProfilePass
|
; CHECK-O23-NEXT: Running pass: CGProfilePass
|
||||||
; CHECK-O1-NEXT: Running pass: CoroConditionalWrapper
|
; CHECK-O1-NEXT: Running pass: CoroConditionalWrapper
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CoroCleanupPass
|
; CHECK-O23-NEXT: Running pass: CoroCleanupPass
|
||||||
; CHECK-O-NEXT: Running pass: AllocTokenPass
|
; CHECK-O-NEXT: Running pass: AllocTokenPass
|
||||||
; CHECK-EP-NEXT: Running pass: NoOpModulePass
|
; CHECK-EP-NEXT: Running pass: NoOpModulePass
|
||||||
; CHECK-O-NEXT: Running pass: AnnotationRemarksPass on foo
|
; CHECK-O-NEXT: Running pass: AnnotationRemarksPass on foo
|
||||||
|
|||||||
@@ -1,21 +1,20 @@
|
|||||||
; RUN: opt -disable-verify -eagerly-invalidate-analyses=0 -debug-pass-manager -pgo-kind=pgo-instr-gen-pipeline -passes='default<Os>' -S %s 2>&1 | FileCheck %s --check-prefixes=CHECK-Osz
|
; RUN: opt -disable-verify -eagerly-invalidate-analyses=0 -debug-pass-manager -pgo-kind=pgo-instr-gen-pipeline -passes='default<O2>' -S %s 2>&1 | FileCheck %s --check-prefixes=CHECK-O2
|
||||||
; RUN: opt -disable-verify -eagerly-invalidate-analyses=0 -debug-pass-manager -pgo-kind=pgo-instr-gen-pipeline -passes='default<Oz>' -S %s 2>&1 | FileCheck %s --check-prefixes=CHECK-Osz
|
|
||||||
|
|
||||||
; CHECK-Osz: Running pass: ModuleInlinerWrapperPass
|
; CHECK-O2: Running pass: ModuleInlinerWrapperPass
|
||||||
; CHECK-Osz-NEXT: Running analysis: InlineAdvisorAnalysis
|
; CHECK-O2-NEXT: Running analysis: InlineAdvisorAnalysis
|
||||||
; CHECK-Osz-NEXT: Running analysis: InnerAnalysisManagerProxy
|
; CHECK-O2-NEXT: Running analysis: InnerAnalysisManagerProxy
|
||||||
; CHECK-Osz-NEXT: Running analysis: LazyCallGraphAnalysis
|
; CHECK-O2-NEXT: Running analysis: LazyCallGraphAnalysis
|
||||||
; CHECK-Osz-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy on (foo)
|
; CHECK-O2-NEXT: Running analysis: FunctionAnalysisManagerCGSCCProxy on (foo)
|
||||||
; CHECK-Osz-NEXT: Running analysis: OuterAnalysisManagerProxy
|
; CHECK-O2-NEXT: Running analysis: OuterAnalysisManagerProxy
|
||||||
; CHECK-Osz-NEXT: Running pass: InlinerPass on (foo)
|
; CHECK-O2-NEXT: Running pass: InlinerPass on (foo)
|
||||||
; CHECK-Osz-NEXT: Running pass: InlinerPass on (foo)
|
; CHECK-O2-NEXT: Running pass: InlinerPass on (foo)
|
||||||
; CHECK-Osz-NEXT: Running pass: SROAPass on foo
|
; CHECK-O2-NEXT: Running pass: SROAPass on foo
|
||||||
; CHECK-Osz-NEXT: Running pass: EarlyCSEPass on foo
|
; CHECK-O2-NEXT: Running pass: EarlyCSEPass on foo
|
||||||
; CHECK-Osz-NEXT: Running pass: SimplifyCFGPass on foo
|
; CHECK-O2-NEXT: Running pass: SimplifyCFGPass on foo
|
||||||
; CHECK-Osz-NEXT: Running pass: InstCombinePass on foo
|
; CHECK-O2-NEXT: Running pass: InstCombinePass on foo
|
||||||
; CHECK-Osz-NEXT: Invalidating analysis: InlineAdvisorAnalysis
|
; CHECK-O2-NEXT: Invalidating analysis: InlineAdvisorAnalysis
|
||||||
; CHECK-Osz-NEXT: Running pass: GlobalDCEPass
|
; CHECK-O2-NEXT: Running pass: GlobalDCEPass
|
||||||
; CHECK-Osz-NEXT: Running pass: PGOInstrumentationGen
|
; CHECK-O2-NEXT: Running pass: PGOInstrumentationGen
|
||||||
|
|
||||||
define void @foo() {
|
define void @foo() {
|
||||||
ret void
|
ret void
|
||||||
|
|||||||
@@ -13,25 +13,19 @@
|
|||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,CHECK-POSTLINK-O,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,CHECK-POSTLINK-O,%llvmcheckext
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23,CHECK-POSTLINK-O,%llvmcheckext
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-pipeline-start='no-op-module' \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-pipeline-start='no-op-module' \
|
||||||
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext,CHECK-POSTLINK-O3
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-POSTLINK-O,%llvmcheckext,CHECK-POSTLINK-O3
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-optimizer-early='no-op-module' \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-optimizer-early='no-op-module' \
|
||||||
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext,CHECK-POSTLINK-O3,CHECK-POST-EP-OPT-EARLY
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-POSTLINK-O,%llvmcheckext,CHECK-POSTLINK-O3,CHECK-POST-EP-OPT-EARLY
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-optimizer-last='no-op-module' \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-optimizer-last='no-op-module' \
|
||||||
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext,CHECK-POSTLINK-O3,CHECK-POST-EP-OPT-LAST
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-POSTLINK-O,%llvmcheckext,CHECK-POSTLINK-O3,CHECK-POST-EP-OPT-LAST
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -passes='thinlto<Os>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -passes='thinlto<Oz>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
||||||
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,CHECK-POSTLINK-O,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23,CHECK-POSTLINK-O,%llvmcheckext
|
||||||
|
|
||||||
; Suppress FileCheck --allow-unused-prefixes=false diagnostics.
|
; Suppress FileCheck --allow-unused-prefixes=false diagnostics.
|
||||||
; CHECK-NOEXT: {{^}}
|
; CHECK-NOEXT: {{^}}
|
||||||
@@ -86,22 +80,22 @@
|
|||||||
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
||||||
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
||||||
; CHECK-O-NEXT: Running analysis: AAManager
|
; CHECK-O-NEXT: Running analysis: AAManager
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
|
; CHECK-O23-NEXT: Running pass: SpeculativeExecutionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpTableToSwitchPass
|
; CHECK-O23-NEXT: Running pass: JumpTableToSwitchPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
|
; CHECK-O23-NEXT: Running pass: AggressiveInstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass
|
; CHECK-O23-NEXT: Running pass: TailCallElimPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: ReassociatePass
|
; CHECK-O-NEXT: Running pass: ReassociatePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
|
; CHECK-O23-NEXT: Running pass: ConstraintEliminationPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LoopAnalysis
|
; CHECK-O23-NEXT: Running analysis: LoopAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O23-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O1-NEXT: Running analysis: LoopAnalysis
|
; CHECK-O1-NEXT: Running analysis: LoopAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LCSSAPass
|
; CHECK-O-NEXT: Running pass: LCSSAPass
|
||||||
@@ -122,31 +116,31 @@
|
|||||||
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
||||||
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
||||||
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
|
; CHECK-O23-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-O23-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GVNPass
|
; CHECK-O23-NEXT: Running pass: GVNPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
|
; CHECK-O23-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O1-NEXT: Running analysis: PostDominatorTreeAnalysis
|
; CHECK-O1-NEXT: Running analysis: PostDominatorTreeAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: SCCPPass
|
; CHECK-O-NEXT: Running pass: SCCPPass
|
||||||
; CHECK-O-NEXT: Running pass: BDCEPass
|
; CHECK-O-NEXT: Running pass: BDCEPass
|
||||||
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: ADCEPass
|
; CHECK-O-NEXT: Running pass: ADCEPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: PostDominatorTreeAnalysis
|
; CHECK-O23-NEXT: Running analysis: PostDominatorTreeAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O23-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DSEPass
|
; CHECK-O23-NEXT: Running pass: DSEPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: CycleAnalysis
|
; CHECK-O23-NEXT: Running analysis: CycleAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MoveAutoInitPass on foo
|
; CHECK-O23-NEXT: Running pass: MoveAutoInitPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LCSSAPass
|
; CHECK-O23-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LICMPass on loop
|
; CHECK-O23-NEXT: Running pass: LICMPass on loop
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CoroElidePass
|
; CHECK-O23-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||||
@@ -184,7 +178,7 @@
|
|||||||
; CHECK-POSTLINK-O-NEXT: Running pass: LoopLoadEliminationPass
|
; CHECK-POSTLINK-O-NEXT: Running pass: LoopLoadEliminationPass
|
||||||
; CHECK-POSTLINK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-POSTLINK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-POSTLINK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-POSTLINK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SLPVectorizerPass
|
; CHECK-O23-NEXT: Running pass: SLPVectorizerPass
|
||||||
; CHECK-POSTLINK-O-NEXT: Running pass: VectorCombinePass
|
; CHECK-POSTLINK-O-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-POSTLINK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-POSTLINK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-POSTLINK-O-NEXT: Running pass: LoopUnrollPass
|
; CHECK-POSTLINK-O-NEXT: Running pass: LoopUnrollPass
|
||||||
|
|||||||
@@ -6,19 +6,13 @@
|
|||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,%llvmcheckext
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23,%llvmcheckext
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-pipeline-start='no-op-module' \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-pipeline-start='no-op-module' \
|
||||||
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,%llvmcheckext
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -passes='thinlto<Os>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,%llvmcheckext
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -passes='thinlto<Oz>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,%llvmcheckext
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
||||||
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23,%llvmcheckext
|
||||||
|
|
||||||
; Suppress FileCheck --allow-unused-prefixes=false diagnostics.
|
; Suppress FileCheck --allow-unused-prefixes=false diagnostics.
|
||||||
; CHECK-NOEXT: {{^}}
|
; CHECK-NOEXT: {{^}}
|
||||||
@@ -74,21 +68,21 @@
|
|||||||
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
||||||
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
||||||
; CHECK-O-NEXT: Running analysis: AAManager
|
; CHECK-O-NEXT: Running analysis: AAManager
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
|
; CHECK-O23-NEXT: Running pass: SpeculativeExecutionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpTableToSwitchPass
|
; CHECK-O23-NEXT: Running pass: JumpTableToSwitchPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
|
; CHECK-O23-NEXT: Running pass: AggressiveInstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass
|
; CHECK-O23-NEXT: Running pass: TailCallElimPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: ReassociatePass
|
; CHECK-O-NEXT: Running pass: ReassociatePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
|
; CHECK-O23-NEXT: Running pass: ConstraintEliminationPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O23-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O-NEXT: Running pass: LCSSAPass
|
; CHECK-O-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O1-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O1-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
@@ -108,29 +102,29 @@
|
|||||||
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
||||||
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
||||||
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
|
; CHECK-O23-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-O23-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GVNPass
|
; CHECK-O23-NEXT: Running pass: GVNPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
|
; CHECK-O23-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O-NEXT: Running pass: SCCPPass
|
; CHECK-O-NEXT: Running pass: SCCPPass
|
||||||
; CHECK-O-NEXT: Running pass: BDCEPass
|
; CHECK-O-NEXT: Running pass: BDCEPass
|
||||||
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: ADCEPass
|
; CHECK-O-NEXT: Running pass: ADCEPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O23-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DSEPass
|
; CHECK-O23-NEXT: Running pass: DSEPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: CycleAnalysis
|
; CHECK-O23-NEXT: Running analysis: CycleAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MoveAutoInitPass on foo
|
; CHECK-O23-NEXT: Running pass: MoveAutoInitPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LCSSAPass
|
; CHECK-O23-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LICMPass
|
; CHECK-O23-NEXT: Running pass: LICMPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CoroElidePass
|
; CHECK-O23-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||||
@@ -169,7 +163,7 @@
|
|||||||
; CHECK-O-NEXT: Running pass: LoopLoadEliminationPass
|
; CHECK-O-NEXT: Running pass: LoopLoadEliminationPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SLPVectorizerPass
|
; CHECK-O23-NEXT: Running pass: SLPVectorizerPass
|
||||||
; CHECK-O-NEXT: Running pass: VectorCombinePass
|
; CHECK-O-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: LoopUnrollPass
|
; CHECK-O-NEXT: Running pass: LoopUnrollPass
|
||||||
|
|||||||
@@ -7,23 +7,15 @@
|
|||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
||||||
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23,%llvmcheckext
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-pipeline-start='no-op-module' \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -passes-ep-pipeline-start='no-op-module' \
|
||||||
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
||||||
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O3>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,%llvmcheckext
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
|
||||||
; RUN: -passes='thinlto<Os>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,%llvmcheckext
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
|
||||||
; RUN: -passes='thinlto<Oz>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,%llvmcheckext
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
||||||
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
||||||
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,%llvmcheckext
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23,%llvmcheckext
|
||||||
|
|
||||||
; Suppress FileCheck --allow-unused-prefixes=false diagnostics.
|
; Suppress FileCheck --allow-unused-prefixes=false diagnostics.
|
||||||
; CHECK-NOEXT: {{^}}
|
; CHECK-NOEXT: {{^}}
|
||||||
@@ -83,21 +75,21 @@
|
|||||||
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
||||||
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
||||||
; CHECK-O-NEXT: Running analysis: AAManager
|
; CHECK-O-NEXT: Running analysis: AAManager
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
|
; CHECK-O23-NEXT: Running pass: SpeculativeExecutionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpTableToSwitchPass
|
; CHECK-O23-NEXT: Running pass: JumpTableToSwitchPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
|
; CHECK-O23-NEXT: Running pass: AggressiveInstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass
|
; CHECK-O23-NEXT: Running pass: TailCallElimPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: ReassociatePass
|
; CHECK-O-NEXT: Running pass: ReassociatePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
|
; CHECK-O23-NEXT: Running pass: ConstraintEliminationPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O23-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O-NEXT: Running pass: LCSSAPass
|
; CHECK-O-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O1-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O1-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
@@ -117,29 +109,29 @@
|
|||||||
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
||||||
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
||||||
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
|
; CHECK-O23-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-O23-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GVNPass
|
; CHECK-O23-NEXT: Running pass: GVNPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
|
; CHECK-O23-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O-NEXT: Running pass: SCCPPass
|
; CHECK-O-NEXT: Running pass: SCCPPass
|
||||||
; CHECK-O-NEXT: Running pass: BDCEPass
|
; CHECK-O-NEXT: Running pass: BDCEPass
|
||||||
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: ADCEPass
|
; CHECK-O-NEXT: Running pass: ADCEPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O23-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DSEPass
|
; CHECK-O23-NEXT: Running pass: DSEPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: CycleAnalysis
|
; CHECK-O23-NEXT: Running analysis: CycleAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MoveAutoInitPass
|
; CHECK-O23-NEXT: Running pass: MoveAutoInitPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LCSSAPass
|
; CHECK-O23-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LICMPass
|
; CHECK-O23-NEXT: Running pass: LICMPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CoroElidePass
|
; CHECK-O23-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||||
@@ -178,7 +170,7 @@
|
|||||||
; CHECK-O-NEXT: Running pass: LoopLoadEliminationPass
|
; CHECK-O-NEXT: Running pass: LoopLoadEliminationPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SLPVectorizerPass
|
; CHECK-O23-NEXT: Running pass: SLPVectorizerPass
|
||||||
; CHECK-O-NEXT: Running pass: VectorCombinePass
|
; CHECK-O-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: LoopUnrollPass
|
; CHECK-O-NEXT: Running pass: LoopUnrollPass
|
||||||
|
|||||||
@@ -16,46 +16,34 @@
|
|||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,CHECK-O-NODIS
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O1,CHECK-O-NODIS
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,CHECK-O-NODIS
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23,CHECK-O-NODIS
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -unified-lto -passes='lto-pre-link<O2>' -S %s 2>&1 \
|
; RUN: -unified-lto -passes='lto-pre-link<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ,CHECK-O-NODIS
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23,CHECK-O-NODIS
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-O-NODIS,CHECK-EP-PIPELINE-START
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-O-NODIS,CHECK-EP-PIPELINE-START
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -unified-lto -passes='lto-pre-link<O3>' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \
|
; RUN: -unified-lto -passes='lto-pre-link<O3>' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-O-NODIS,CHECK-EP-PIPELINE-START
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-O-NODIS,CHECK-EP-PIPELINE-START
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-optimizer-early='no-op-module' %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-optimizer-early='no-op-module' %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-O-NODIS,CHECK-EP-OPT-EARLY
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-O-NODIS,CHECK-EP-OPT-EARLY
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -unified-lto -passes='lto-pre-link<O3>' -S -passes-ep-optimizer-early='no-op-module' %s 2>&1 \
|
; RUN: -unified-lto -passes='lto-pre-link<O3>' -S -passes-ep-optimizer-early='no-op-module' %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-O-NODIS,CHECK-EP-OPT-EARLY
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-O-NODIS,CHECK-EP-OPT-EARLY
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-optimizer-last='no-op-module' %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-optimizer-last='no-op-module' %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-O-NODIS,CHECK-EP-OPT-LAST
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-O-NODIS,CHECK-EP-OPT-LAST
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -unified-lto -passes='lto-pre-link<O3>' -S -passes-ep-optimizer-last='no-op-module' %s 2>&1 \
|
; RUN: -unified-lto -passes='lto-pre-link<O3>' -S -passes-ep-optimizer-last='no-op-module' %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-O-NODIS,CHECK-EP-OPT-LAST
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-O-NODIS,CHECK-EP-OPT-LAST
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -passes='thinlto-pre-link<Os>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,CHECK-O-NODIS
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -unified-lto -passes='lto-pre-link<Os>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,CHECK-O-NODIS
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -passes='thinlto-pre-link<Oz>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,CHECK-O-NODIS
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -unified-lto -passes='lto-pre-link<Oz>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ,CHECK-O-NODIS
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
||||||
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-DIS,CHECK-O,CHECK-O2,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-DIS,CHECK-O,CHECK-O2,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
||||||
; RUN: -unified-lto -passes='lto-pre-link<O2>' -S %s 2>&1 \
|
; RUN: -unified-lto -passes='lto-pre-link<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-DIS,CHECK-O,CHECK-O2,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-DIS,CHECK-O,CHECK-O2,CHECK-O23
|
||||||
;
|
;
|
||||||
|
|
||||||
; Suppress FileCheck --allow-unused-prefixes=false diagnostics.
|
; Suppress FileCheck --allow-unused-prefixes=false diagnostics.
|
||||||
@@ -118,22 +106,22 @@
|
|||||||
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
||||||
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
||||||
; CHECK-O-NEXT: Running analysis: AAManager
|
; CHECK-O-NEXT: Running analysis: AAManager
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
|
; CHECK-O23-NEXT: Running pass: SpeculativeExecutionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpTableToSwitchPass
|
; CHECK-O23-NEXT: Running pass: JumpTableToSwitchPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
|
; CHECK-O23-NEXT: Running pass: AggressiveInstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass
|
; CHECK-O23-NEXT: Running pass: TailCallElimPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: ReassociatePass
|
; CHECK-O-NEXT: Running pass: ReassociatePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
|
; CHECK-O23-NEXT: Running pass: ConstraintEliminationPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LoopAnalysis
|
; CHECK-O23-NEXT: Running analysis: LoopAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O23-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O1-NEXT: Running analysis: LoopAnalysis
|
; CHECK-O1-NEXT: Running analysis: LoopAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LCSSAPass
|
; CHECK-O-NEXT: Running pass: LCSSAPass
|
||||||
@@ -154,31 +142,31 @@
|
|||||||
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
||||||
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
||||||
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
|
; CHECK-O23-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-O23-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GVNPass
|
; CHECK-O23-NEXT: Running pass: GVNPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
|
; CHECK-O23-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O1-NEXT: Running analysis: PostDominatorTreeAnalysis
|
; CHECK-O1-NEXT: Running analysis: PostDominatorTreeAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: SCCPPass
|
; CHECK-O-NEXT: Running pass: SCCPPass
|
||||||
; CHECK-O-NEXT: Running pass: BDCEPass
|
; CHECK-O-NEXT: Running pass: BDCEPass
|
||||||
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: ADCEPass
|
; CHECK-O-NEXT: Running pass: ADCEPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: PostDominatorTreeAnalysis
|
; CHECK-O23-NEXT: Running analysis: PostDominatorTreeAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O23-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DSEPass
|
; CHECK-O23-NEXT: Running pass: DSEPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: CycleAnalysis
|
; CHECK-O23-NEXT: Running analysis: CycleAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MoveAutoInitPass
|
; CHECK-O23-NEXT: Running pass: MoveAutoInitPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LCSSAPass
|
; CHECK-O23-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LICMPass on loop
|
; CHECK-O23-NEXT: Running pass: LICMPass on loop
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CoroElidePass
|
; CHECK-O23-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||||
|
|||||||
@@ -9,23 +9,15 @@
|
|||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \
|
; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \
|
||||||
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \
|
; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \
|
||||||
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-EP-PIPELINE-START
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-EP-PIPELINE-START
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \
|
|
||||||
; RUN: -passes='thinlto-pre-link<Os>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \
|
|
||||||
; RUN: -passes='thinlto-pre-link<Oz>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
||||||
; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \
|
; RUN: -pgo-kind=pgo-instr-use-pipeline -profile-file='%t.profdata' \
|
||||||
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23
|
||||||
;
|
;
|
||||||
; CHECK-O: Running pass: Annotation2Metadata
|
; CHECK-O: Running pass: Annotation2Metadata
|
||||||
; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass
|
||||||
@@ -116,12 +108,12 @@
|
|||||||
; CHECK-O-NEXT: Running analysis: ScopedNoAliasAA
|
; CHECK-O-NEXT: Running analysis: ScopedNoAliasAA
|
||||||
; CHECK-O-NEXT: Running analysis: TypeBasedAA
|
; CHECK-O-NEXT: Running analysis: TypeBasedAA
|
||||||
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
|
; CHECK-O-NEXT: Running analysis: OuterAnalysisManagerProxy
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
|
; CHECK-O23-NEXT: Running pass: SpeculativeExecutionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpTableToSwitchPass
|
; CHECK-O23-NEXT: Running pass: JumpTableToSwitchPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running analysis: LastRunTrackingAnalysis
|
; CHECK-O-NEXT: Running analysis: LastRunTrackingAnalysis
|
||||||
@@ -129,14 +121,14 @@
|
|||||||
; CHECK-O-NEXT: Running analysis: BranchProbabilityAnalysis on foo
|
; CHECK-O-NEXT: Running analysis: BranchProbabilityAnalysis on foo
|
||||||
; CHECK-O-NEXT: Running analysis: LoopAnalysis on foo
|
; CHECK-O-NEXT: Running analysis: LoopAnalysis on foo
|
||||||
; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
|
; CHECK-O-NEXT: Running analysis: PostDominatorTreeAnalysis on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
|
; CHECK-O23-NEXT: Running pass: AggressiveInstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: PGOMemOPSizeOpt
|
; CHECK-O23-NEXT: Running pass: PGOMemOPSizeOpt
|
||||||
; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass
|
; CHECK-O23-NEXT: Running pass: TailCallElimPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: ReassociatePass
|
; CHECK-O-NEXT: Running pass: ReassociatePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
|
; CHECK-O23-NEXT: Running pass: ConstraintEliminationPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O23-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O-NEXT: Running pass: LCSSAPass
|
; CHECK-O-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O1-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O1-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
@@ -156,29 +148,29 @@
|
|||||||
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
||||||
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
; CHECK-O-NEXT: Running pass: LoopFullUnrollPass
|
||||||
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
|
; CHECK-O23-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-O23-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GVNPass
|
; CHECK-O23-NEXT: Running pass: GVNPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
|
; CHECK-O23-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O-NEXT: Running pass: SCCPPass
|
; CHECK-O-NEXT: Running pass: SCCPPass
|
||||||
; CHECK-O-NEXT: Running pass: BDCEPass
|
; CHECK-O-NEXT: Running pass: BDCEPass
|
||||||
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: ADCEPass
|
; CHECK-O-NEXT: Running pass: ADCEPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O23-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DSEPass
|
; CHECK-O23-NEXT: Running pass: DSEPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: CycleAnalysis
|
; CHECK-O23-NEXT: Running analysis: CycleAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MoveAutoInitPass on foo
|
; CHECK-O23-NEXT: Running pass: MoveAutoInitPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LCSSAPass
|
; CHECK-O23-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LICMPass
|
; CHECK-O23-NEXT: Running pass: LICMPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CoroElidePass
|
; CHECK-O23-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||||
|
|||||||
@@ -7,23 +7,15 @@
|
|||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
||||||
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
||||||
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
||||||
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O3>' -S -passes-ep-pipeline-start='no-op-module' %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23SZ,CHECK-EP-PIPELINE-START
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O3,CHECK-O23,CHECK-EP-PIPELINE-START
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
|
||||||
; RUN: -passes='thinlto-pre-link<Os>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager \
|
|
||||||
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
|
||||||
; RUN: -passes='thinlto-pre-link<Oz>' -S %s 2>&1 \
|
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O23SZ
|
|
||||||
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
; RUN: opt -disable-verify -verify-analysis-invalidation=0 -eagerly-invalidate-analyses=0 -debug-pass-manager -debug-info-for-profiling \
|
||||||
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
; RUN: -pgo-kind=pgo-sample-use-pipeline -profile-file='%S/Inputs/new-pm-thinlto-samplepgo-defaults.prof' \
|
||||||
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
; RUN: -passes='thinlto-pre-link<O2>' -S %s 2>&1 \
|
||||||
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23SZ
|
; RUN: | FileCheck %s --check-prefixes=CHECK-O,CHECK-O2,CHECK-O23
|
||||||
;
|
;
|
||||||
; CHECK-O: Running pass: Annotation2Metadata
|
; CHECK-O: Running pass: Annotation2Metadata
|
||||||
; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: ForceFunctionAttrsPass
|
||||||
@@ -88,21 +80,21 @@
|
|||||||
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
; CHECK-O-NEXT: Running pass: EarlyCSEPass
|
||||||
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
; CHECK-O-NEXT: Running analysis: MemorySSAAnalysis
|
||||||
; CHECK-O-NEXT: Running analysis: AAManager
|
; CHECK-O-NEXT: Running analysis: AAManager
|
||||||
; CHECK-O23SZ-NEXT: Running pass: SpeculativeExecutionPass
|
; CHECK-O23-NEXT: Running pass: SpeculativeExecutionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpTableToSwitchPass
|
; CHECK-O23-NEXT: Running pass: JumpTableToSwitchPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: AggressiveInstCombinePass
|
; CHECK-O23-NEXT: Running pass: AggressiveInstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
; CHECK-O-NEXT: Running pass: LibCallsShrinkWrapPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: TailCallElimPass
|
; CHECK-O23-NEXT: Running pass: TailCallElimPass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: ReassociatePass
|
; CHECK-O-NEXT: Running pass: ReassociatePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: ConstraintEliminationPass
|
; CHECK-O23-NEXT: Running pass: ConstraintEliminationPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O23-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O-NEXT: Running pass: LCSSAPass
|
; CHECK-O-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O1-NEXT: Running analysis: ScalarEvolutionAnalysis
|
; CHECK-O1-NEXT: Running analysis: ScalarEvolutionAnalysis
|
||||||
@@ -121,29 +113,29 @@
|
|||||||
; CHECK-O-NEXT: Running pass: IndVarSimplifyPass
|
; CHECK-O-NEXT: Running pass: IndVarSimplifyPass
|
||||||
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
; CHECK-O-NEXT: Running pass: LoopDeletionPass
|
||||||
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
; CHECK-O-NEXT: Running pass: SROAPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: VectorCombinePass
|
; CHECK-O23-NEXT: Running pass: VectorCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MergedLoadStoreMotionPass
|
; CHECK-O23-NEXT: Running pass: MergedLoadStoreMotionPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: GVNPass
|
; CHECK-O23-NEXT: Running pass: GVNPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: MemoryDependenceAnalysis
|
; CHECK-O23-NEXT: Running analysis: MemoryDependenceAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O1-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O-NEXT: Running pass: SCCPPass
|
; CHECK-O-NEXT: Running pass: SCCPPass
|
||||||
; CHECK-O-NEXT: Running pass: BDCEPass
|
; CHECK-O-NEXT: Running pass: BDCEPass
|
||||||
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
; CHECK-O-NEXT: Running analysis: DemandedBitsAnalysis
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: JumpThreadingPass
|
; CHECK-O23-NEXT: Running pass: JumpThreadingPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Running analysis: LazyValueAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CorrelatedValuePropagationPass
|
; CHECK-O23-NEXT: Running pass: CorrelatedValuePropagationPass
|
||||||
; CHECK-O23SZ-NEXT: Invalidating analysis: LazyValueAnalysis
|
; CHECK-O23-NEXT: Invalidating analysis: LazyValueAnalysis
|
||||||
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
; CHECK-O1-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: ADCEPass
|
; CHECK-O-NEXT: Running pass: ADCEPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MemCpyOptPass
|
; CHECK-O23-NEXT: Running pass: MemCpyOptPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: DSEPass
|
; CHECK-O23-NEXT: Running pass: DSEPass
|
||||||
; CHECK-O23SZ-NEXT: Running analysis: CycleAnalysis
|
; CHECK-O23-NEXT: Running analysis: CycleAnalysis
|
||||||
; CHECK-O23SZ-NEXT: Running pass: MoveAutoInitPass on foo
|
; CHECK-O23-NEXT: Running pass: MoveAutoInitPass on foo
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LoopSimplifyPass
|
; CHECK-O23-NEXT: Running pass: LoopSimplifyPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LCSSAPass
|
; CHECK-O23-NEXT: Running pass: LCSSAPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: LICMPass
|
; CHECK-O23-NEXT: Running pass: LICMPass
|
||||||
; CHECK-O23SZ-NEXT: Running pass: CoroElidePass
|
; CHECK-O23-NEXT: Running pass: CoroElidePass
|
||||||
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
; CHECK-O-NEXT: Running pass: SimplifyCFGPass
|
||||||
; CHECK-O-NEXT: Running pass: InstCombinePass
|
; CHECK-O-NEXT: Running pass: InstCombinePass
|
||||||
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
; CHECK-O-NEXT: Running pass: PostOrderFunctionAttrsPass
|
||||||
|
|||||||
@@ -5,8 +5,6 @@
|
|||||||
; RUN: opt -O1 < %s -S 2>&1 | FileCheck %s --check-prefix=OPT
|
; RUN: opt -O1 < %s -S 2>&1 | FileCheck %s --check-prefix=OPT
|
||||||
; RUN: opt -O2 < %s -S 2>&1 | FileCheck %s --check-prefix=OPT
|
; RUN: opt -O2 < %s -S 2>&1 | FileCheck %s --check-prefix=OPT
|
||||||
; RUN: opt -O3 < %s -S 2>&1 | FileCheck %s --check-prefix=OPT
|
; RUN: opt -O3 < %s -S 2>&1 | FileCheck %s --check-prefix=OPT
|
||||||
; RUN: opt -Os < %s -S 2>&1 | FileCheck %s --check-prefix=OPT
|
|
||||||
; RUN: opt -Oz < %s -S 2>&1 | FileCheck %s --check-prefix=OPT
|
|
||||||
; RUN: opt -O2 -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s --check-prefix=AA
|
; RUN: opt -O2 -debug-pass-manager -disable-output < %s 2>&1 | FileCheck %s --check-prefix=AA
|
||||||
|
|
||||||
; MULTIPLE: Cannot specify multiple -O#
|
; MULTIPLE: Cannot specify multiple -O#
|
||||||
|
|||||||
5
llvm/test/Other/opt-Os-Oz.ll
Normal file
5
llvm/test/Other/opt-Os-Oz.ll
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
; RUN: not opt -Os < %s -S 2>&1 | FileCheck %s --check-prefix=Os
|
||||||
|
; RUN: not opt -Oz < %s -S 2>&1 | FileCheck %s --check-prefix=Oz
|
||||||
|
|
||||||
|
; Os: The optimization level "Os" is no longer supported. Use O2 in conjunction with the optsize attribute instead.
|
||||||
|
; Oz: The optimization level "Oz" is no longer supported. Use O2 in conjunction with the minsize attribute instead.
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
; RUN: opt -mtriple=x86_64-- -hot-cold-split=true -passes='default<Os>' -debug-pass-manager < %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=DEFAULT-Os
|
; RUN: opt -mtriple=x86_64-- -hot-cold-split=true -passes='default<O2>' -debug-pass-manager < %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=DEFAULT-O2
|
||||||
; RUN: opt -mtriple=x86_64-- -hot-cold-split=true -passes='lto-pre-link<Os>' -debug-pass-manager < %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=LTO-PRELINK-Os
|
; RUN: opt -mtriple=x86_64-- -hot-cold-split=true -passes='lto-pre-link<O2>' -debug-pass-manager < %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=LTO-PRELINK-O2
|
||||||
; RUN: opt -mtriple=x86_64-- -hot-cold-split=true -passes='thinlto-pre-link<Os>' -debug-pass-manager < %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=THINLTO-PRELINK-Os
|
; RUN: opt -mtriple=x86_64-- -hot-cold-split=true -passes='thinlto-pre-link<O2>' -debug-pass-manager < %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=THINLTO-PRELINK-O2
|
||||||
; RUN: opt -mtriple=x86_64-- -hot-cold-split=true -passes='lto<Os>' -debug-pass-manager < %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=LTO-POSTLINK-Os
|
; RUN: opt -mtriple=x86_64-- -hot-cold-split=true -passes='lto<O2>' -debug-pass-manager < %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=LTO-POSTLINK-O2
|
||||||
; RUN: opt -mtriple=x86_64-- -hot-cold-split=true -passes='thinlto<Os>' -debug-pass-manager < %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=THINLTO-POSTLINK-Os
|
; RUN: opt -mtriple=x86_64-- -hot-cold-split=true -passes='thinlto<O2>' -debug-pass-manager < %s -o /dev/null 2>&1 | FileCheck %s -check-prefix=THINLTO-POSTLINK-O2
|
||||||
|
|
||||||
; REQUIRES: asserts
|
; REQUIRES: asserts
|
||||||
|
|
||||||
; Splitting should occur late.
|
; Splitting should occur late.
|
||||||
|
|
||||||
; DEFAULT-Os: pass: HotColdSplittingPass
|
; DEFAULT-O2: pass: HotColdSplittingPass
|
||||||
|
|
||||||
; LTO-PRELINK-Os-NOT: pass: HotColdSplittingPass
|
; LTO-PRELINK-O2-NOT: pass: HotColdSplittingPass
|
||||||
|
|
||||||
; THINLTO-PRELINK-Os-NOT: Running pass: HotColdSplittingPass
|
; THINLTO-PRELINK-O2-NOT: Running pass: HotColdSplittingPass
|
||||||
|
|
||||||
; LTO-POSTLINK-Os: HotColdSplitting
|
; LTO-POSTLINK-O2: HotColdSplitting
|
||||||
; THINLTO-POSTLINK-Os: HotColdSplitting
|
; THINLTO-POSTLINK-O2: HotColdSplitting
|
||||||
|
|||||||
@@ -3,8 +3,6 @@
|
|||||||
; RUN: opt -O1 -S < %s | FileCheck %s
|
; RUN: opt -O1 -S < %s | FileCheck %s
|
||||||
; RUN: opt -O2 -S < %s | FileCheck %s
|
; RUN: opt -O2 -S < %s | FileCheck %s
|
||||||
; RUN: opt -O3 -S < %s | FileCheck %s
|
; RUN: opt -O3 -S < %s | FileCheck %s
|
||||||
; RUN: opt -Os -S < %s | FileCheck %s
|
|
||||||
; RUN: opt -Oz -S < %s | FileCheck %s
|
|
||||||
|
|
||||||
target datalayout = "e-p:64:64"
|
target datalayout = "e-p:64:64"
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
; RUN: -passes='function(vectorizer-start-callbacks<O3>)' < %s 2>&1 | FileCheck %s --check-prefix=VECSTART
|
; RUN: -passes='function(vectorizer-start-callbacks<O3>)' < %s 2>&1 | FileCheck %s --check-prefix=VECSTART
|
||||||
; RUN: opt -disable-output -print-pipeline-passes \
|
; RUN: opt -disable-output -print-pipeline-passes \
|
||||||
; RUN: -passes-ep-peephole='no-op-function' \
|
; RUN: -passes-ep-peephole='no-op-function' \
|
||||||
; RUN: -passes='peephole-callbacks<Os>' < %s 2>&1 | FileCheck %s --check-prefix=PEEP
|
; RUN: -passes='peephole-callbacks<O2>' < %s 2>&1 | FileCheck %s --check-prefix=PEEP
|
||||||
; RUN: opt -disable-output -print-pipeline-passes \
|
; RUN: opt -disable-output -print-pipeline-passes \
|
||||||
; RUN: -passes-ep-pipeline-start='no-op-module' \
|
; RUN: -passes-ep-pipeline-start='no-op-module' \
|
||||||
; RUN: -passes='pipeline-start-callbacks<O1>' < %s 2>&1 | FileCheck %s --check-prefix=MODSTART
|
; RUN: -passes='pipeline-start-callbacks<O1>' < %s 2>&1 | FileCheck %s --check-prefix=MODSTART
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
; RUN: opt --Os -pass-remarks=inline -S < %s 2>&1 | FileCheck %s
|
; RUN: opt -O2 -pass-remarks=inline -S < %s 2>&1 | FileCheck %s
|
||||||
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
|
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
|
||||||
target triple = "arm64e-apple-macosx13"
|
target triple = "arm64e-apple-macosx13"
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; RUN: opt -S -Os < %s | FileCheck %s
|
; RUN: opt -S -O2 < %s | FileCheck %s
|
||||||
; RUN: opt -S -aa-pipeline=basic-aa -passes='default<Os>' < %s | FileCheck %s
|
; RUN: opt -S -aa-pipeline=basic-aa -passes='default<O2>' < %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 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-apple-darwin10.0.0"
|
target triple = "x86_64-apple-darwin10.0.0"
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,4 @@
|
|||||||
; RUN: opt -S -Oz < %s | FileCheck %s -check-prefix=OZ
|
; RUN: opt -S -O2 < %s | FileCheck %s
|
||||||
; RUN: opt -S -O2 < %s | FileCheck %s -check-prefix=O2
|
|
||||||
; RUN: opt -S -Os < %s | FileCheck %s -check-prefix=OS
|
|
||||||
|
|
||||||
; The inline threshold for a function with the optsize attribute is currently
|
|
||||||
; the same as the global inline threshold for -Os. Check that the optsize
|
|
||||||
; function attribute doesn't alter the function-specific inline threshold if the
|
|
||||||
; global inline threshold is lower (as for -Oz).
|
|
||||||
|
|
||||||
@a = global i32 4
|
@a = global i32 4
|
||||||
|
|
||||||
@@ -26,22 +19,18 @@ define i32 @inner() {
|
|||||||
ret i32 %x5
|
ret i32 %x5
|
||||||
}
|
}
|
||||||
|
|
||||||
; @inner() should be inlined for -O2 and -Os but not for -Oz.
|
; @inner() should be inlined for optsize
|
||||||
; OZ: call
|
; CHECK-NOT: call
|
||||||
; O2-NOT: call
|
|
||||||
; OS-NOT: call
|
|
||||||
define i32 @outer() optsize {
|
define i32 @outer() optsize {
|
||||||
%r = call i32 @inner()
|
%r = call i32 @inner()
|
||||||
ret i32 %r
|
ret i32 %r
|
||||||
}
|
}
|
||||||
|
|
||||||
; @inner() should not be inlined for -O2, -Os and -Oz.
|
; @inner() should not be inlined for minsize
|
||||||
; OZ: call
|
; CHECK: call
|
||||||
; O2: call
|
|
||||||
; OS: call
|
|
||||||
define i32 @outer2() minsize {
|
define i32 @outer2() minsize {
|
||||||
%r = call i32 @inner()
|
%r = call i32 @inner()
|
||||||
ret i32 %r
|
ret i32 %r
|
||||||
}
|
}
|
||||||
|
|
||||||
declare void @extern()
|
declare void @extern()
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
; Test that -inline-threshold overrides thresholds derived from opt levels.
|
; Test that -inline-threshold overrides thresholds derived from opt levels.
|
||||||
; RUN: opt < %s -O2 -inline-threshold=500 -S | FileCheck %s
|
; RUN: opt < %s -O2 -inline-threshold=500 -S | FileCheck %s
|
||||||
; RUN: opt < %s -O3 -inline-threshold=500 -S | FileCheck %s
|
; RUN: opt < %s -O3 -inline-threshold=500 -S | FileCheck %s
|
||||||
; RUN: opt < %s -Os -inline-threshold=500 -S | FileCheck %s
|
|
||||||
; RUN: opt < %s -Oz -inline-threshold=500 -S | FileCheck %s
|
|
||||||
|
|
||||||
@a = global i32 4
|
@a = global i32 4
|
||||||
|
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
; RUN: opt < %s -S -passes="default<O2>" -unroll-runtime=true -unroll-threshold-default=0 -unroll-threshold-aggressive=300 | FileCheck %s -check-prefix=O2
|
|
||||||
; RUN: opt < %s -S -passes="default<O3>" -unroll-runtime=true -unroll-threshold-default=0 -unroll-threshold-aggressive=300 | FileCheck %s -check-prefix=O3
|
|
||||||
; RUN: opt < %s -S -passes="default<Os>" -unroll-runtime=true -unroll-threshold-default=0 -unroll-threshold-aggressive=300 | FileCheck %s -check-prefix=Os
|
|
||||||
; RUN: opt < %s -S -passes="default<Oz>" -unroll-runtime=true -unroll-threshold-default=0 -unroll-threshold-aggressive=300 | FileCheck %s -check-prefix=Oz
|
|
||||||
|
|
||||||
; Check that Os and Oz are optimized like O2, not like O3. To easily highlight
|
|
||||||
; the behavior, we artificially disable unrolling for anything but O3 by setting
|
|
||||||
; the default threshold to 0.
|
|
||||||
|
|
||||||
; O3: loop1.preheader
|
|
||||||
; O2-NOT: loop1.preheader
|
|
||||||
; Os-NOT: loop1.preheader
|
|
||||||
; Oz-NOT: loop1.preheader
|
|
||||||
|
|
||||||
define void @unroll(i32 %iter, ptr %addr1, ptr %addr2) nounwind {
|
|
||||||
entry:
|
|
||||||
br label %loop1
|
|
||||||
|
|
||||||
loop1:
|
|
||||||
%iv1 = phi i32 [ 0, %entry ], [ %inc1, %loop1.latch ]
|
|
||||||
%offset1 = getelementptr i32, ptr %addr1, i32 %iv1
|
|
||||||
store i32 %iv1, ptr %offset1, align 4
|
|
||||||
br label %loop2.header
|
|
||||||
|
|
||||||
loop2.header:
|
|
||||||
%e = icmp uge i32 %iter, 1
|
|
||||||
br i1 %e, label %loop2, label %exit2
|
|
||||||
|
|
||||||
loop2:
|
|
||||||
%iv2 = phi i32 [ 0, %loop2.header ], [ %inc2, %loop2 ]
|
|
||||||
%offset2 = getelementptr i32, ptr %addr2, i32 %iv2
|
|
||||||
store i32 %iv2, ptr %offset2, align 4
|
|
||||||
%inc2 = add i32 %iv2, 1
|
|
||||||
%exitcnd2 = icmp uge i32 %inc2, %iter
|
|
||||||
br i1 %exitcnd2, label %exit2, label %loop2
|
|
||||||
|
|
||||||
exit2:
|
|
||||||
br label %loop1.latch
|
|
||||||
|
|
||||||
loop1.latch:
|
|
||||||
%inc1 = add i32 %iv1, 1
|
|
||||||
%exitcnd1 = icmp uge i32 %inc1, 1024
|
|
||||||
br i1 %exitcnd1, label %exit, label %loop1
|
|
||||||
|
|
||||||
exit:
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
; RUN: opt < %s -S -passes="default<O2>" -unroll-runtime=true -enable-unroll-and-jam -unroll-threshold-default=0 -unroll-threshold-aggressive=300 | FileCheck %s -check-prefix=O2
|
|
||||||
; RUN: opt < %s -S -passes="default<O3>" -unroll-runtime=true -enable-unroll-and-jam -unroll-threshold-default=0 -unroll-threshold-aggressive=300 | FileCheck %s -check-prefix=O3
|
|
||||||
; RUN: opt < %s -S -passes="default<Os>" -unroll-runtime=true -enable-unroll-and-jam -unroll-threshold-default=0 -unroll-threshold-aggressive=300 | FileCheck %s -check-prefix=Os
|
|
||||||
; RUN: opt < %s -S -passes="default<Oz>" -unroll-runtime=true -enable-unroll-and-jam -unroll-threshold-default=0 -unroll-threshold-aggressive=300 | FileCheck %s -check-prefix=Oz
|
|
||||||
|
|
||||||
; Check that Os and Oz are optimized like O2, not like O3. To easily highlight
|
|
||||||
; the behavior, we artificially disable unrolling for anything but O3 by setting
|
|
||||||
; the default threshold to 0.
|
|
||||||
|
|
||||||
; O3: for.inner.1
|
|
||||||
; O2-NOT: for.inner.1
|
|
||||||
; Os-NOT: for.inner.1
|
|
||||||
; Oz-NOT: for.inner.1
|
|
||||||
|
|
||||||
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
||||||
|
|
||||||
define void @test1(i32 %I, i32 %J, ptr noalias nocapture %A, ptr noalias nocapture readonly %B) #0 {
|
|
||||||
entry:
|
|
||||||
%cmp = icmp ne i32 %J, 0
|
|
||||||
%cmpJ = icmp ne i32 %I, 0
|
|
||||||
%or.cond = and i1 %cmp, %cmpJ
|
|
||||||
br i1 %or.cond, label %for.outer.preheader, label %for.end
|
|
||||||
|
|
||||||
for.outer.preheader:
|
|
||||||
br label %for.outer
|
|
||||||
|
|
||||||
for.outer:
|
|
||||||
%i = phi i32 [ %add8, %for.latch ], [ 0, %for.outer.preheader ]
|
|
||||||
br label %for.inner
|
|
||||||
|
|
||||||
for.inner:
|
|
||||||
%j = phi i32 [ 0, %for.outer ], [ %inc, %for.inner ]
|
|
||||||
%sum = phi i32 [ 0, %for.outer ], [ %add, %for.inner ]
|
|
||||||
%arrayidx = getelementptr inbounds i32, ptr %B, i32 %j
|
|
||||||
%0 = load i32, ptr %arrayidx, align 4, !tbaa !5
|
|
||||||
%add = add i32 %0, %sum
|
|
||||||
%inc = add nuw i32 %j, 1
|
|
||||||
%exitcond = icmp eq i32 %inc, %J
|
|
||||||
br i1 %exitcond, label %for.latch, label %for.inner
|
|
||||||
|
|
||||||
for.latch:
|
|
||||||
%add.lcssa = phi i32 [ %add, %for.inner ]
|
|
||||||
%arrayidx6 = getelementptr inbounds i32, ptr %A, i32 %i
|
|
||||||
store i32 %add.lcssa, ptr %arrayidx6, align 4, !tbaa !5
|
|
||||||
%add8 = add nuw i32 %i, 1
|
|
||||||
%exitcond25 = icmp eq i32 %add8, %I
|
|
||||||
br i1 %exitcond25, label %for.end.loopexit, label %for.outer
|
|
||||||
|
|
||||||
for.end.loopexit:
|
|
||||||
br label %for.end
|
|
||||||
|
|
||||||
for.end:
|
|
||||||
ret void
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
!5 = !{!6, !6, i64 0}
|
|
||||||
!6 = !{!"int", !7, i64 0}
|
|
||||||
!7 = !{!"omnipotent char", !8, i64 0}
|
|
||||||
!8 = !{!"Simple C/C++ TBAA"}
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals none --version 6
|
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals none --version 6
|
||||||
; RUN: opt -passes='default<Oz>' -S < %s | FileCheck %s
|
; RUN: opt -passes='default<O2>' -S < %s | FileCheck %s
|
||||||
|
|
||||||
; Forcing vectorization should allow for more aggressive loop-rotation with
|
; Forcing vectorization should allow for more aggressive loop-rotation with
|
||||||
; -Oz, because LV requires rotated loops. Make sure the loop in @foo is
|
; -Oz, because LV requires rotated loops. Make sure the loop in @foo is
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
; RUN: opt < %s -mcpu=corei7 -passes="default<O2>" -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=O2
|
; RUN: opt < %s -mcpu=corei7 -passes="default<O2>" -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=O2
|
||||||
; RUN: opt < %s -mcpu=corei7 -passes="default<O3>" -S -unroll-threshold=150 -unroll-allow-partial=0 | FileCheck %s --check-prefix=O3
|
; RUN: opt < %s -mcpu=corei7 -passes="default<O3>" -S -unroll-threshold=150 -unroll-allow-partial=0 | FileCheck %s --check-prefix=O3
|
||||||
; RUN: opt < %s -mcpu=corei7 -passes="default<O3>" -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=O3DEFAULT
|
; RUN: opt < %s -mcpu=corei7 -passes="default<O3>" -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=O3DEFAULT
|
||||||
; RUN: opt < %s -mcpu=corei7 -passes="default<Os>" -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=Os
|
; RUN: opt < %s -mcpu=corei7 -passes="default<O2>" -force-attribute=optsize -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=Os
|
||||||
; RUN: opt < %s -mcpu=corei7 -passes="default<Oz>" -force-attribute=minsize -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=Oz
|
; RUN: opt < %s -mcpu=corei7 -passes="default<O2>" -force-attribute=minsize -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=Oz
|
||||||
; RUN: opt < %s -mcpu=corei7 -passes="default<O1>,loop-vectorize" -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=O1VEC2
|
; RUN: opt < %s -mcpu=corei7 -passes="default<O1>,loop-vectorize" -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=O1VEC2
|
||||||
; RUN: opt < %s -mcpu=corei7 -passes="default<O3>" -unroll-threshold=150 -vectorize-loops=false -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=O3DIS
|
; RUN: opt < %s -mcpu=corei7 -passes="default<O3>" -unroll-threshold=150 -vectorize-loops=false -S -unroll-allow-partial=0 | FileCheck %s --check-prefix=O3DIS
|
||||||
|
|
||||||
@@ -360,84 +360,18 @@ define i32 @enabled(ptr noalias nocapture %a, ptr noalias nocapture readonly %b,
|
|||||||
; Os-NEXT: entry:
|
; Os-NEXT: entry:
|
||||||
; Os-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <4 x i32> poison, i32 [[N:%.*]], i64 0
|
; Os-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <4 x i32> poison, i32 [[N:%.*]], i64 0
|
||||||
; Os-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <4 x i32> [[BROADCAST_SPLATINSERT]], <4 x i32> poison, <4 x i32> zeroinitializer
|
; Os-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <4 x i32> [[BROADCAST_SPLATINSERT]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||||
; Os-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw i8, ptr [[B:%.*]], i64 16
|
; Os-NEXT: br label [[VECTOR_BODY:%.*]]
|
||||||
; Os-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i32>, ptr [[B]], align 4
|
; Os: vector.body:
|
||||||
; Os-NEXT: [[WIDE_LOAD1:%.*]] = load <4 x i32>, ptr [[TMP0]], align 4
|
; Os-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
|
||||||
; Os-NEXT: [[TMP1:%.*]] = add nsw <4 x i32> [[WIDE_LOAD]], [[BROADCAST_SPLAT]]
|
; Os-NEXT: [[TMP41:%.*]] = getelementptr inbounds nuw [4 x i8], ptr [[B:%.*]], i64 [[INDEX]]
|
||||||
; Os-NEXT: [[TMP2:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP3:%.*]] = getelementptr inbounds nuw i8, ptr [[A:%.*]], i64 16
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP1]], ptr [[A]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP2]], ptr [[TMP3]], align 4
|
|
||||||
; Os-NEXT: [[TMP4:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 32
|
|
||||||
; Os-NEXT: [[TMP5:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 48
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_1:%.*]] = load <4 x i32>, ptr [[TMP4]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_1:%.*]] = load <4 x i32>, ptr [[TMP5]], align 4
|
|
||||||
; Os-NEXT: [[TMP6:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_1]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP7:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_1]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP8:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 32
|
|
||||||
; Os-NEXT: [[TMP9:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 48
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP6]], ptr [[TMP8]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP7]], ptr [[TMP9]], align 4
|
|
||||||
; Os-NEXT: [[TMP10:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 64
|
|
||||||
; Os-NEXT: [[TMP11:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 80
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_2:%.*]] = load <4 x i32>, ptr [[TMP10]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_2:%.*]] = load <4 x i32>, ptr [[TMP11]], align 4
|
|
||||||
; Os-NEXT: [[TMP12:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_2]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP13:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_2]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP14:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 64
|
|
||||||
; Os-NEXT: [[TMP15:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 80
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP12]], ptr [[TMP14]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP13]], ptr [[TMP15]], align 4
|
|
||||||
; Os-NEXT: [[TMP16:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 96
|
|
||||||
; Os-NEXT: [[TMP17:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 112
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_3:%.*]] = load <4 x i32>, ptr [[TMP16]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_3:%.*]] = load <4 x i32>, ptr [[TMP17]], align 4
|
|
||||||
; Os-NEXT: [[TMP18:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_3]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP19:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_3]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP20:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 96
|
|
||||||
; Os-NEXT: [[TMP21:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 112
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP18]], ptr [[TMP20]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP19]], ptr [[TMP21]], align 4
|
|
||||||
; Os-NEXT: [[TMP22:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 128
|
|
||||||
; Os-NEXT: [[TMP23:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 144
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_4:%.*]] = load <4 x i32>, ptr [[TMP22]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_4:%.*]] = load <4 x i32>, ptr [[TMP23]], align 4
|
|
||||||
; Os-NEXT: [[TMP24:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_4]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP25:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_4]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP26:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 128
|
|
||||||
; Os-NEXT: [[TMP27:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 144
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP24]], ptr [[TMP26]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP25]], ptr [[TMP27]], align 4
|
|
||||||
; Os-NEXT: [[TMP28:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 160
|
|
||||||
; Os-NEXT: [[TMP29:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 176
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_5:%.*]] = load <4 x i32>, ptr [[TMP28]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_5:%.*]] = load <4 x i32>, ptr [[TMP29]], align 4
|
|
||||||
; Os-NEXT: [[TMP30:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_5]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP31:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_5]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP32:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 160
|
|
||||||
; Os-NEXT: [[TMP33:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 176
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP30]], ptr [[TMP32]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP31]], ptr [[TMP33]], align 4
|
|
||||||
; Os-NEXT: [[TMP34:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 192
|
|
||||||
; Os-NEXT: [[TMP35:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 208
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_6:%.*]] = load <4 x i32>, ptr [[TMP34]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_6:%.*]] = load <4 x i32>, ptr [[TMP35]], align 4
|
|
||||||
; Os-NEXT: [[TMP36:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_6]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP37:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_6]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP38:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 192
|
|
||||||
; Os-NEXT: [[TMP39:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 208
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP36]], ptr [[TMP38]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP37]], ptr [[TMP39]], align 4
|
|
||||||
; Os-NEXT: [[TMP40:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 224
|
|
||||||
; Os-NEXT: [[TMP41:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 240
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_7:%.*]] = load <4 x i32>, ptr [[TMP40]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_7:%.*]] = load <4 x i32>, ptr [[TMP41]], align 4
|
; Os-NEXT: [[WIDE_LOAD1_7:%.*]] = load <4 x i32>, ptr [[TMP41]], align 4
|
||||||
; Os-NEXT: [[TMP42:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_7]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP43:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_7]], [[BROADCAST_SPLAT]]
|
; Os-NEXT: [[TMP43:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_7]], [[BROADCAST_SPLAT]]
|
||||||
; Os-NEXT: [[TMP44:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 224
|
; Os-NEXT: [[TMP45:%.*]] = getelementptr inbounds nuw [4 x i8], ptr [[A:%.*]], i64 [[INDEX]]
|
||||||
; Os-NEXT: [[TMP45:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 240
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP42]], ptr [[TMP44]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP43]], ptr [[TMP45]], align 4
|
; Os-NEXT: store <4 x i32> [[TMP43]], ptr [[TMP45]], align 4
|
||||||
|
; Os-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 4
|
||||||
|
; Os-NEXT: [[TMP3:%.*]] = icmp eq i64 [[INDEX_NEXT]], 64
|
||||||
|
; Os-NEXT: br i1 [[TMP3]], label [[FOR_END:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
|
||||||
|
; Os: for.end:
|
||||||
; Os-NEXT: [[TMP46:%.*]] = load i32, ptr [[A]], align 4
|
; Os-NEXT: [[TMP46:%.*]] = load i32, ptr [[A]], align 4
|
||||||
; Os-NEXT: ret i32 [[TMP46]]
|
; Os-NEXT: ret i32 [[TMP46]]
|
||||||
;
|
;
|
||||||
@@ -926,84 +860,18 @@ define i32 @nopragma(ptr noalias nocapture %a, ptr noalias nocapture readonly %b
|
|||||||
; Os-NEXT: entry:
|
; Os-NEXT: entry:
|
||||||
; Os-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <4 x i32> poison, i32 [[N:%.*]], i64 0
|
; Os-NEXT: [[BROADCAST_SPLATINSERT:%.*]] = insertelement <4 x i32> poison, i32 [[N:%.*]], i64 0
|
||||||
; Os-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <4 x i32> [[BROADCAST_SPLATINSERT]], <4 x i32> poison, <4 x i32> zeroinitializer
|
; Os-NEXT: [[BROADCAST_SPLAT:%.*]] = shufflevector <4 x i32> [[BROADCAST_SPLATINSERT]], <4 x i32> poison, <4 x i32> zeroinitializer
|
||||||
; Os-NEXT: [[TMP0:%.*]] = getelementptr inbounds nuw i8, ptr [[B:%.*]], i64 16
|
; Os-NEXT: br label [[VECTOR_BODY:%.*]]
|
||||||
; Os-NEXT: [[WIDE_LOAD:%.*]] = load <4 x i32>, ptr [[B]], align 4
|
; Os: vector.body:
|
||||||
; Os-NEXT: [[WIDE_LOAD1:%.*]] = load <4 x i32>, ptr [[TMP0]], align 4
|
; Os-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[ENTRY:%.*]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
|
||||||
; Os-NEXT: [[TMP1:%.*]] = add nsw <4 x i32> [[WIDE_LOAD]], [[BROADCAST_SPLAT]]
|
; Os-NEXT: [[TMP41:%.*]] = getelementptr inbounds nuw [4 x i8], ptr [[B:%.*]], i64 [[INDEX]]
|
||||||
; Os-NEXT: [[TMP2:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP3:%.*]] = getelementptr inbounds nuw i8, ptr [[A:%.*]], i64 16
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP1]], ptr [[A]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP2]], ptr [[TMP3]], align 4
|
|
||||||
; Os-NEXT: [[TMP4:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 32
|
|
||||||
; Os-NEXT: [[TMP5:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 48
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_1:%.*]] = load <4 x i32>, ptr [[TMP4]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_1:%.*]] = load <4 x i32>, ptr [[TMP5]], align 4
|
|
||||||
; Os-NEXT: [[TMP6:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_1]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP7:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_1]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP8:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 32
|
|
||||||
; Os-NEXT: [[TMP9:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 48
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP6]], ptr [[TMP8]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP7]], ptr [[TMP9]], align 4
|
|
||||||
; Os-NEXT: [[TMP10:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 64
|
|
||||||
; Os-NEXT: [[TMP11:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 80
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_2:%.*]] = load <4 x i32>, ptr [[TMP10]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_2:%.*]] = load <4 x i32>, ptr [[TMP11]], align 4
|
|
||||||
; Os-NEXT: [[TMP12:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_2]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP13:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_2]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP14:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 64
|
|
||||||
; Os-NEXT: [[TMP15:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 80
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP12]], ptr [[TMP14]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP13]], ptr [[TMP15]], align 4
|
|
||||||
; Os-NEXT: [[TMP16:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 96
|
|
||||||
; Os-NEXT: [[TMP17:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 112
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_3:%.*]] = load <4 x i32>, ptr [[TMP16]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_3:%.*]] = load <4 x i32>, ptr [[TMP17]], align 4
|
|
||||||
; Os-NEXT: [[TMP18:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_3]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP19:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_3]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP20:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 96
|
|
||||||
; Os-NEXT: [[TMP21:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 112
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP18]], ptr [[TMP20]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP19]], ptr [[TMP21]], align 4
|
|
||||||
; Os-NEXT: [[TMP22:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 128
|
|
||||||
; Os-NEXT: [[TMP23:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 144
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_4:%.*]] = load <4 x i32>, ptr [[TMP22]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_4:%.*]] = load <4 x i32>, ptr [[TMP23]], align 4
|
|
||||||
; Os-NEXT: [[TMP24:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_4]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP25:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_4]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP26:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 128
|
|
||||||
; Os-NEXT: [[TMP27:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 144
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP24]], ptr [[TMP26]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP25]], ptr [[TMP27]], align 4
|
|
||||||
; Os-NEXT: [[TMP28:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 160
|
|
||||||
; Os-NEXT: [[TMP29:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 176
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_5:%.*]] = load <4 x i32>, ptr [[TMP28]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_5:%.*]] = load <4 x i32>, ptr [[TMP29]], align 4
|
|
||||||
; Os-NEXT: [[TMP30:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_5]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP31:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_5]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP32:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 160
|
|
||||||
; Os-NEXT: [[TMP33:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 176
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP30]], ptr [[TMP32]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP31]], ptr [[TMP33]], align 4
|
|
||||||
; Os-NEXT: [[TMP34:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 192
|
|
||||||
; Os-NEXT: [[TMP35:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 208
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_6:%.*]] = load <4 x i32>, ptr [[TMP34]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_6:%.*]] = load <4 x i32>, ptr [[TMP35]], align 4
|
|
||||||
; Os-NEXT: [[TMP36:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_6]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP37:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_6]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP38:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 192
|
|
||||||
; Os-NEXT: [[TMP39:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 208
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP36]], ptr [[TMP38]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP37]], ptr [[TMP39]], align 4
|
|
||||||
; Os-NEXT: [[TMP40:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 224
|
|
||||||
; Os-NEXT: [[TMP41:%.*]] = getelementptr inbounds nuw i8, ptr [[B]], i64 240
|
|
||||||
; Os-NEXT: [[WIDE_LOAD_7:%.*]] = load <4 x i32>, ptr [[TMP40]], align 4
|
|
||||||
; Os-NEXT: [[WIDE_LOAD1_7:%.*]] = load <4 x i32>, ptr [[TMP41]], align 4
|
; Os-NEXT: [[WIDE_LOAD1_7:%.*]] = load <4 x i32>, ptr [[TMP41]], align 4
|
||||||
; Os-NEXT: [[TMP42:%.*]] = add nsw <4 x i32> [[WIDE_LOAD_7]], [[BROADCAST_SPLAT]]
|
|
||||||
; Os-NEXT: [[TMP43:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_7]], [[BROADCAST_SPLAT]]
|
; Os-NEXT: [[TMP43:%.*]] = add nsw <4 x i32> [[WIDE_LOAD1_7]], [[BROADCAST_SPLAT]]
|
||||||
; Os-NEXT: [[TMP44:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 224
|
; Os-NEXT: [[TMP45:%.*]] = getelementptr inbounds nuw [4 x i8], ptr [[A:%.*]], i64 [[INDEX]]
|
||||||
; Os-NEXT: [[TMP45:%.*]] = getelementptr inbounds nuw i8, ptr [[A]], i64 240
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP42]], ptr [[TMP44]], align 4
|
|
||||||
; Os-NEXT: store <4 x i32> [[TMP43]], ptr [[TMP45]], align 4
|
; Os-NEXT: store <4 x i32> [[TMP43]], ptr [[TMP45]], align 4
|
||||||
|
; Os-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 4
|
||||||
|
; Os-NEXT: [[TMP3:%.*]] = icmp eq i64 [[INDEX_NEXT]], 64
|
||||||
|
; Os-NEXT: br i1 [[TMP3]], label [[FOR_END:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP3:![0-9]+]]
|
||||||
|
; Os: for.end:
|
||||||
; Os-NEXT: [[TMP46:%.*]] = load i32, ptr [[A]], align 4
|
; Os-NEXT: [[TMP46:%.*]] = load i32, ptr [[A]], align 4
|
||||||
; Os-NEXT: ret i32 [[TMP46]]
|
; Os-NEXT: ret i32 [[TMP46]]
|
||||||
;
|
;
|
||||||
@@ -1219,7 +1087,7 @@ define i32 @disabled(ptr noalias nocapture %a, ptr noalias nocapture readonly %b
|
|||||||
; Os-NEXT: store i32 [[ADD]], ptr [[ARRAYIDX2]], align 4
|
; Os-NEXT: store i32 [[ADD]], ptr [[ARRAYIDX2]], align 4
|
||||||
; Os-NEXT: [[INDVARS_IV_NEXT]] = add nuw nsw i64 [[INDVARS_IV]], 1
|
; Os-NEXT: [[INDVARS_IV_NEXT]] = add nuw nsw i64 [[INDVARS_IV]], 1
|
||||||
; Os-NEXT: [[EXITCOND:%.*]] = icmp eq i64 [[INDVARS_IV_NEXT]], 48
|
; Os-NEXT: [[EXITCOND:%.*]] = icmp eq i64 [[INDVARS_IV_NEXT]], 48
|
||||||
; Os-NEXT: br i1 [[EXITCOND]], label [[FOR_END:%.*]], label [[FOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
|
; Os-NEXT: br i1 [[EXITCOND]], label [[FOR_END:%.*]], label [[FOR_BODY]], !llvm.loop [[LOOP4:![0-9]+]]
|
||||||
; Os: for.end:
|
; Os: for.end:
|
||||||
; Os-NEXT: [[TMP1:%.*]] = load i32, ptr [[A]], align 4
|
; Os-NEXT: [[TMP1:%.*]] = load i32, ptr [[A]], align 4
|
||||||
; Os-NEXT: ret i32 [[TMP1]]
|
; Os-NEXT: ret i32 [[TMP1]]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
|
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5
|
||||||
; RUN: opt --Os -S %s -o - | FileCheck %s
|
; RUN: opt -O2 -S %s -o - | FileCheck %s
|
||||||
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128-Fn32"
|
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128-Fn32"
|
||||||
target triple = "arm64e-apple-ios19.0.0"
|
target triple = "arm64e-apple-ios19.0.0"
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||||
; RUN: opt -passes='default<O1>' -S < %s | FileCheck %s --check-prefixes=CHECK,O1
|
; RUN: opt -passes='default<O1>' -S < %s | FileCheck %s --check-prefixes=CHECK,O1
|
||||||
; RUN: opt -passes='default<Oz>' -S < %s | FileCheck %s --check-prefixes=CHECK,OZ
|
; RUN: opt -passes='default<O2>' -S < %s | FileCheck %s --check-prefixes=CHECK,O2
|
||||||
|
|
||||||
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||||||
|
|
||||||
@@ -121,18 +121,18 @@ define i32 @PR56119(i32 %e.coerce) {
|
|||||||
; O1-NEXT: [[TMP0:%.*]] = load i32, ptr @c, align 4
|
; O1-NEXT: [[TMP0:%.*]] = load i32, ptr @c, align 4
|
||||||
; O1-NEXT: ret i32 [[TMP0]]
|
; O1-NEXT: ret i32 [[TMP0]]
|
||||||
;
|
;
|
||||||
; OZ-LABEL: @PR56119(
|
; O2-LABEL: @PR56119(
|
||||||
; OZ-NEXT: entry:
|
; O2-NEXT: entry:
|
||||||
; OZ-NEXT: [[E_COERCE_FR:%.*]] = freeze i32 [[E_COERCE:%.*]]
|
; O2-NEXT: [[E_COERCE_FR:%.*]] = freeze i32 [[E_COERCE:%.*]]
|
||||||
; OZ-NEXT: [[CONV2:%.*]] = and i32 [[E_COERCE_FR]], 255
|
; O2-NEXT: [[CONV2:%.*]] = and i32 [[E_COERCE_FR]], 255
|
||||||
; OZ-NEXT: [[CMP1:%.*]] = icmp eq i32 [[CONV2]], 7
|
; O2-NEXT: [[CMP1:%.*]] = icmp eq i32 [[CONV2]], 7
|
||||||
; OZ-NEXT: br i1 [[CMP1]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
|
; O2-NEXT: br i1 [[CMP1]], label [[IF_THEN:%.*]], label [[IF_END:%.*]]
|
||||||
; OZ: if.then:
|
; O2: if.then:
|
||||||
; OZ-NEXT: tail call void (...) @foo()
|
; O2-NEXT: tail call void (...) @foo()
|
||||||
; OZ-NEXT: br label [[IF_END]]
|
; O2-NEXT: br label [[IF_END]]
|
||||||
; OZ: if.end:
|
; O2: if.end:
|
||||||
; OZ-NEXT: [[TMP0:%.*]] = load i32, ptr @c, align 4
|
; O2-NEXT: [[TMP0:%.*]] = load i32, ptr @c, align 4
|
||||||
; OZ-NEXT: ret i32 [[TMP0]]
|
; O2-NEXT: ret i32 [[TMP0]]
|
||||||
;
|
;
|
||||||
entry:
|
entry:
|
||||||
%e = alloca %struct.a, align 4
|
%e = alloca %struct.a, align 4
|
||||||
|
|||||||
@@ -5,8 +5,8 @@
|
|||||||
;; memset. If loop idiom recognition begins to recognize unrotated loops, this
|
;; memset. If loop idiom recognition begins to recognize unrotated loops, this
|
||||||
;; test will need to be updated.
|
;; test will need to be updated.
|
||||||
|
|
||||||
; RUN: opt -passes='default<Oz>' -S < %s | FileCheck %s --check-prefix=NOROTATION
|
; RUN: opt -passes='default<O2>' -S < %s | FileCheck %s --check-prefix=NOROTATION
|
||||||
; RUN: opt -passes='default<Oz>' -S -enable-loop-header-duplication-at-minsize < %s | FileCheck %s --check-prefix=ROTATION
|
; RUN: opt -passes='default<O2>' -S -enable-loop-header-duplication-at-minsize < %s | FileCheck %s --check-prefix=ROTATION
|
||||||
|
|
||||||
define void @test(i8* noalias nonnull align 1 %start, i8* %end) minsize {
|
define void @test(i8* noalias nonnull align 1 %start, i8* %end) minsize {
|
||||||
; NOROTATION-LABEL: define void @test(
|
; NOROTATION-LABEL: define void @test(
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
||||||
; RUN: opt -passes='default<Os>' -S %s | FileCheck %s
|
; RUN: opt -passes='default<O2>' -S %s | FileCheck %s
|
||||||
|
|
||||||
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
target datalayout = "e-m:o-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
|
||||||
|
|
||||||
|
|
||||||
declare void @use(i16)
|
declare void @use(i16)
|
||||||
|
|
||||||
define void @test_remove_check_with_incrementing_integer_induction(i16 %start, i8 %len.n, i16 %a) {
|
define void @test_remove_check_with_incrementing_integer_induction(i16 %start, i8 %len.n, i16 %a) optsize {
|
||||||
; CHECK-LABEL: @test_remove_check_with_incrementing_integer_induction(
|
; CHECK-LABEL: @test_remove_check_with_incrementing_integer_induction(
|
||||||
; CHECK-NEXT: entry:
|
; CHECK-NEXT: entry:
|
||||||
; CHECK-NEXT: [[LEN:%.*]] = zext i8 [[LEN_N:%.*]] to i16
|
; CHECK-NEXT: [[LEN:%.*]] = zext i8 [[LEN_N:%.*]] to i16
|
||||||
@@ -58,7 +58,7 @@ exit:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
define void @chained_conditions(i64 noundef %a, i64 noundef %b, i64 noundef %c, i64 noundef %d) #0 {
|
define void @chained_conditions(i64 noundef %a, i64 noundef %b, i64 noundef %c, i64 noundef %d) optsize {
|
||||||
; CHECK-LABEL: @chained_conditions(
|
; CHECK-LABEL: @chained_conditions(
|
||||||
; CHECK-NEXT: entry:
|
; CHECK-NEXT: entry:
|
||||||
; CHECK-NEXT: ret void
|
; CHECK-NEXT: ret void
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
; RUN: opt < %s -S -passes="default<O1>" | FileCheck %s -check-prefixes=TRIVIAL,CHECK
|
; RUN: opt < %s -S -passes="default<O1>" | FileCheck %s -check-prefixes=TRIVIAL,CHECK
|
||||||
; RUN: opt < %s -S -passes="default<O2>" | FileCheck %s -check-prefixes=TRIVIAL,CHECK
|
; RUN: opt < %s -S -passes="default<O2>" | FileCheck %s -check-prefixes=TRIVIAL,CHECK
|
||||||
; RUN: opt < %s -S -passes="default<O3>" | FileCheck %s -check-prefixes=NONTRIVIAL,CHECK
|
; RUN: opt < %s -S -passes="default<O3>" | FileCheck %s -check-prefixes=NONTRIVIAL,CHECK
|
||||||
; RUN: opt < %s -S -passes="default<Os>" | FileCheck %s -check-prefixes=TRIVIAL,CHECK
|
|
||||||
; RUN: opt < %s -S -passes="default<Oz>" | FileCheck %s -check-prefixes=TRIVIAL,CHECK
|
|
||||||
|
|
||||||
declare i32 @a()
|
declare i32 @a()
|
||||||
declare i32 @b()
|
declare i32 @b()
|
||||||
|
|||||||
@@ -34,17 +34,8 @@ static std::optional<OptimizationLevel> mapToLevel(unsigned optLevel,
|
|||||||
return OptimizationLevel::O1;
|
return OptimizationLevel::O1;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
switch (sizeLevel) {
|
return OptimizationLevel::O2;
|
||||||
case 0:
|
|
||||||
return OptimizationLevel::O2;
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
return OptimizationLevel::Os;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
return OptimizationLevel::Oz;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3:
|
case 3:
|
||||||
return OptimizationLevel::O3;
|
return OptimizationLevel::O3;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,6 @@
|
|||||||
; RUN: opt %loadNPMPolly -polly -O1 -S < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ON
|
; RUN: opt %loadNPMPolly -polly -O1 -S < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ON
|
||||||
; RUN: opt %loadNPMPolly -polly -O2 -S < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ON
|
; RUN: opt %loadNPMPolly -polly -O2 -S < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ON
|
||||||
; RUN: opt %loadNPMPolly -polly -O3 -S < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ON
|
; RUN: opt %loadNPMPolly -polly -O3 -S < %s | FileCheck %s --check-prefix=CHECK --check-prefix=ON
|
||||||
; RUN: opt %loadNPMPolly -polly -Os -S < %s | FileCheck %s --check-prefix=CHECK --check-prefix=OFF
|
|
||||||
; RUN: opt %loadNPMPolly -polly -Oz -S < %s | FileCheck %s --check-prefix=CHECK --check-prefix=OFF
|
|
||||||
;
|
;
|
||||||
; Check that Polly's default pipeline works from detection to code generation
|
; Check that Polly's default pipeline works from detection to code generation
|
||||||
; with either pass manager.
|
; with either pass manager.
|
||||||
|
|||||||
Reference in New Issue
Block a user