1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00

[NewPM] Cleanup IR printing instrumentation

Being lazy with printing the banner seems hard to reason with, we should print it
unconditionally first (it could also lead to duplicate banners if we
have multiple functions in -filter-print-funcs).

The printIR() functions were doing too many things. I separated out the
call from PrintPassInstrumentation since we were essentially doing two
completely separate things in printIR() from different callers.

There were multiple ways to generate the name of some IR. That's all
been moved to getIRName(). The printing of the IR name was also
inconsistent, now it's always "IR Dump on $foo" where "$foo" is the
name. For a function, it's the function name. For a loop, it's what's
printed by Loop::print(), which is more detailed. For an SCC, it's the
list of functions in parentheses. For a module it's "[module]", to
differentiate between a possible SCC with a function called "module".

To preserve D74814, we have to check if we're going to print anything at
all first. This is unfortunate, but I would consider this a special
case that shouldn't be handled in the core logic.

Reviewed By: jamieschmeiser

Differential Revision: https://reviews.llvm.org/D100231
This commit is contained in:
Arthur Eubanks 2021-04-14 14:52:50 -07:00
parent f964e041e4
commit 2a2896669d
15 changed files with 458 additions and 484 deletions

View File

@ -479,7 +479,8 @@ public:
bool isAnnotatedParallel() const { return false; }
/// Print loop with all the BBs inside it.
void print(raw_ostream &OS, unsigned Depth = 0, bool Verbose = false) const;
void print(raw_ostream &OS, bool Verbose = false, bool PrintNested = true,
unsigned Depth = 0) const;
protected:
friend class LoopInfoBase<BlockT, LoopT>;

View File

