mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-25 09:06:06 +00:00
[llc] Respect --print-pipeline-passes when using -passes (#80940)
This commit is contained in:
parent
5a83bccb35
commit
eaab6abd79
11
llvm/test/tools/llc/new-pm/pipeline.mir
Normal file
11
llvm/test/tools/llc/new-pm/pipeline.mir
Normal file
@ -0,0 +1,11 @@
|
||||
# RUN: llc -mtriple=x86_64-pc-linux-gnu -x mir -passes=no-op-machine-function --print-pipeline-passes -filetype=null < %s | FileCheck %s --match-full-lines
|
||||
|
||||
# CHECK: IR pipeline: PrintMIRPreparePass
|
||||
# CHECK: MIR pipeline: no-op-machine-function,print,FreeMachineFunctionPass
|
||||
|
||||
---
|
||||
name: f
|
||||
body: |
|
||||
bb.0:
|
||||
RET 0
|
||||
...
|
@ -190,9 +190,6 @@ int llvm::compileModuleWithNewPM(
|
||||
auto &MMI = MFAM.getResult<MachineModuleAnalysis>(*M).getMMI();
|
||||
if (MIR->parseMachineFunctions(*M, MMI))
|
||||
return 1;
|
||||
|
||||
RunPasses(BOS.get(), Out.get(), M.get(), Context, Buffer, &MPM, &MAM, MFPM,
|
||||
MFAM);
|
||||
} else {
|
||||
ExitOnErr(LLVMTM.buildCodeGenPipeline(MPM, MFPM, MFAM, *OS,
|
||||
DwoOut ? &DwoOut->os() : nullptr,
|
||||
@ -200,36 +197,35 @@ int llvm::compileModuleWithNewPM(
|
||||
|
||||
auto StartStopInfo = TargetPassConfig::getStartStopInfo(PIC);
|
||||
assert(StartStopInfo && "Expect StartStopInfo!");
|
||||
// Add IR or MIR printing pass according the pass type.
|
||||
|
||||
if (auto StopPassName = StartStopInfo->StopPass; !StopPassName.empty()) {
|
||||
MFPM.addPass(PrintMIRPass(*OS));
|
||||
MFPM.addPass(FreeMachineFunctionPass());
|
||||
}
|
||||
|
||||
if (PrintPipelinePasses) {
|
||||
std::string IRPipeline;
|
||||
raw_string_ostream IRSOS(IRPipeline);
|
||||
MPM.printPipeline(IRSOS, [&PIC](StringRef ClassName) {
|
||||
auto PassName = PIC.getPassNameForClassName(ClassName);
|
||||
return PassName.empty() ? ClassName : PassName;
|
||||
});
|
||||
outs() << "IR pipeline: " << IRPipeline << '\n';
|
||||
|
||||
std::string MIRPipeline;
|
||||
raw_string_ostream MIRSOS(MIRPipeline);
|
||||
MFPM.printPipeline(MIRSOS, [&PIC](StringRef ClassName) {
|
||||
auto PassName = PIC.getPassNameForClassName(ClassName);
|
||||
return PassName.empty() ? ClassName : PassName;
|
||||
});
|
||||
outs() << "MIR pipeline: " << MIRPipeline << '\n';
|
||||
return 0;
|
||||
}
|
||||
|
||||
RunPasses(BOS.get(), Out.get(), M.get(), Context, Buffer, &MPM, &MAM, MFPM,
|
||||
MFAM);
|
||||
}
|
||||
|
||||
if (PrintPipelinePasses) {
|
||||
std::string IRPipeline;
|
||||
raw_string_ostream IRSOS(IRPipeline);
|
||||
MPM.printPipeline(IRSOS, [&PIC](StringRef ClassName) {
|
||||
auto PassName = PIC.getPassNameForClassName(ClassName);
|
||||
return PassName.empty() ? ClassName : PassName;
|
||||
});
|
||||
outs() << "IR pipeline: " << IRPipeline << '\n';
|
||||
|
||||
std::string MIRPipeline;
|
||||
raw_string_ostream MIRSOS(MIRPipeline);
|
||||
MFPM.printPipeline(MIRSOS, [&PIC](StringRef ClassName) {
|
||||
auto PassName = PIC.getPassNameForClassName(ClassName);
|
||||
return PassName.empty() ? ClassName : PassName;
|
||||
});
|
||||
outs() << "MIR pipeline: " << MIRPipeline << '\n';
|
||||
return 0;
|
||||
}
|
||||
|
||||
RunPasses(BOS.get(), Out.get(), M.get(), Context, Buffer, &MPM, &MAM, MFPM,
|
||||
MFAM);
|
||||
|
||||
// Declare success.
|
||||
Out->keep();
|
||||
if (DwoOut)
|
||||
|
Loading…
x
Reference in New Issue
Block a user