Skip to content

Commit 7d2d2f6

Browse files
Merge pull request #40479 from nate-chandler/sil/print-final-ossa-module
[SILOptimizer] Add flag to print pre-OSSA lowering.
2 parents 2d12fab + fece6ef commit 7d2d2f6

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

lib/SILOptimizer/PassManager/PassPipeline.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ static llvm::cl::opt<bool> SILPrintCanonicalModule(
5252
"sil-print-canonical-module", llvm::cl::init(false),
5353
llvm::cl::desc("Print the textual SIL module after diagnostics"));
5454

55+
static llvm::cl::opt<bool> SILPrintFinalOSSAModule(
56+
"sil-print-final-ossa-module", llvm::cl::init(false),
57+
llvm::cl::desc("Print the textual SIL module before lowering from OSSA"));
58+
5559
static llvm::cl::opt<bool> SILViewSILGenCFG(
5660
"sil-view-silgen-cfg", llvm::cl::init(false),
5761
llvm::cl::desc("Enable the sil cfg viewer pass before diagnostics"));
@@ -549,6 +553,9 @@ static void addPerfEarlyModulePassPipeline(SILPassPipelinePlan &P) {
549553
if (P.getOptions().StopOptimizationBeforeLoweringOwnership)
550554
return;
551555

556+
if (SILPrintFinalOSSAModule) {
557+
addModulePrinterPipeline(P, "SIL Print Final OSSA Module");
558+
}
552559
P.addNonTransparentFunctionOwnershipModelEliminator();
553560
}
554561

@@ -568,6 +575,9 @@ static void addPerfEarlyModulePassPipeline(SILPassPipelinePlan &P) {
568575
if (P.getOptions().StopOptimizationBeforeLoweringOwnership)
569576
return;
570577

578+
if (SILPrintFinalOSSAModule) {
579+
addModulePrinterPipeline(P, "SIL Print Final OSSA Module");
580+
}
571581
P.addNonTransparentFunctionOwnershipModelEliminator();
572582
}
573583

0 commit comments

Comments
 (0)