@ -381,8 +381,8 @@ void LoopBase<BlockT, LoopT>::verifyLoopNest(
}
template <class BlockT, class LoopT>
void LoopBase<BlockT, LoopT>::print(raw_ostream &OS, unsigned Depth,
bool Verbose) const {
void LoopBase<BlockT, LoopT>::print(raw_ostream &OS, bool Verbose,
bool PrintNested, unsigned Depth) const {
OS.indent(Depth * 2);
if (static_cast<const LoopT *>(this)->isAnnotatedParallel())
OS << "Parallel ";
@ -407,10 +407,13 @@ void LoopBase<BlockT, LoopT>::print(raw_ostream &OS, unsigned Depth,
if (Verbose)
BB->print(OS);
}
OS << "\n";
for (iterator I = begin(), E = end(); I != E; ++I)
(*I)->print(OS, Depth + 2);
if (PrintNested) {
OS << "\n";
for (iterator I = begin(), E = end(); I != E; ++I)
(*I)->print(OS, /*Verbose*/ false, PrintNested, Depth + 2);
}
}
//===----------------------------------------------------------------------===//

View File

@ -662,7 +662,7 @@ Loop::LocRange Loop::getLocRange() const {
LLVM_DUMP_METHOD void Loop::dump() const { print(dbgs()); }
LLVM_DUMP_METHOD void Loop::dumpVerbose() const {
print(dbgs(), /*Depth=*/0, /*Verbose=*/true);
print(dbgs(), /*Verbose=*/true);
}
#endif

View File

@ -193,20 +193,18 @@ std::string doSystemDiff(StringRef Before, StringRef After,
return Diff;
}
/// Extracting Module out of \p IR unit. Also fills a textual description
/// of \p IR for use in header when printing.
Optional<std::pair<const Module *, std::string>>
unwrapModule(Any IR, bool Force = false) {
/// Extract Module out of \p IR unit. May return nullptr if \p IR does not match
/// certain global filters. Will never return nullptr if \p Force is true.
const Module *unwrapModule(Any IR, bool Force = false) {
if (any_isa<const Module *>(IR))
return std::make_pair(any_cast<const Module *>(IR), std::string());
return any_cast<const Module *>(IR);
if (any_isa<const Function *>(IR)) {
const Function *F = any_cast<const Function *>(IR);
if (!Force && !isFunctionInPrintList(F->getName()))
return None;
return nullptr;
const Module *M = F->getParent();
return std::make_pair(M, formatv(" (function: {0})", F->getName()).str());
return F->getParent();
}
if (any_isa<const LazyCallGraph::SCC *>(IR)) {
@ -214,130 +212,156 @@ unwrapModule(Any IR, bool Force = false) {
for (const LazyCallGraph::Node &N : *C) {
const Function &F = N.getFunction();
if (Force || (!F.isDeclaration() && isFunctionInPrintList(F.getName()))) {
const Module *M = F.getParent();
return std::make_pair(M, formatv(" (scc: {0})", C->getName()).str());
return F.getParent();
}
}
assert(!Force && "Expected to have made a pair when forced.");
return None;
assert(!Force && "Expected a module");
return nullptr;
}
if (any_isa<const Loop *>(IR)) {
const Loop *L = any_cast<const Loop *>(IR);
const Function *F = L->getHeader()->getParent();
if (!Force && !isFunctionInPrintList(F->getName()))
return None;
const Module *M = F->getParent();
std::string LoopName;
raw_string_ostream ss(LoopName);
L->getHeader()->printAsOperand(ss, false);
return std::make_pair(M, formatv(" (loop: {0})", ss.str()).str());
return nullptr;
return F->getParent();
}
llvm_unreachable("Unknown IR unit");
}
void printIR(raw_ostream &OS, const Function *F, StringRef Banner,
StringRef Extra = StringRef(), bool Brief = false) {
if (Brief) {
OS << F->getName() << '\n';
return;
}
void printIR(raw_ostream &OS, const Function *F) {
if (!isFunctionInPrintList(F->getName()))
return;
OS << Banner << Extra << "\n" << static_cast<const Value &>(*F);
OS << *F;
}
void printIR(raw_ostream &OS, const Module *M, StringRef Banner,
StringRef Extra = StringRef(), bool Brief = false,
void printIR(raw_ostream &OS, const Module *M,
bool ShouldPreserveUseListOrder = false) {
if (Brief) {
OS << M->getName() << '\n';
return;
}
if (isFunctionInPrintList("*") || forcePrintModuleIR()) {
OS << Banner << Extra << "\n";
M->print(OS, nullptr, ShouldPreserveUseListOrder);
} else {
for (const auto &F : M->functions()) {
printIR(OS, &F, Banner, Extra);
printIR(OS, &F);
}
}
}
void printIR(raw_ostream &OS, const LazyCallGraph::SCC *C, StringRef Banner,
StringRef Extra = StringRef(), bool Brief = false) {
if (Brief) {
OS << *C << '\n';
return;
}
bool BannerPrinted = false;
void printIR(raw_ostream &OS, const LazyCallGraph::SCC *C) {
for (const LazyCallGraph::Node &N : *C) {
const Function &F = N.getFunction();
if (!F.isDeclaration() && isFunctionInPrintList(F.getName())) {
if (!BannerPrinted) {
OS << Banner << Extra << "\n";
BannerPrinted = true;
}
F.print(OS);
}
}
}
void printIR(raw_ostream &OS, const Loop *L, StringRef Banner,
bool Brief = false) {
if (Brief) {
OS << *L;
return;
}
void printIR(raw_ostream &OS, const Loop *L) {
const Function *F = L->getHeader()->getParent();
if (!isFunctionInPrintList(F->getName()))
return;
printLoop(const_cast<Loop &>(*L), OS, std::string(Banner));
printLoop(const_cast<Loop &>(*L), OS);
}
std::string getIRName(Any IR) {
if (any_isa<const Module *>(IR))
return "[module]";
if (any_isa<const Function *>(IR)) {
const Function *F = any_cast<const Function *>(IR);
return F->getName().str();
}
if (any_isa<const LazyCallGraph::SCC *>(IR)) {
const LazyCallGraph::SCC *C = any_cast<const LazyCallGraph::SCC *>(IR);
return C->getName();
}
if (any_isa<const Loop *>(IR)) {
const Loop *L = any_cast<const Loop *>(IR);
std::string S;
raw_string_ostream OS(S);
L->print(OS, /*Verbose*/ false, /*PrintNested*/ false);
return OS.str();
}
llvm_unreachable("Unknown wrapped IR type");
}
bool moduleContainsFilterPrintFunc(const Module &M) {
return any_of(M.functions(),
[](const Function &F) {
return isFunctionInPrintList(F.getName());
}) ||
isFunctionInPrintList("*");
}
bool sccContainsFilterPrintFunc(const LazyCallGraph::SCC &C) {
return any_of(C,
[](const LazyCallGraph::Node &N) {
return isFunctionInPrintList(N.getName());
}) ||
isFunctionInPrintList("*");
}
bool shouldPrintIR(Any IR) {
if (any_isa<const Module *>(IR)) {
const Module *M = any_cast<const Module *>(IR);
return moduleContainsFilterPrintFunc(*M);
}
if (any_isa<const Function *>(IR)) {
const Function *F = any_cast<const Function *>(IR);
return isFunctionInPrintList(F->getName());
}
if (any_isa<const LazyCallGraph::SCC *>(IR)) {
const LazyCallGraph::SCC *C = any_cast<const LazyCallGraph::SCC *>(IR);
return sccContainsFilterPrintFunc(*C);
}
if (any_isa<const Loop *>(IR)) {
const Loop *L = any_cast<const Loop *>(IR);
return isFunctionInPrintList(L->getHeader()->getParent()->getName());
}
llvm_unreachable("Unknown wrapped IR type");
}
/// Generic IR-printing helper that unpacks a pointer to IRUnit wrapped into
/// llvm::Any and does actual print job.
void unwrapAndPrint(raw_ostream &OS, Any IR, StringRef Banner,
bool ForceModule = false, bool Brief = false,
void unwrapAndPrint(raw_ostream &OS, Any IR,
bool ShouldPreserveUseListOrder = false) {
if (ForceModule) {
if (auto UnwrappedModule = unwrapModule(IR))
printIR(OS, UnwrappedModule->first, Banner, UnwrappedModule->second,
Brief, ShouldPreserveUseListOrder);
if (!shouldPrintIR(IR))
return;
if (forcePrintModuleIR()) {
auto *M = unwrapModule(IR);
assert(M && "should have unwrapped module");
printIR(OS, M, ShouldPreserveUseListOrder);
return;
}
if (any_isa<const Module *>(IR)) {
const Module *M = any_cast<const Module *>(IR);
assert(M && "module should be valid for printing");
printIR(OS, M, Banner, "", Brief, ShouldPreserveUseListOrder);
printIR(OS, M, ShouldPreserveUseListOrder);
return;
}
if (any_isa<const Function *>(IR)) {
const Function *F = any_cast<const Function *>(IR);
assert(F && "function should be valid for printing");
printIR(OS, F, Banner, "", Brief);
printIR(OS, F);
return;
}
if (any_isa<const LazyCallGraph::SCC *>(IR)) {
const LazyCallGraph::SCC *C = any_cast<const LazyCallGraph::SCC *>(IR);
assert(C && "scc should be valid for printing");
std::string Extra = std::string(formatv(" (scc: {0})", C->getName()));
printIR(OS, C, Banner, Extra, Brief);
printIR(OS, C);
return;
}
if (any_isa<const Loop *>(IR)) {
const Loop *L = any_cast<const Loop *>(IR);
assert(L && "Loop should be valid for printing");
printIR(OS, L, Banner, Brief);
printIR(OS, L);
return;
}
llvm_unreachable("Unknown wrapped IR type");
@ -406,18 +430,8 @@ void ChangeReporter<IRUnitT>::saveIRBeforePass(Any IR, StringRef PassID) {
template <typename IRUnitT>
void ChangeReporter<IRUnitT>::handleIRAfterPass(Any IR, StringRef PassID) {
assert(!BeforeStack.empty() && "Unexpected empty stack encountered.");
std::string Name;
// unwrapModule has inconsistent handling of names for function IRs.
if (any_isa<const Function *>(IR)) {
const Function *F = any_cast<const Function *>(IR);
Name = formatv(" (function: {0})", F->getName()).str();
} else {
if (auto UM = unwrapModule(IR))
Name = UM->second;
}
if (Name == "")
Name = " (module)";
std::string Name = getIRName(IR);
if (isIgnored(PassID)) {
if (VerboseMode)
@ -485,17 +499,17 @@ template <typename IRUnitT>
void TextChangeReporter<IRUnitT>::handleInitialIR(Any IR) {
// Always print the module.
// Unwrap and print directly to avoid filtering problems in general routines.
auto UnwrappedModule = unwrapModule(IR, /*Force=*/true);
assert(UnwrappedModule && "Expected module to be unwrapped when forced.");
Out << "*** IR Dump At Start: ***" << UnwrappedModule->second << "\n";
UnwrappedModule->first->print(Out, nullptr,
/*ShouldPreserveUseListOrder=*/true);
auto *M = unwrapModule(IR, /*Force=*/true);
assert(M && "Expected module to be unwrapped when forced.");
Out << "*** IR Dump At Start ***\n";
M->print(Out, nullptr,
/*ShouldPreserveUseListOrder=*/true);
}
template <typename IRUnitT>
void TextChangeReporter<IRUnitT>::omitAfter(StringRef PassID,
std::string &Name) {
Out << formatv("*** IR Dump After {0}{1} omitted because no change ***\n",
Out << formatv("*** IR Dump After {0} on {1} omitted because no change ***\n",
PassID, Name);
}
@ -508,14 +522,14 @@ template <typename IRUnitT>
void TextChangeReporter<IRUnitT>::handleFiltered(StringRef PassID,
std::string &Name) {
SmallString<20> Banner =
formatv("*** IR Dump After {0}{1} filtered out ***\n", PassID, Name);
formatv("*** IR Dump After {0} on {1} filtered out ***\n", PassID, Name);
Out << Banner;
}
template <typename IRUnitT>
void TextChangeReporter<IRUnitT>::handleIgnored(StringRef PassID,
std::string &Name) {
Out << formatv("*** IR Pass {0}{1} ignored ***\n", PassID, Name);
Out << formatv("*** IR Pass {0} on {1} ignored ***\n", PassID, Name);
}
IRChangedPrinter::~IRChangedPrinter() {}
@ -529,49 +543,27 @@ void IRChangedPrinter::registerCallbacks(PassInstrumentationCallbacks &PIC) {
void IRChangedPrinter::generateIRRepresentation(Any IR, StringRef PassID,
std::string &Output) {
raw_string_ostream OS(Output);
// use the after banner for all cases so it will match
SmallString<20> Banner = formatv("*** IR Dump After {0} ***", PassID);
unwrapAndPrint(OS, IR, Banner, forcePrintModuleIR(),
/*Brief=*/false, /*ShouldPreserveUseListOrder=*/true);
unwrapAndPrint(OS, IR,
/*ShouldPreserveUseListOrder=*/true);
OS.str();
}
void IRChangedPrinter::handleAfter(StringRef PassID, std::string &Name,
const std::string &Before,
const std::string &After, Any) {
// Report the IR before the changes when requested.
if (PrintChangedBefore)
Out << "*** IR Dump Before " << PassID << " on " << Name << " ***\n"
<< Before;
// We might not get anything to print if we only want to print a specific
// function but it gets deleted.
if (After.empty()) {
Out << "*** IR Deleted After " << PassID << Name << " ***\n";
Out << "*** IR Deleted After " << PassID << " on " << Name << " ***\n";
return;
}
assert(After.find("*** IR Dump") == 0 && "Unexpected banner format.");
StringRef AfterRef = After;
StringRef Banner =
AfterRef.take_until([](char C) -> bool { return C == '\n'; });
// Report the IR before the changes when requested.
if (PrintChangedBefore) {
Out << "*** IR Dump Before" << Banner.substr(17);
// LazyCallGraph::SCC already has "(scc:..." in banner so only add
// in the name if it isn't already there.
if (Name.substr(0, 6) != " (scc:" && !forcePrintModuleIR())
Out << Name;
StringRef BeforeRef = Before;
Out << BeforeRef.substr(Banner.size());
}
Out << Banner;
// LazyCallGraph::SCC already has "(scc:..." in banner so only add
// in the name if it isn't already there.
if (Name.substr(0, 6) != " (scc:" && !forcePrintModuleIR())
Out << Name;
Out << After.substr(Banner.size());
Out << "*** IR Dump After " << PassID << " on " << Name << " ***\n" << After;
}
bool IRChangedPrinter::same(const std::string &S1, const std::string &S2) {
@ -723,11 +715,8 @@ PrintIRInstrumentation::~PrintIRInstrumentation() {
void PrintIRInstrumentation::pushModuleDesc(StringRef PassID, Any IR) {
assert(StoreModuleDesc);
const Module *M = nullptr;
std::string Extra;
if (auto UnwrappedModule = unwrapModule(IR))
std::tie(M, Extra) = UnwrappedModule.getValue();
ModuleDescStack.emplace_back(M, Extra, PassID);
const Module *M = unwrapModule(IR);
ModuleDescStack.emplace_back(M, getIRName(IR), PassID);
}
PrintIRInstrumentation::PrintModuleDesc
@ -752,8 +741,12 @@ void PrintIRInstrumentation::printBeforePass(StringRef PassID, Any IR) {
if (!shouldPrintBeforePass(PassID))
return;
SmallString<20> Banner = formatv("*** IR Dump Before {0} ***", PassID);
unwrapAndPrint(dbgs(), IR, Banner, forcePrintModuleIR());
if (!shouldPrintIR(IR))
return;
dbgs() << "*** IR Dump Before " << PassID << " on " << getIRName(IR)
<< " ***\n";
unwrapAndPrint(dbgs(), IR);
}
void PrintIRInstrumentation::printAfterPass(StringRef PassID, Any IR) {
@ -763,11 +756,20 @@ void PrintIRInstrumentation::printAfterPass(StringRef PassID, Any IR) {
if (!shouldPrintAfterPass(PassID))
return;
if (StoreModuleDesc)
popModuleDesc(PassID);
if (StoreModuleDesc) {
const Module *M;
std::string IRName;
StringRef StoredPassID;
std::tie(M, IRName, StoredPassID) = popModuleDesc(PassID);
assert(StoredPassID == PassID && "mismatched PassID");
}
SmallString<20> Banner = formatv("*** IR Dump After {0} ***", PassID);
unwrapAndPrint(dbgs(), IR, Banner, forcePrintModuleIR());
if (!shouldPrintIR(IR))
return;
dbgs() << "*** IR Dump After " << PassID << " on " << getIRName(IR)
<< " ***\n";
unwrapAndPrint(dbgs(), IR);
}
void PrintIRInstrumentation::printAfterPassInvalidated(StringRef PassID) {
@ -779,17 +781,19 @@ void PrintIRInstrumentation::printAfterPassInvalidated(StringRef PassID) {
return;
const Module *M;
std::string Extra;
std::string IRName;
StringRef StoredPassID;
std::tie(M, Extra, StoredPassID) = popModuleDesc(PassID);
std::tie(M, IRName, StoredPassID) = popModuleDesc(PassID);
assert(StoredPassID == PassID && "mismatched PassID");
// Additional filtering (e.g. -filter-print-func) can lead to module
// printing being skipped.
if (!M)
return;
SmallString<20> Banner =
formatv("*** IR Dump After {0} *** invalidated: ", PassID);
printIR(dbgs(), M, Banner, Extra);
formatv("*** IR Dump After {0} on {1} (invalidated) ***", PassID, IRName);
dbgs() << Banner << "\n";
printIR(dbgs(), M);
}
bool PrintIRInstrumentation::shouldPrintBeforePass(StringRef PassID) {
@ -852,39 +856,12 @@ bool OptNoneInstrumentation::shouldRun(StringRef PassID, Any IR) {
return ShouldRun;
}
static std::string getBisectDescription(Any IR) {
if (any_isa<const Module *>(IR)) {
const Module *M = any_cast<const Module *>(IR);
assert(M && "module should be valid for printing");
return "module (" + M->getName().str() + ")";
}
if (any_isa<const Function *>(IR)) {
const Function *F = any_cast<const Function *>(IR);
assert(F && "function should be valid for printing");
return "function (" + F->getName().str() + ")";
}
if (any_isa<const LazyCallGraph::SCC *>(IR)) {
const LazyCallGraph::SCC *C = any_cast<const LazyCallGraph::SCC *>(IR);
assert(C && "scc should be valid for printing");
return "SCC " + C->getName();
}
if (any_isa<const Loop *>(IR)) {
return "loop";
}
llvm_unreachable("Unknown wrapped IR type");
}
void OptBisectInstrumentation::registerCallbacks(
PassInstrumentationCallbacks &PIC) {
if (!OptBisector->isEnabled())
return;
PIC.registerShouldRunOptionalPassCallback([](StringRef PassID, Any IR) {
return isIgnored(PassID) ||
OptBisector->checkPass(PassID, getBisectDescription(IR));
return isIgnored(PassID) || OptBisector->checkPass(PassID, getIRName(IR));
});
}
@ -902,8 +879,8 @@ void PrintPassInstrumentation::registerCallbacks(
assert(!isSpecialPass(PassID, SpecialPasses) &&
"Unexpectedly skipping special pass");
dbgs() << "Skipping pass: " << PassID << " on ";
unwrapAndPrint(dbgs(), IR, "", false, true);
dbgs() << "Skipping pass: " << PassID << " on " << getIRName(IR)
<< "\n";
});
PIC.registerBeforeNonSkippedPassCallback(
@ -911,13 +888,11 @@ void PrintPassInstrumentation::registerCallbacks(
if (isSpecialPass(PassID, SpecialPasses))
return;
dbgs() << "Running pass: " << PassID << " on ";
unwrapAndPrint(dbgs(), IR, "", false, true);
dbgs() << "Running pass: " << PassID << " on " << getIRName(IR) << "\n";
});
PIC.registerBeforeAnalysisCallback([](StringRef PassID, Any IR) {
dbgs() << "Running analysis: " << PassID << " on ";
unwrapAndPrint(dbgs(), IR, "", false, true);
dbgs() << "Running analysis: " << PassID << " on " << getIRName(IR) << "\n";
});
}
@ -1163,10 +1138,8 @@ void InLineChangePrinter::generateIRRepresentation(Any IR, StringRef PassID,
void InLineChangePrinter::handleAfter(StringRef PassID, std::string &Name,
const ChangedIRData &Before,
const ChangedIRData &After, Any IR) {
if (Name == "")
Name = " (module)";
SmallString<20> Banner =
formatv("*** IR Dump After {0} ***{1}\n", PassID, Name);
formatv("*** IR Dump After {0} on {1} ***\n", PassID, Name);
Out << Banner;
ChangedIRComparer(Out, Before, After, UseColour)
.compare(IR, "", PassID, Name);

View File

@ -171,7 +171,7 @@ protected:
static void PrintLoopinfo(const MachineLoopInfo &LoopInfo) {
for (MachineLoop::iterator iter = LoopInfo.begin(),
iterEnd = LoopInfo.end(); iter != iterEnd; ++iter) {
(*iter)->print(dbgs(), 0);
(*iter)->print(dbgs());
}
}

View File

@ -138,126 +138,126 @@ entry:
ret i32 %a
}
; CHECK-DIFF-SIMPLE: *** IR Dump At Start: ***
; CHECK-DIFF-SIMPLE: *** IR Dump At Start ***
; CHECK-DIFF-SIMPLE: ModuleID = {{.+}}
; CHECK-DIFF-SIMPLE: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-DIFF-SIMPLE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-DIFF-SIMPLE: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-DIFF-SIMPLE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-DIFF-SIMPLE-NOT: ModuleID = {{.+}}
; CHECK-DIFF-SIMPLE-NOT: *** IR{{.*}}
; CHECK-DIFF-SIMPLE: entry:
; CHECK-DIFF-SIMPLE-NEXT:- %a = add i32 2, 3
; CHECK-DIFF-SIMPLE-NEXT:- ret i32 %a
; CHECK-DIFF-SIMPLE-NEXT:+ ret i32 5
; CHECK-DIFF-SIMPLE: *** IR Pass PassManager{{.*}} (function: g) ignored ***
; CHECK-DIFF-SIMPLE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-SIMPLE: *** IR Pass PassManager{{.*}} on g ignored ***
; CHECK-DIFF-SIMPLE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-SIMPLE-NOT: ModuleID = {{.+}}
; CHECK-DIFF-SIMPLE-NOT: *** IR{{.*}}
; CHECK-DIFF-SIMPLE: entry:
; CHECK-DIFF-SIMPLE-NEXT:- %a = add i32 2, 3
; CHECK-DIFF-SIMPLE-NEXT:- ret i32 %a
; CHECK-DIFF-SIMPLE-NEXT:+ ret i32 5
; CHECK-DIFF-SIMPLE: *** IR Pass PassManager{{.*}} (function: f) ignored ***
; CHECK-DIFF-SIMPLE: *** IR Pass ModuleToFunctionPassAdaptor (module) ignored ***
; CHECK-DIFF-SIMPLE: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-DIFF-SIMPLE: *** IR Dump After PrintModulePass (module) omitted because no change ***
; CHECK-DIFF-SIMPLE: *** IR Pass PassManager{{.*}} on f ignored ***
; CHECK-DIFF-SIMPLE: *** IR Pass ModuleToFunctionPassAdaptor on [module] ignored ***
; CHECK-DIFF-SIMPLE: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-DIFF-SIMPLE: *** IR Dump After PrintModulePass on [module] omitted because no change ***
; CHECK-DIFF-FUNC-FILTER: *** IR Dump At Start: ***
; CHECK-DIFF-FUNC-FILTER: *** IR Dump At Start ***
; CHECK-DIFF-FUNC-FILTER-NEXT: ; ModuleID = {{.+}}
; CHECK-DIFF-FUNC-FILTER: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-DIFF-FUNC-FILTER: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-FUNC-FILTER: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-DIFF-FUNC-FILTER: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-FUNC-FILTER-NOT: ModuleID = {{.+}}
; CHECK-DIFF-FUNC-FILTER: entry:
; CHECK-DIFF-FUNC-FILTER:- %a = add i32 2, 3
; CHECK-DIFF-FUNC-FILTER:- ret i32 %a
; CHECK-DIFF-FUNC-FILTER:+ ret i32 5
; CHECK-DIFF-FUNC-FILTER: *** IR Pass PassManager{{.*}} (function: f) ignored ***
; CHECK-DIFF-FUNC-FILTER: *** IR Pass ModuleToFunctionPassAdaptor (module) ignored ***
; CHECK-DIFF-FUNC-FILTER: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-DIFF-FUNC-FILTER: *** IR Dump After PrintModulePass (module) omitted because no change ***
; CHECK-DIFF-FUNC-FILTER: *** IR Pass PassManager{{.*}} on f ignored ***
; CHECK-DIFF-FUNC-FILTER: *** IR Pass ModuleToFunctionPassAdaptor on [module] ignored ***
; CHECK-DIFF-FUNC-FILTER: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-DIFF-FUNC-FILTER: *** IR Dump After PrintModulePass on [module] omitted because no change ***
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Dump At Start: ***
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Dump At Start ***
; CHECK-DIFF-PRINT-MOD-SCOPE: ModuleID = {{.+}}
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-DIFF-PRINT-MOD-SCOPE-NOT: ModuleID = {{.+}}
; CHECK-DIFF-PRINT-MOD-SCOPE: entry:
; CHECK-DIFF-PRINT-MOD-SCOPE:- %a = add i32 2, 3
; CHECK-DIFF-PRINT-MOD-SCOPE:- ret i32 %a
; CHECK-DIFF-PRINT-MOD-SCOPE:+ ret i32 5
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-PRINT-MOD-SCOPE-NOT: ModuleID = {{.+}}
; CHECK-DIFF-PRINT-MOD-SCOPE: entry:
; CHECK-DIFF-PRINT-MOD-SCOPE:- %a = add i32 2, 3
; CHECK-DIFF-PRINT-MOD-SCOPE:- ret i32 %a
; CHECK-DIFF-PRINT-MOD-SCOPE:+ ret i32 5
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Pass PassManager{{.*}} (function: f) ignored ***
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Pass ModuleToFunctionPassAdaptor (module) ignored ***
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Dump After PrintModulePass (module) omitted because no change ***
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Pass PassManager{{.*}} on f ignored ***
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Pass ModuleToFunctionPassAdaptor on [module] ignored ***
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-DIFF-PRINT-MOD-SCOPE: *** IR Dump After PrintModulePass on [module] omitted because no change ***
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Dump At Start: ***
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Dump At Start ***
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass on g ***
; CHECK-DIFF-FILTER-MULT-FUNC-NOT: ModuleID = {{.+}}
; CHECK-DIFF-FILTER-MULT-FUNC: entry:
; CHECK-DIFF-FILTER-MULT-FUNC:- %a = add i32 2, 3
; CHECK-DIFF-FILTER-MULT-FUNC:- ret i32 %a
; CHECK-DIFF-FILTER-MULT-FUNC:+ ret i32 5
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-FILTER-MULT-FUNC-NOT: ModuleID = {{.+}}
; CHECK-DIFF-FILTER-MULT-FUNC: entry:
; CHECK-DIFF-FILTER-MULT-FUNC:- %a = add i32 2, 3
; CHECK-DIFF-FILTER-MULT-FUNC:- ret i32 %a
; CHECK-DIFF-FILTER-MULT-FUNC:+ ret i32 5
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Pass PassManager{{.*}} (function: f) ignored ***
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Pass ModuleToFunctionPassAdaptor (module) ignored ***
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Dump After PrintModulePass (module) omitted because no change ***
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Pass PassManager{{.*}} on f ignored ***
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Pass ModuleToFunctionPassAdaptor on [module] ignored ***
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-DIFF-FILTER-MULT-FUNC: *** IR Dump After PrintModulePass on [module] omitted because no change ***
; CHECK-DIFF-FILTER-PASSES: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-DIFF-FILTER-PASSES: *** IR Dump At Start: *** (function: g)
; CHECK-DIFF-FILTER-PASSES: *** IR Dump After NoOpFunctionPass (function: g) omitted because no change ***
; CHECK-DIFF-FILTER-PASSES: *** IR Dump After InstSimplifyPass (function: f) filtered out ***
; CHECK-DIFF-FILTER-PASSES: *** IR Dump After NoOpFunctionPass (function: f) omitted because no change ***
; CHECK-DIFF-FILTER-PASSES: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-DIFF-FILTER-PASSES: *** IR Dump At Start ***
; CHECK-DIFF-FILTER-PASSES: *** IR Dump After NoOpFunctionPass on g omitted because no change ***
; CHECK-DIFF-FILTER-PASSES: *** IR Dump After InstSimplifyPass on f filtered out ***
; CHECK-DIFF-FILTER-PASSES: *** IR Dump After NoOpFunctionPass on f omitted because no change ***
; CHECK-DIFF-FILTER-MULT-PASSES: *** IR Dump At Start: *** (function: g)
; CHECK-DIFF-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-DIFF-FILTER-MULT-PASSES: *** IR Dump At Start ***
; CHECK-DIFF-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on g ***
; CHECK-DIFF-FILTER-MULT-PASSES-NOT: ModuleID = {{.+}}
; CHECK-DIFF-FILTER-MULT-PASSES: entry:
; CHECK-DIFF-FILTER-MULT-PASSES:- %a = add i32 2, 3
; CHECK-DIFF-FILTER-MULT-PASSES:- ret i32 %a
; CHECK-DIFF-FILTER-MULT-PASSES:+ ret i32 5
; CHECK-DIFF-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass (function: g) omitted because no change ***
; CHECK-DIFF-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass on g omitted because no change ***
; CHECK-DIFF-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-FILTER-MULT-PASSES-NOT: ModuleID = {{.+}}
; CHECK-DIFF-FILTER-MULT-PASSES: entry:
; CHECK-DIFF-FILTER-MULT-PASSES:- %a = add i32 2, 3
; CHECK-DIFF-FILTER-MULT-PASSES:- ret i32 %a
; CHECK-DIFF-FILTER-MULT-PASSES:+ ret i32 5
; CHECK-DIFF-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass (function: f) omitted because no change ***
; CHECK-DIFF-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass on f omitted because no change ***
; CHECK-DIFF-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-DIFF-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass (function: g) filtered out ***
; CHECK-DIFF-FILTER-FUNC-PASSES: *** IR Dump At Start: *** (function: f)
; CHECK-DIFF-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-DIFF-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass on g filtered out ***
; CHECK-DIFF-FILTER-FUNC-PASSES: *** IR Dump At Start ***
; CHECK-DIFF-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-FILTER-FUNC-PASSES-NOT: ModuleID = {{.+}}
; CHECK-DIFF-FILTER-FUNC-PASSES: entry:
; CHECK-DIFF-FILTER-FUNC-PASSES:- %a = add i32 2, 3
; CHECK-DIFF-FILTER-FUNC-PASSES:- ret i32 %a
; CHECK-DIFF-FILTER-FUNC-PASSES:+ ret i32 5
; CHECK-DIFF-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass (function: f) omitted because no change ***
; CHECK-DIFF-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass on f omitted because no change ***
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump At Start: ***
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump At Start ***
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC-NOT: ModuleID = {{.+}}
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: entry:
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC:- %a = add i32 2, 3
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC:- ret i32 %a
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC:+ ret i32 5
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass (function: f) omitted because no change ***
; CHECK-DIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on f omitted because no change ***
; CHECK-DIFF-QUIET-SIMPLE-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-SIMPLE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-DIFF-QUIET-SIMPLE-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-SIMPLE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-DIFF-QUIET-SIMPLE-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-SIMPLE-NOT: *** IR{{.*}}
; CHECK-DIFF-QUIET-SIMPLE: entry:
@ -265,7 +265,7 @@ entry:
; CHECK-DIFF-QUIET-SIMPLE-NEXT:- ret i32 %a
; CHECK-DIFF-QUIET-SIMPLE-NEXT:+ ret i32 5
; CHECK-DIFF-QUIET-SIMPLE-EMPTY:
; CHECK-DIFF-QUIET-SIMPLE-NEXT: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-QUIET-SIMPLE-NEXT: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-QUIET-SIMPLE-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-SIMPLE-NOT: *** IR{{.*}}
; CHECK-DIFF-QUIET-SIMPLE: entry:
@ -274,8 +274,8 @@ entry:
; CHECK-DIFF-QUIET-SIMPLE-NEXT:+ ret i32 5
; CHECK-DIFF-QUIET-SIMPLE-NOT: *** IR{{.*}}
; CHECK-DIFF-QUIET-FUNC-FILTER-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-FUNC-FILTER: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-QUIET-FUNC-FILTER-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-FUNC-FILTER: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-QUIET-FUNC-FILTER-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-FUNC-FILTER: entry:
; CHECK-DIFF-QUIET-FUNC-FILTER:- %a = add i32 2, 3
@ -283,15 +283,15 @@ entry:
; CHECK-DIFF-QUIET-FUNC-FILTER:+ ret i32 5
; CHECK-DIFF-QUIET-FUNC-FILTER-NOT: *** IR{{.*}}
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE: entry:
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE:- %a = add i32 2, 3
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE:- ret i32 %a
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE:+ ret i32 5
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE-EMPTY:
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE-NEXT: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE-NEXT: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE: entry:
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE:- %a = add i32 2, 3
@ -299,15 +299,15 @@ entry:
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE:+ ret i32 5
; CHECK-DIFF-QUIET-PRINT-MOD-SCOPE-NOT: *** IR{{.*}}
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass on g ***
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC: entry:
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC:- %a = add i32 2, 3
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC:- ret i32 %a
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC:+ ret i32 5
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC-EMPTY:
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC-NEXT: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC-NEXT: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC: entry:
; CHECK-DIFF-QUIET-FILTER-MULT-FUNC:- %a = add i32 2, 3
@ -317,15 +317,15 @@ entry:
; CHECK-DIFF-QUIET-FILTER-PASSES-NONE-NOT: *** IR
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on g ***
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES: entry:
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES:- %a = add i32 2, 3
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES:- ret i32 %a
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES:+ ret i32 5
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES-EMPTY:
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES: entry:
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES:- %a = add i32 2, 3
@ -333,8 +333,8 @@ entry:
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES:+ ret i32 5
; CHECK-DIFF-QUIET-FILTER-MULT-PASSES-NOT: *** IR
; CHECK-DIFF-QUIET-FILTER-FUNC-PASSES-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-QUIET-FILTER-FUNC-PASSES-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-QUIET-FILTER-FUNC-PASSES-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-FILTER-FUNC-PASSES: entry:
; CHECK-DIFF-QUIET-FILTER-FUNC-PASSES:- %a = add i32 2, 3
@ -342,8 +342,8 @@ entry:
; CHECK-DIFF-QUIET-FILTER-FUNC-PASSES:+ ret i32 5
; CHECK-DIFF-QUIET-FILTER-FUNC-PASSES-NOT: *** IR
; CHECK-DIFF-QUIET-MULT-PASSES-FILTER-FUNC-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-DIFF-QUIET-MULT-PASSES-FILTER-FUNC-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-DIFF-QUIET-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on f ***
; CHECK-DIFF-QUIET-MULT-PASSES-FILTER-FUNC-NOT: ModuleID = {{.+}}
; CHECK-DIFF-QUIET-MULT-PASSES-FILTER-FUNC: entry:
; CHECK-DIFF-QUIET-MULT-PASSES-FILTER-FUNC:- %a = add i32 2, 3
@ -351,126 +351,126 @@ entry:
; CHECK-DIFF-QUIET-MULT-PASSES-FILTER-FUNC:+ ret i32 5
; CHECK-DIFF-QUIET-MULT-PASSES-FILTER-FUNC-NOT: *** IR
; CHECK-CDIFF-SIMPLE: *** IR Dump At Start: ***
; CHECK-CDIFF-SIMPLE: *** IR Dump At Start ***
; CHECK-CDIFF-SIMPLE: ModuleID = {{.+}}
; CHECK-CDIFF-SIMPLE: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-CDIFF-SIMPLE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-CDIFF-SIMPLE: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-CDIFF-SIMPLE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-CDIFF-SIMPLE-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-SIMPLE-NOT: *** IR{{.*}}
; CHECK-CDIFF-SIMPLE: entry:
; CHECK-CDIFF-SIMPLE-NEXT:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-SIMPLE-NEXT:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-SIMPLE-NEXT:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-SIMPLE: *** IR Pass PassManager{{.*}} (function: g) ignored ***
; CHECK-CDIFF-SIMPLE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-SIMPLE: *** IR Pass PassManager{{.*}} on g ignored ***
; CHECK-CDIFF-SIMPLE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-SIMPLE-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-SIMPLE-NOT: *** IR{{.*}}
; CHECK-CDIFF-SIMPLE: entry:
; CHECK-CDIFF-SIMPLE-NEXT:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-SIMPLE-NEXT:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-SIMPLE-NEXT:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-SIMPLE: *** IR Pass PassManager{{.*}} (function: f) ignored ***
; CHECK-CDIFF-SIMPLE: *** IR Pass ModuleToFunctionPassAdaptor (module) ignored ***
; CHECK-CDIFF-SIMPLE: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-CDIFF-SIMPLE: *** IR Dump After PrintModulePass (module) omitted because no change ***
; CHECK-CDIFF-SIMPLE: *** IR Pass PassManager{{.*}} on f ignored ***
; CHECK-CDIFF-SIMPLE: *** IR Pass ModuleToFunctionPassAdaptor on [module] ignored ***
; CHECK-CDIFF-SIMPLE: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-CDIFF-SIMPLE: *** IR Dump After PrintModulePass on [module] omitted because no change ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Dump At Start: ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Dump At Start ***
; CHECK-CDIFF-FUNC-FILTER-NEXT: ; ModuleID = {{.+}}
; CHECK-CDIFF-FUNC-FILTER: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-FUNC-FILTER: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-FUNC-FILTER-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-FUNC-FILTER: entry:
; CHECK-CDIFF-FUNC-FILTER:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-FUNC-FILTER:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-FUNC-FILTER:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-FUNC-FILTER: *** IR Pass PassManager{{.*}} (function: f) ignored ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Pass ModuleToFunctionPassAdaptor (module) ignored ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Dump After PrintModulePass (module) omitted because no change ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Pass PassManager{{.*}} on f ignored ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Pass ModuleToFunctionPassAdaptor on [module] ignored ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-CDIFF-FUNC-FILTER: *** IR Dump After PrintModulePass on [module] omitted because no change ***
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Dump At Start: ***
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Dump At Start ***
; CHECK-CDIFF-PRINT-MOD-SCOPE: ModuleID = {{.+}}
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-CDIFF-PRINT-MOD-SCOPE-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-PRINT-MOD-SCOPE: entry:
; CHECK-CDIFF-PRINT-MOD-SCOPE:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-PRINT-MOD-SCOPE:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-PRINT-MOD-SCOPE:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-PRINT-MOD-SCOPE-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-PRINT-MOD-SCOPE: entry:
; CHECK-CDIFF-PRINT-MOD-SCOPE:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-PRINT-MOD-SCOPE:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-PRINT-MOD-SCOPE:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Pass PassManager{{.*}} (function: f) ignored ***
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Pass ModuleToFunctionPassAdaptor (module) ignored ***
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Dump After PrintModulePass (module) omitted because no change ***
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Pass PassManager{{.*}} on f ignored ***
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Pass ModuleToFunctionPassAdaptor on [module] ignored ***
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-CDIFF-PRINT-MOD-SCOPE: *** IR Dump After PrintModulePass on [module] omitted because no change ***
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Dump At Start: ***
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Dump At Start ***
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass on g ***
; CHECK-CDIFF-FILTER-MULT-FUNC-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-FILTER-MULT-FUNC: entry:
; CHECK-CDIFF-FILTER-MULT-FUNC:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-FUNC:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-FUNC:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-FILTER-MULT-FUNC-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-FILTER-MULT-FUNC: entry:
; CHECK-CDIFF-FILTER-MULT-FUNC:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-FUNC:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-FUNC:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Pass PassManager{{.*}} (function: f) ignored ***
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Pass ModuleToFunctionPassAdaptor (module) ignored ***
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Dump After PrintModulePass (module) omitted because no change ***
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Pass PassManager{{.*}} on f ignored ***
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Pass ModuleToFunctionPassAdaptor on [module] ignored ***
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-CDIFF-FILTER-MULT-FUNC: *** IR Dump After PrintModulePass on [module] omitted because no change ***
; CHECK-CDIFF-FILTER-PASSES: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-CDIFF-FILTER-PASSES: *** IR Dump At Start: *** (function: g)
; CHECK-CDIFF-FILTER-PASSES: *** IR Dump After NoOpFunctionPass (function: g) omitted because no change ***
; CHECK-CDIFF-FILTER-PASSES: *** IR Dump After InstSimplifyPass (function: f) filtered out ***
; CHECK-CDIFF-FILTER-PASSES: *** IR Dump After NoOpFunctionPass (function: f) omitted because no change ***
; CHECK-CDIFF-FILTER-PASSES: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-CDIFF-FILTER-PASSES: *** IR Dump At Start ***
; CHECK-CDIFF-FILTER-PASSES: *** IR Dump After NoOpFunctionPass on g omitted because no change ***
; CHECK-CDIFF-FILTER-PASSES: *** IR Dump After InstSimplifyPass on f filtered out ***
; CHECK-CDIFF-FILTER-PASSES: *** IR Dump After NoOpFunctionPass on f omitted because no change ***
; CHECK-CDIFF-FILTER-MULT-PASSES: *** IR Dump At Start: *** (function: g)
; CHECK-CDIFF-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-CDIFF-FILTER-MULT-PASSES: *** IR Dump At Start ***
; CHECK-CDIFF-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on g ***
; CHECK-CDIFF-FILTER-MULT-PASSES-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-FILTER-MULT-PASSES: entry:
; CHECK-CDIFF-FILTER-MULT-PASSES:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-PASSES:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-PASSES:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass (function: g) omitted because no change ***
; CHECK-CDIFF-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass on g omitted because no change ***
; CHECK-CDIFF-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-FILTER-MULT-PASSES-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-FILTER-MULT-PASSES: entry:
; CHECK-CDIFF-FILTER-MULT-PASSES:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-PASSES:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-PASSES:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass (function: f) omitted because no change ***
; CHECK-CDIFF-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass on f omitted because no change ***
; CHECK-CDIFF-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-CDIFF-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass (function: g) filtered out ***
; CHECK-CDIFF-FILTER-FUNC-PASSES: *** IR Dump At Start: *** (function: f)
; CHECK-CDIFF-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-CDIFF-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass on g filtered out ***
; CHECK-CDIFF-FILTER-FUNC-PASSES: *** IR Dump At Start ***
; CHECK-CDIFF-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-FILTER-FUNC-PASSES-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-FILTER-FUNC-PASSES: entry:
; CHECK-CDIFF-FILTER-FUNC-PASSES:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-FILTER-FUNC-PASSES:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-FILTER-FUNC-PASSES:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass (function: f) omitted because no change ***
; CHECK-CDIFF-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass on f omitted because no change ***
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump At Start: ***
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump At Start ***
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: entry:
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass (function: f) omitted because no change ***
; CHECK-CDIFF-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on f omitted because no change ***
; CHECK-CDIFF-QUIET-SIMPLE-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-SIMPLE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-CDIFF-QUIET-SIMPLE-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-SIMPLE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-CDIFF-QUIET-SIMPLE-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-SIMPLE-NOT: *** IR{{.*}}
; CHECK-CDIFF-QUIET-SIMPLE: entry:
@ -478,7 +478,7 @@ entry:
; CHECK-CDIFF-QUIET-SIMPLE-NEXT:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-QUIET-SIMPLE-NEXT:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-QUIET-SIMPLE-EMPTY:
; CHECK-CDIFF-QUIET-SIMPLE-NEXT: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-QUIET-SIMPLE-NEXT: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-QUIET-SIMPLE-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-SIMPLE-NOT: *** IR{{.*}}
; CHECK-CDIFF-QUIET-SIMPLE: entry:
@ -487,8 +487,8 @@ entry:
; CHECK-CDIFF-QUIET-SIMPLE-NEXT:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-QUIET-SIMPLE-NOT: *** IR{{.*}}
; CHECK-CDIFF-QUIET-FUNC-FILTER-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-FUNC-FILTER: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-QUIET-FUNC-FILTER-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-FUNC-FILTER: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-QUIET-FUNC-FILTER-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-FUNC-FILTER: entry:
; CHECK-CDIFF-QUIET-FUNC-FILTER:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
@ -496,15 +496,15 @@ entry:
; CHECK-CDIFF-QUIET-FUNC-FILTER:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-QUIET-FUNC-FILTER-NOT: *** IR{{.*}}
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE: entry:
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE-EMPTY:
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE-NEXT: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE-NEXT: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE: entry:
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
@ -512,15 +512,15 @@ entry:
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-QUIET-PRINT-MOD-SCOPE-NOT: *** IR{{.*}}
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass on g ***
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC: entry:
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC-EMPTY:
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC-NEXT: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC-NEXT: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC: entry:
; CHECK-CDIFF-QUIET-FILTER-MULT-FUNC:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
@ -530,15 +530,15 @@ entry:
; CHECK-CDIFF-QUIET-FILTER-PASSES-NONE-NOT: *** IR
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on g ***
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES: entry:
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES:{{.\[31m-}} ret i32 %a{{.\[0m}}
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES-EMPTY:
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES: entry:
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
@ -546,8 +546,8 @@ entry:
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-QUIET-FILTER-MULT-PASSES-NOT: *** IR
; CHECK-CDIFF-QUIET-FILTER-FUNC-PASSES-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-QUIET-FILTER-FUNC-PASSES-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-QUIET-FILTER-FUNC-PASSES-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-FILTER-FUNC-PASSES: entry:
; CHECK-CDIFF-QUIET-FILTER-FUNC-PASSES:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}
@ -555,8 +555,8 @@ entry:
; CHECK-CDIFF-QUIET-FILTER-FUNC-PASSES:{{.\[32m\+}} ret i32 5{{.\[0m}}
; CHECK-CDIFF-QUIET-FILTER-FUNC-PASSES-NOT: *** IR
; CHECK-CDIFF-QUIET-MULT-PASSES-FILTER-FUNC-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-CDIFF-QUIET-MULT-PASSES-FILTER-FUNC-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-CDIFF-QUIET-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on f ***
; CHECK-CDIFF-QUIET-MULT-PASSES-FILTER-FUNC-NOT: ModuleID = {{.+}}
; CHECK-CDIFF-QUIET-MULT-PASSES-FILTER-FUNC: entry:
; CHECK-CDIFF-QUIET-MULT-PASSES-FILTER-FUNC:{{.\[31m-}} %a = add i32 2, 3{{.\[0m}}

View File

@ -107,220 +107,220 @@ entry:
ret i32 %a
}
; CHECK-SIMPLE: *** IR Dump At Start: ***
; CHECK-SIMPLE: *** IR Dump At Start ***
; CHECK-SIMPLE-NEXT: ; ModuleID = {{.+}}
; CHECK-SIMPLE: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-SIMPLE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-SIMPLE: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-SIMPLE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-SIMPLE-NEXT: define i32 @g()
; CHECK-SIMPLE: *** IR Pass PassManager{{.*}} (function: g) ignored ***
; CHECK-SIMPLE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-SIMPLE: *** IR Pass PassManager{{.*}} on g ignored ***
; CHECK-SIMPLE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-SIMPLE-NEXT: define i32 @f()
; CHECK-SIMPLE: *** IR Pass PassManager{{.*}} (function: f) ignored ***
; CHECK-SIMPLE: *** IR Pass ModuleToFunctionPassAdaptor (module) ignored ***
; CHECK-SIMPLE: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-SIMPLE: *** IR Dump After PrintModulePass (module) omitted because no change ***
; CHECK-SIMPLE: *** IR Pass PassManager{{.*}} on f ignored ***
; CHECK-SIMPLE: *** IR Pass ModuleToFunctionPassAdaptor on [module] ignored ***
; CHECK-SIMPLE: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-SIMPLE: *** IR Dump After PrintModulePass on [module] omitted because no change ***
; CHECK-SIMPLE-NOT: *** IR
; CHECK-FUNC-FILTER: *** IR Dump At Start: ***
; CHECK-FUNC-FILTER: *** IR Dump At Start ***
; CHECK-FUNC-FILTER-NEXT: ; ModuleID = {{.+}}
; CHECK-FUNC-FILTER: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-FUNC-FILTER: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-FUNC-FILTER: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-FUNC-FILTER: *** IR Dump After InstSimplifyPass on f ***
; CHECK-FUNC-FILTER-NEXT: define i32 @f()
; CHECK-PRINT-MOD-SCOPE: *** IR Dump At Start: ***
; CHECK-PRINT-MOD-SCOPE: *** IR Dump At Start ***
; CHECK-PRINT-MOD-SCOPE-NEXT: ModuleID = {{.+}}
; CHECK-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-PRINT-MOD-SCOPE-NEXT: ModuleID = {{.+}}
; CHECK-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-PRINT-MOD-SCOPE-NEXT: ModuleID = {{.+}}
; CHECK-FUNC-FILTER-MOD-SCOPE: *** IR Dump At Start: ***
; CHECK-FUNC-FILTER-MOD-SCOPE: *** IR Dump At Start ***
; CHECK-FUNC-FILTER-MOD-SCOPE-NEXT: ; ModuleID = {{.+}}
; CHECK-FUNC-FILTER-MOD-SCOPE: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-FUNC-FILTER-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-FUNC-FILTER-MOD-SCOPE: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-FUNC-FILTER-MOD-SCOPE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-FUNC-FILTER-MOD-SCOPE-NEXT: ModuleID = {{.+}}
; CHECK-FILTER-MULT-FUNC: *** IR Dump At Start: ***
; CHECK-FILTER-MULT-FUNC: *** IR Dump At Start ***
; CHECK-FILTER-MULT-FUNC-NEXT: ; ModuleID = {{.+}}
; CHECK-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass on g ***
; CHECK-FILTER-MULT-FUNC-NEXT: define i32 @g()
; CHECK-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass on f ***
; CHECK-FILTER-MULT-FUNC-NEXT: define i32 @f()
; CHECK-FILTER-PASSES: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-FILTER-PASSES: *** IR Dump At Start: *** (function: g)
; CHECK-FILTER-PASSES: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-FILTER-PASSES: *** IR Dump At Start ***
; CHECK-FILTER-PASSES-NEXT: ; ModuleID = {{.+}}
; CHECK-FILTER-PASSES: *** IR Dump After NoOpFunctionPass (function: g) omitted because no change ***
; CHECK-FILTER-PASSES: *** IR Dump After InstSimplifyPass (function: f) filtered out ***
; CHECK-FILTER-PASSES: *** IR Dump After NoOpFunctionPass (function: f) omitted because no change ***
; CHECK-FILTER-PASSES: *** IR Dump After NoOpFunctionPass on g omitted because no change ***
; CHECK-FILTER-PASSES: *** IR Dump After InstSimplifyPass on f filtered out ***
; CHECK-FILTER-PASSES: *** IR Dump After NoOpFunctionPass on f omitted because no change ***
; CHECK-FILTER-MULT-PASSES: *** IR Dump At Start: *** (function: g)
; CHECK-FILTER-MULT-PASSES: *** IR Dump At Start ***
; CHECK-FILTER-MULT-PASSES-NEXT: ; ModuleID = {{.+}}
; CHECK-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on g ***
; CHECK-FILTER-MULT-PASSES-NEXT: define i32 @g()
; CHECK-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass (function: g) omitted because no change ***
; CHECK-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass on g omitted because no change ***
; CHECK-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-FILTER-MULT-PASSES-NEXT: define i32 @f()
; CHECK-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass (function: f) omitted because no change ***
; CHECK-FILTER-MULT-PASSES: *** IR Dump After NoOpFunctionPass on f omitted because no change ***
; CHECK-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass (function: g) filtered out ***
; CHECK-FILTER-FUNC-PASSES: *** IR Dump At Start: *** (function: f)
; CHECK-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass on g filtered out ***
; CHECK-FILTER-FUNC-PASSES: *** IR Dump At Start ***
; CHECK-FILTER-FUNC-PASSES-NEXT: ; ModuleID = {{.+}}
; CHECK-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-FILTER-FUNC-PASSES-NEXT: define i32 @f()
; CHECK-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass (function: f) omitted because no change ***
; CHECK-FILTER-FUNC-PASSES: *** IR Dump After NoOpFunctionPass on f omitted because no change ***
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump After NoOpFunctionPass (function: g) filtered out ***
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump At Start: *** (function: f)
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump After NoOpFunctionPass on g filtered out ***
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump At Start ***
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE-NEXT: ; ModuleID = {{.+}}
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE-NEXT: ModuleID = {{.+}}
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump After NoOpFunctionPass (function: f) omitted because no change ***
; CHECK-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump After NoOpFunctionPass on f omitted because no change ***
; CHECK-MULT-PASSES-FILTER-FUNC: *** IR Dump At Start: ***
; CHECK-MULT-PASSES-FILTER-FUNC: *** IR Dump At Start ***
; CHECK-MULT-PASSES-FILTER-FUNC-NEXT: ; ModuleID = {{.+}}
; CHECK-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on f ***
; CHECK-MULT-PASSES-FILTER-FUNC-NEXT: define i32 @f()
; CHECK-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass (function: f) omitted because no change ***
; CHECK-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on f omitted because no change ***
; CHECK-SIMPLE-BEFORE: *** IR Dump At Start: ***
; CHECK-SIMPLE-BEFORE: *** IR Dump At Start ***
; CHECK-SIMPLE-BEFORE-NEXT: ; ModuleID = {{.+}}
; CHECK-SIMPLE-BEFORE: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-SIMPLE-BEFORE: *** IR Dump Before InstSimplifyPass *** (function: g)
; CHECK-SIMPLE-BEFORE: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-SIMPLE-BEFORE: *** IR Dump Before InstSimplifyPass on g ***
; CHECK-SIMPLE-BEFORE-NEXT: define i32 @g()
; CHECK-SIMPLE-BEFORE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-SIMPLE-BEFORE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-SIMPLE-BEFORE-NEXT: define i32 @g()
; CHECK-SIMPLE-BEFORE: *** IR Pass PassManager{{.*}} (function: g) ignored ***
; CHECK-SIMPLE-BEFORE: *** IR Dump Before InstSimplifyPass *** (function: f)
; CHECK-SIMPLE-BEFORE: *** IR Pass PassManager{{.*}} on g ignored ***
; CHECK-SIMPLE-BEFORE: *** IR Dump Before InstSimplifyPass on f ***
; CHECK-SIMPLE-BEFORE-NEXT: define i32 @f()
; CHECK-SIMPLE-BEFORE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-SIMPLE-BEFORE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-SIMPLE-BEFORE-NEXT: define i32 @f()
; CHECK-SIMPLE-BEFORE: *** IR Pass PassManager{{.*}} (function: f) ignored ***
; CHECK-SIMPLE-BEFORE: *** IR Pass ModuleToFunctionPassAdaptor (module) ignored ***
; CHECK-SIMPLE-BEFORE: *** IR Dump After VerifierPass (module) omitted because no change ***
; CHECK-SIMPLE-BEFORE: *** IR Dump After PrintModulePass (module) omitted because no change ***
; CHECK-SIMPLE-BEFORE: *** IR Pass PassManager{{.*}} on f ignored ***
; CHECK-SIMPLE-BEFORE: *** IR Pass ModuleToFunctionPassAdaptor on [module] ignored ***
; CHECK-SIMPLE-BEFORE: *** IR Dump After VerifierPass on [module] omitted because no change ***
; CHECK-SIMPLE-BEFORE: *** IR Dump After PrintModulePass on [module] omitted because no change ***
; CHECK-SIMPLE-BEFORE-NOT: *** IR
; CHECK-FUNC-FILTER-BEFORE: *** IR Dump At Start: ***
; CHECK-FUNC-FILTER-BEFORE: *** IR Dump At Start ***
; CHECK-FUNC-FILTER-BEFORE-NEXT: ; ModuleID = {{.+}}
; CHECK-FUNC-FILTER-BEFORE: *** IR Dump After InstSimplifyPass (function: g) filtered out ***
; CHECK-FUNC-FILTER-BEFORE: *** IR Dump Before InstSimplifyPass *** (function: f)
; CHECK-FUNC-FILTER-BEFORE: *** IR Dump After InstSimplifyPass on g filtered out ***
; CHECK-FUNC-FILTER-BEFORE: *** IR Dump Before InstSimplifyPass on f ***
; CHECK-FUNC-FILTER-BEFORE-NEXT: define i32 @f()
; CHECK-FUNC-FILTER-BEFORE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-FUNC-FILTER-BEFORE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-FUNC-FILTER-BEFORE-NEXT: define i32 @f()
; CHECK-PRINT-MOD-SCOPE-BEFORE: *** IR Dump At Start: ***
; CHECK-PRINT-MOD-SCOPE-BEFORE: *** IR Dump At Start ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-NEXT: ModuleID = {{.+}}
; CHECK-PRINT-MOD-SCOPE-BEFORE: *** IR Dump Before InstSimplifyPass *** (function: g)
; CHECK-PRINT-MOD-SCOPE-BEFORE: *** IR Dump Before InstSimplifyPass on g ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-NEXT: ModuleID = {{.+}}
; CHECK-PRINT-MOD-SCOPE-BEFORE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-PRINT-MOD-SCOPE-BEFORE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-NEXT: ModuleID = {{.+}}
; CHECK-PRINT-MOD-SCOPE-BEFORE: *** IR Dump Before InstSimplifyPass *** (function: f)
; CHECK-PRINT-MOD-SCOPE-BEFORE: *** IR Dump Before InstSimplifyPass on f ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-NEXT: ModuleID = {{.+}}
; CHECK-PRINT-MOD-SCOPE-BEFORE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-PRINT-MOD-SCOPE-BEFORE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-NEXT: ModuleID = {{.+}}
; CHECK-QUIET-SIMPLE-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-SIMPLE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-QUIET-SIMPLE-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-SIMPLE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-QUIET-SIMPLE-NEXT: define i32 @g()
; CHECK-QUIET-SIMPLE-NOT: *** IR Dump {{.*(no change|ignored|filtered out)}} ***
; CHECK-QUIET-SIMPLE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-QUIET-SIMPLE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-QUIET-SIMPLE-NEXT: define i32 @f()
; CHECK-QUIET-SIMPLE-NOT: *** IR
; CHECK-QUIET-FUNC-FILTER-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FUNC-FILTER: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-QUIET-FUNC-FILTER-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FUNC-FILTER: *** IR Dump After InstSimplifyPass on f ***
; CHECK-QUIET-FUNC-FILTER-NEXT: define i32 @f()
; CHECK-QUIET-FUNC-FILTER-NOT: *** IR
; CHECK-QUIET-PRINT-MOD-SCOPE-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-QUIET-PRINT-MOD-SCOPE-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass on g ***
; CHECK-QUIET-PRINT-MOD-SCOPE-NEXT: ModuleID = {{.+}}
; CHECK-QUIET-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-QUIET-PRINT-MOD-SCOPE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-QUIET-PRINT-MOD-SCOPE-NEXT: ModuleID = {{.+}}
; CHECK-QUIET-PRINT-MOD-SCOPE-NOT: *** IR
; CHECK-QUIET-FUNC-FILTER-MOD-SCOPE-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FUNC-FILTER-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-QUIET-FUNC-FILTER-MOD-SCOPE-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FUNC-FILTER-MOD-SCOPE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-QUIET-FUNC-FILTER-MOD-SCOPE-NEXT: ModuleID = {{.+}}
; CHECK-QUIET-FUNC-FILTER-MOD-SCOPE-NOT: *** IR
; CHECK-QUIET-FILTER-MULT-FUNC-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-QUIET-FILTER-MULT-FUNC-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass on g ***
; CHECK-QUIET-FILTER-MULT-FUNC-NEXT: define i32 @g()
; CHECK-QUIET-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-QUIET-FILTER-MULT-FUNC: *** IR Dump After InstSimplifyPass on f ***
; CHECK-QUIET-FILTER-MULT-FUNC-NEXT: define i32 @f()
; CHECK-QUIET-FILTER-MULT-FUNC-NOT: *** IR
; CHECK-QUIET-FILTER-PASSES-NONE-NOT: *** IR
; CHECK-QUIET-FILTER-PASSES-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-PASSES: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-QUIET-FILTER-PASSES-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-PASSES: *** IR Dump After InstSimplifyPass on g ***
; CHECK-QUIET-FILTER-PASSES-NEXT: define i32 @g()
; CHECK-QUIET-FILTER-PASSES-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-QUIET-FILTER-PASSES-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-QUIET-FILTER-PASSES-NEXT: define i32 @f()
; CHECK-QUIET-FILTER-PASSES-NOT: *** IR
; CHECK-QUIET-FILTER-MULT-PASSES-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-QUIET-FILTER-MULT-PASSES-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on g ***
; CHECK-QUIET-FILTER-MULT-PASSES-NEXT: define i32 @g()
; CHECK-QUIET-FILTER-MULT-PASSES-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-QUIET-FILTER-MULT-PASSES-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-MULT-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-QUIET-FILTER-MULT-PASSES-NEXT: define i32 @f()
; CHECK-QUIET-FILTER-MULT-PASSES-NOT: *** IR
; CHECK-QUIET-FILTER-FUNC-PASSES-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-QUIET-FILTER-FUNC-PASSES-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-FUNC-PASSES: *** IR Dump After InstSimplifyPass on f ***
; CHECK-QUIET-FILTER-FUNC-PASSES-NEXT: define i32 @f()
; CHECK-QUIET-FILTER-FUNC-PASSES-NOT: *** IR
; CHECK-QUIET-FILTER-FUNC-PASSES-MOD-SCOPE-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-QUIET-FILTER-FUNC-PASSES-MOD-SCOPE-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-FILTER-FUNC-PASSES-MOD-SCOPE: *** IR Dump After InstSimplifyPass on f ***
; CHECK-QUIET-FILTER-FUNC-PASSES-MOD-SCOPE-NEXT: ModuleID = {{.+}}
; CHECK-QUIET-FILTER-FUNC-PASSES-MOD-SCOPE-NOT: *** IR
; CHECK-QUIET-MULT-PASSES-FILTER-FUNC-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-QUIET-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-QUIET-MULT-PASSES-FILTER-FUNC-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-QUIET-MULT-PASSES-FILTER-FUNC: *** IR Dump After InstSimplifyPass on f ***
; CHECK-QUIET-MULT-PASSES-FILTER-FUNC-NEXT: define i32 @f()
; CHECK-QUIET-MULT-PASSES-FILTER-FUNC-NOT: *** IR
; CHECK-SIMPLE-BEFORE-QUIET-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-SIMPLE-BEFORE-QUIET: *** IR Dump Before InstSimplifyPass *** (function: g)
; CHECK-SIMPLE-BEFORE-QUIET-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-SIMPLE-BEFORE-QUIET: *** IR Dump Before InstSimplifyPass on g ***
; CHECK-SIMPLE-BEFORE-QUIET-NEXT: define i32 @g()
; CHECK-SIMPLE-BEFORE-QUIET-NOT: *** IR Dump {{.*(no change|ignored|filtered out)}} ***
; CHECK-SIMPLE-BEFORE-QUIET: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-SIMPLE-BEFORE-QUIET: *** IR Dump After InstSimplifyPass on g ***
; CHECK-SIMPLE-BEFORE-QUIET-NEXT: define i32 @g()
; CHECK-SIMPLE-BEFORE-QUIET-NOT: *** IR Dump {{.*(no change|ignored|filtered out)}} ***
; CHECK-SIMPLE-BEFORE-QUIET: *** IR Dump Before InstSimplifyPass *** (function: f)
; CHECK-SIMPLE-BEFORE-QUIET: *** IR Dump Before InstSimplifyPass on f ***
; CHECK-SIMPLE-BEFORE-QUIET-NEXT: define i32 @f()
; CHECK-SIMPLE-BEFORE-QUIET-NOT: *** IR Dump {{.*(no change|ignored|filtered out)}} ***
; CHECK-SIMPLE-BEFORE-QUIET: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-SIMPLE-BEFORE-QUIET: *** IR Dump After InstSimplifyPass on f ***
; CHECK-SIMPLE-BEFORE-QUIET-NEXT: define i32 @f()
; CHECK-SIMPLE-BEFORE-QUIET-NOT: *** IR
; CHECK-FUNC-FILTER-BEFORE-QUIET-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-FUNC-FILTER-BEFORE-QUIET: *** IR Dump Before InstSimplifyPass *** (function: f)
; CHECK-FUNC-FILTER-BEFORE-QUIET-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-FUNC-FILTER-BEFORE-QUIET: *** IR Dump Before InstSimplifyPass on f ***
; CHECK-FUNC-FILTER-BEFORE-QUIET-NEXT: define i32 @f()
; CHECK-FUNC-FILTER-BEFORE-QUIET-NOT: *** IR Dump {{.*(no change|ignored|filtered out)}} ***
; CHECK-FUNC-FILTER-BEFORE-QUIET: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-FUNC-FILTER-BEFORE-QUIET: *** IR Dump After InstSimplifyPass on f ***
; CHECK-FUNC-FILTER-BEFORE-QUIET-NEXT: define i32 @f()
; CHECK-FUNC-FILTER-BEFORE-QUIET-NOT: *** IR
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET-NOT: *** IR Dump {{.*(At Start:|no change|ignored|filtered out)}} ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET: *** IR Dump Before InstSimplifyPass *** (function: g)
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET-NOT: *** IR Dump {{.*(At Start|no change|ignored|filtered out)}} ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET: *** IR Dump Before InstSimplifyPass on g ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET-NEXT: ModuleID = {{.+}}
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET-NOT: *** IR Dump {{.*(no change|ignored|filtered out)}} ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET: *** IR Dump After InstSimplifyPass *** (function: g)
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET: *** IR Dump After InstSimplifyPass on g ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET-NEXT: ModuleID = {{.+}}
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET-NOT: *** IR Dump {{.*(no change|ignored|filtered out)}} ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET: *** IR Dump Before InstSimplifyPass *** (function: f)
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET: *** IR Dump Before InstSimplifyPass on f ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET-NEXT: ModuleID = {{.+}}
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET-NOT: *** IR Dump {{.*(no change|ignored|filtered out)}} ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET: *** IR Dump After InstSimplifyPass *** (function: f)
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET: *** IR Dump After InstSimplifyPass on f ***
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET-NEXT: ModuleID = {{.+}}
; CHECK-PRINT-MOD-SCOPE-BEFORE-QUIET-NOT: *** IR

View File

@ -11,7 +11,7 @@
; SIMPLIFY: IR Dump {{.*}} LoopInstSimplifyPass
; DELETED-NOT: IR Dump {{.*}}LoopInstSimplifyPass
; DELETED-NOT: IR Dump {{.*}}LoopDeletionPass
; DELETED-BUT-PRINTED: IR Dump {{.*}}LoopDeletionPass {{.*invalidated:}}
; DELETED-BUT-PRINTED: IR Dump {{.*}}LoopDeletionPass {{.*}}(invalidated)
; DELETED-BUT-PRINTED-NOT: IR Dump {{.*}}LoopInstSimplifyPass
define void @deleteme() {

View File

@ -46,8 +46,7 @@
; BAR-OLD-NOT: IR Dump
; BAR-OLD-NOT: ; Loop
; FOO-MODULE: IR Dump After {{Unroll|LoopFullUnrollPass}}
; FOO-MODULE-SAME: loop: %loop
; FOO-MODULE: IR Dump After {{Unroll|LoopFullUnrollPass}} {{.*}}%loop
; FOO-MODULE-NEXT: ModuleID =
; FOO-MODULE: define void @foo
; FOO-MODULE: define void @bar

View File

@ -8,9 +8,10 @@
; RUN: opt < %s 2>&1 -forceattrs -disable-output -print-after-all -filter-print-funcs=foo,bar | FileCheck %s -check-prefix=BOTH
; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=foo,bar | FileCheck %s -check-prefix=BOTH
; Check pass name is not printed if a module doesn't include any function specified in -filter-print-funcs.
; Check pass name is not printed if a module/SCC doesn't include any function specified in -filter-print-funcs.
; RUN: opt < %s 2>&1 -forceattrs -disable-output -print-after-all -filter-print-funcs=baz | FileCheck %s -allow-empty -check-prefix=EMPTY
; RUN: opt < %s 2>&1 -passes=forceattrs -disable-output -print-after-all -filter-print-funcs=baz | FileCheck %s -allow-empty -check-prefix=EMPTY
; RUN: opt < %s 2>&1 -passes=no-op-cgscc -disable-output -print-after-all -filter-print-funcs=baz | FileCheck %s -allow-empty -check-prefix=EMPTY
; Check whole module is printed with user-specified wildcast switch -filter-print-funcs=* or -print-module-scope
; RUN: opt < %s 2>&1 -forceattrs -disable-output -print-after-all | FileCheck %s -check-prefix=ALL
@ -32,6 +33,7 @@
; BOTH-NOT: ModuleID =
; EMPTY-NOT: IR Dump After {{Force set function attributes|ForceFunctionAttrsPass}}
; EMPTY-NOT: IR Dump After NoOp
; ALL: IR Dump After {{Force set function attributes|ForceFunctionAttrsPass}}
; ALL: ModuleID =

View File

@ -11,19 +11,19 @@
; RUN: opt -disable-output -disable-verify \
; RUN: -passes=inferattrs -opt-bisect-limit=-1 %s 2>&1 \
; RUN: | FileCheck %s --check-prefix=CHECK-MODULE-PASS
; CHECK-MODULE-PASS: BISECT: running pass (1) InferFunctionAttrsPass on module
; CHECK-MODULE-PASS: BISECT: running pass (1) InferFunctionAttrsPass on [module]
; RUN: opt -disable-output -disable-verify \
; RUN: -passes=inferattrs -opt-bisect-limit=0 %s 2>&1 \
; RUN: | FileCheck %s --check-prefix=CHECK-LIMIT-MODULE-PASS
; CHECK-LIMIT-MODULE-PASS: BISECT: NOT running pass (1) InferFunctionAttrsPass on module
; CHECK-LIMIT-MODULE-PASS: BISECT: NOT running pass (1) InferFunctionAttrsPass on [module]
; RUN: opt -disable-output -debug-pass-manager \
; RUN: -passes=inferattrs -opt-bisect-limit=-1 %s 2>&1 \
; RUN: | FileCheck %s --check-prefix=CHECK-REQUIRED-PASS
; CHECK-REQUIRED-PASS-NOT: BISECT: {{.*}} VerifierPass
; CHECK-REQUIRED-PASS: Running pass: VerifierPass
; CHECK-REQUIRED-PASS: BISECT: running pass (1) InferFunctionAttrsPass on module
; CHECK-REQUIRED-PASS: BISECT: running pass (1) InferFunctionAttrsPass on [module]
; CHECK-REQUIRED-PASS-NOT: BISECT: {{.*}} VerifierPass
; CHECK-REQUIRED-PASS: Running pass: VerifierPass
@ -32,67 +32,67 @@
; RUN: | FileCheck %s --check-prefix=CHECK-LIMIT-REQUIRED-PASS
; CHECK-LIMIT-REQUIRED-PASS-NOT: BISECT: {{.*}} VerifierPass
; CHECK-LIMIT-REQUIRED-PASS: Running pass: VerifierPass
; CHECK-LIMIT-REQUIRED-PASS: BISECT: NOT running pass (1) InferFunctionAttrsPass on module
; CHECK-LIMIT-REQUIRED-PASS: BISECT: NOT running pass (1) InferFunctionAttrsPass on [module]
; CHECK-LIMIT-REQUIRED-PASS-NOT: BISECT: {{.*}} VerifierPass
; CHECK-LIMIT-REQUIRED-PASS: Running pass: VerifierPass
; RUN: opt -disable-output -disable-verify \
; RUN: -passes=early-cse -opt-bisect-limit=-1 %s 2>&1 \
; RUN: | FileCheck %s --check-prefix=CHECK-FUNCTION-PASS
; CHECK-FUNCTION-PASS: BISECT: running pass (1) EarlyCSEPass on function (f1)
; CHECK-FUNCTION-PASS: BISECT: running pass (2) EarlyCSEPass on function (f2)
; CHECK-FUNCTION-PASS: BISECT: running pass (3) EarlyCSEPass on function (f3)
; CHECK-FUNCTION-PASS: BISECT: running pass (4) EarlyCSEPass on function (f4)
; CHECK-FUNCTION-PASS: BISECT: running pass (1) EarlyCSEPass on f1
; CHECK-FUNCTION-PASS: BISECT: running pass (2) EarlyCSEPass on f2
; CHECK-FUNCTION-PASS: BISECT: running pass (3) EarlyCSEPass on f3
; CHECK-FUNCTION-PASS: BISECT: running pass (4) EarlyCSEPass on f4
; RUN: opt -disable-output -disable-verify \
; RUN: -passes=early-cse -opt-bisect-limit=2 %s 2>&1 \
; RUN: | FileCheck %s --check-prefix=CHECK-LIMIT-FUNCTION-PASS
; CHECK-LIMIT-FUNCTION-PASS: BISECT: running pass (1) EarlyCSEPass on function (f1)
; CHECK-LIMIT-FUNCTION-PASS: BISECT: running pass (2) EarlyCSEPass on function (f2)
; CHECK-LIMIT-FUNCTION-PASS: BISECT: NOT running pass (3) EarlyCSEPass on function (f3)
; CHECK-LIMIT-FUNCTION-PASS: BISECT: NOT running pass (4) EarlyCSEPass on function (f4)
; CHECK-LIMIT-FUNCTION-PASS: BISECT: running pass (1) EarlyCSEPass on f1
; CHECK-LIMIT-FUNCTION-PASS: BISECT: running pass (2) EarlyCSEPass on f2
; CHECK-LIMIT-FUNCTION-PASS: BISECT: NOT running pass (3) EarlyCSEPass on f3
; CHECK-LIMIT-FUNCTION-PASS: BISECT: NOT running pass (4) EarlyCSEPass on f4
; RUN: opt -disable-output -disable-verify \
; RUN: -passes=function-attrs -opt-bisect-limit=-1 %s 2>&1 \
; RUN: | FileCheck %s --check-prefix=CHECK-CGSCC-PASS
; CHECK-CGSCC-PASS: BISECT: running pass (1) PostOrderFunctionAttrsPass on SCC (f1)
; CHECK-CGSCC-PASS: BISECT: running pass (2) PostOrderFunctionAttrsPass on SCC (f2)
; CHECK-CGSCC-PASS: BISECT: running pass (3) PostOrderFunctionAttrsPass on SCC (f3)
; CHECK-CGSCC-PASS: BISECT: running pass (4) PostOrderFunctionAttrsPass on SCC (f4)
; CHECK-CGSCC-PASS: BISECT: running pass (1) PostOrderFunctionAttrsPass on (f1)
; CHECK-CGSCC-PASS: BISECT: running pass (2) PostOrderFunctionAttrsPass on (f2)
; CHECK-CGSCC-PASS: BISECT: running pass (3) PostOrderFunctionAttrsPass on (f3)
; CHECK-CGSCC-PASS: BISECT: running pass (4) PostOrderFunctionAttrsPass on (f4)
; RUN: opt -disable-output -disable-verify \
; RUN: -passes=function-attrs -opt-bisect-limit=3 %s 2>&1 \
; RUN: | FileCheck %s --check-prefix=CHECK-LIMIT-CGSCC-PASS
; CHECK-LIMIT-CGSCC-PASS: BISECT: running pass (1) PostOrderFunctionAttrsPass on SCC (f1)
; CHECK-LIMIT-CGSCC-PASS: BISECT: running pass (2) PostOrderFunctionAttrsPass on SCC (f2)
; CHECK-LIMIT-CGSCC-PASS: BISECT: running pass (3) PostOrderFunctionAttrsPass on SCC (f3)
; CHECK-LIMIT-CGSCC-PASS: BISECT: NOT running pass (4) PostOrderFunctionAttrsPass on SCC (f4)
; CHECK-LIMIT-CGSCC-PASS: BISECT: running pass (1) PostOrderFunctionAttrsPass on (f1)
; CHECK-LIMIT-CGSCC-PASS: BISECT: running pass (2) PostOrderFunctionAttrsPass on (f2)
; CHECK-LIMIT-CGSCC-PASS: BISECT: running pass (3) PostOrderFunctionAttrsPass on (f3)
; CHECK-LIMIT-CGSCC-PASS: BISECT: NOT running pass (4) PostOrderFunctionAttrsPass on (f4)
; RUN: opt -disable-output -disable-verify -opt-bisect-limit=-1 \
; RUN: -passes='inferattrs,cgscc(function-attrs,function(early-cse))' %s 2>&1 \
; RUN: | FileCheck %s --check-prefix=CHECK-MULTI-PASS
; CHECK-MULTI-PASS: BISECT: running pass (1) InferFunctionAttrsPass on module
; CHECK-MULTI-PASS: BISECT: running pass (2) PostOrderFunctionAttrsPass on SCC (f1)
; CHECK-MULTI-PASS: BISECT: running pass (3) EarlyCSEPass on function (f1)
; CHECK-MULTI-PASS: BISECT: running pass (4) PostOrderFunctionAttrsPass on SCC (f2)
; CHECK-MULTI-PASS: BISECT: running pass (5) EarlyCSEPass on function (f2)
; CHECK-MULTI-PASS: BISECT: running pass (6) PostOrderFunctionAttrsPass on SCC (f3)
; CHECK-MULTI-PASS: BISECT: running pass (7) EarlyCSEPass on function (f3)
; CHECK-MULTI-PASS: BISECT: running pass (8) PostOrderFunctionAttrsPass on SCC (f4)
; CHECK-MULTI-PASS: BISECT: running pass (9) EarlyCSEPass on function (f4)
; CHECK-MULTI-PASS: BISECT: running pass (1) InferFunctionAttrsPass on [module]
; CHECK-MULTI-PASS: BISECT: running pass (2) PostOrderFunctionAttrsPass on (f1)
; CHECK-MULTI-PASS: BISECT: running pass (3) EarlyCSEPass on f1
; CHECK-MULTI-PASS: BISECT: running pass (4) PostOrderFunctionAttrsPass on (f2)
; CHECK-MULTI-PASS: BISECT: running pass (5) EarlyCSEPass on f2
; CHECK-MULTI-PASS: BISECT: running pass (6) PostOrderFunctionAttrsPass on (f3)
; CHECK-MULTI-PASS: BISECT: running pass (7) EarlyCSEPass on f3
; CHECK-MULTI-PASS: BISECT: running pass (8) PostOrderFunctionAttrsPass on (f4)
; CHECK-MULTI-PASS: BISECT: running pass (9) EarlyCSEPass on f4
; RUN: opt -disable-output -disable-verify -opt-bisect-limit=7 \
; RUN: -passes='inferattrs,cgscc(function-attrs,function(early-cse))' %s 2>&1 \
; RUN: | FileCheck %s --check-prefix=CHECK-LIMIT-MULTI-PASS
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (1) InferFunctionAttrsPass on module
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (2) PostOrderFunctionAttrsPass on SCC (f1)
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (3) EarlyCSEPass on function (f1)
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (4) PostOrderFunctionAttrsPass on SCC (f2)
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (5) EarlyCSEPass on function (f2)
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (6) PostOrderFunctionAttrsPass on SCC (f3)
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (7) EarlyCSEPass on function (f3)
; CHECK-LIMIT-MULTI-PASS: BISECT: NOT running pass (8) PostOrderFunctionAttrsPass on SCC (f4)
; CHECK-LIMIT-MULTI-PASS: BISECT: NOT running pass (9) EarlyCSEPass on function (f4)
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (1) InferFunctionAttrsPass on [module]
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (2) PostOrderFunctionAttrsPass on (f1)
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (3) EarlyCSEPass on f1
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (4) PostOrderFunctionAttrsPass on (f2)
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (5) EarlyCSEPass on f2
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (6) PostOrderFunctionAttrsPass on (f3)
; CHECK-LIMIT-MULTI-PASS: BISECT: running pass (7) EarlyCSEPass on f3
; CHECK-LIMIT-MULTI-PASS: BISECT: NOT running pass (8) PostOrderFunctionAttrsPass on (f4)
; CHECK-LIMIT-MULTI-PASS: BISECT: NOT running pass (9) EarlyCSEPass on f4
declare i32 @g()

View File

@ -16,22 +16,18 @@
; RUN: -passes=simplify-cfg -print-after-all -filter-print-funcs=foo -print-module-scope \
; RUN: | FileCheck %s -check-prefix=FOO
; CFG: IR Dump After {{Simplify the CFG|SimplifyCFGPass}}
; CFG-SAME: function: foo
; CFG: IR Dump After {{Simplify the CFG|SimplifyCFGPass}} {{.*}}foo
; CFG-NEXT: ModuleID =
; CFG: define void @foo
; CFG: define void @bar
; CFG: declare void @baz
; CFG: IR Dump After
; CFG-SAME: function: bar
; CFG: IR Dump After {{.*}}bar
; CFG-NEXT: ModuleID =
; CFG: define void @foo
; CFG: define void @bar
; CFG: declare void @baz
; FOO: IR Dump After {{Simplify the CFG|SimplifyCFGPass}}
; FOO-NOT: function: bar
; FOO-SAME: function: foo
; FOO: IR Dump After {{Simplify the CFG|SimplifyCFGPass}} {{.*foo}}
; FOO-NEXT: ModuleID =
; FOO: Function Attrs: nounwind ssp
; FOO: define void @foo

View File

@ -3,15 +3,15 @@
; RUN: opt < %s 2>&1 -disable-output \
; RUN: -passes=inline -print-before-all -print-after-all -print-module-scope | FileCheck %s -check-prefix=INL-MOD
; INL: IR Dump Before {{InlinerPass .*scc: .tester, foo}}
; INL: IR Dump Before InlinerPass on (tester, foo)
; INL-NOT: IR Dump After {{InlinerPass}}
; INL: IR Dump Before {{InlinerPass .*scc: .tester}}
; INL: IR Dump After {{InlinerPass .*scc: .tester}}
; INL: IR Dump Before InlinerPass on (tester)
; INL: IR Dump After InlinerPass on (tester)
; INL-MOD: IR Dump Before {{InlinerPass .*scc: .tester, foo}}
; INL-MOD: IR Dump After {{InlinerPass .*invalidated: .*scc: .tester, foo}}
; INL-MOD: IR Dump Before {{InlinerPass .*scc: .tester}}
; INL-MOD: IR Dump After {{InlinerPass .*scc: .tester}}
; INL-MOD: IR Dump Before InlinerPass on (tester, foo)
; INL-MOD: IR Dump After InlinerPass on (tester, foo) (invalidated)
; INL-MOD: IR Dump Before InlinerPass on (tester)
; INL-MOD: IR Dump After InlinerPass on (tester)
define void @tester() noinline {

View File

@ -20,12 +20,12 @@
; LEGACY: define void @tester()
; LEGACY-NEXT: call void @foo()
; INL: IR Dump After InlinerPass *** (scc: (foo, bar))
; INL: IR Dump After InlinerPass on (foo, bar) ***
; INL: define void @foo()
; INL-NEXT: call void @bar()
; INL: define void @bar()
; INL-NEXT: call void @foo()
; INL: IR Dump After InlinerPass *** (scc: (tester))
; INL: IR Dump After InlinerPass on (tester) ***
; INL: define void @tester()
; INL-NEXT: call void @foo()
@ -35,7 +35,7 @@
; LEGACY-MOD: define void @foo()
; LEGACY-MOD: define void @bar()
; INL-MOD-LABEL:*** IR Dump After InlinerPass *** (scc: (foo, bar))
; INL-MOD-LABEL:*** IR Dump After InlinerPass on (foo, bar) ***
; INL-MOD-NEXT: ModuleID =
; INL-MOD-NEXT: source_filename =
; INL-MOD: define void @tester()
@ -44,7 +44,7 @@
; INL-MOD-NEXT: call void @bar()
; INL-MOD: define void @bar()
; INL-MOD-NEXT: call void @foo()
; INL-MOD-LABEL:*** IR Dump After InlinerPass *** (scc: (tester))
; INL-MOD-LABEL:*** IR Dump After InlinerPass on (tester) ***
; INL-MOD-NEXT: ModuleID =
; INL-MOD-NEXT: source_filename =
; INL-MOD: define void @tester()

View File

@ -1,8 +1,8 @@
; RUN: llvm-as %s -o %t.bc
; RUN: llvm-lto2 run -r=%t.bc,foo,pxl -use-new-pm --print-before-all %t.bc -o %t2 2>&1 | FileCheck %s --check-prefix=CHECK-BEFORE
; RUN: llvm-lto2 run -r=%t.bc,foo,pxl -use-new-pm --print-after-all %t.bc -o %t3 2>&1 | FileCheck %s --check-prefix=CHECK-AFTER
; CHECK-BEFORE: *** IR Dump Before GlobalDCEPass ***
; CHECK-AFTER: *** IR Dump After GlobalDCEPass ***
; CHECK-BEFORE: *** IR Dump Before GlobalDCEPass
; CHECK-AFTER: *** IR Dump After GlobalDCEPass
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"