Skip to content

Commit bb1d321

Browse files
committed
PassManager: add an option -sil-min-pass-time to only print long running passes
1 parent 00c14fa commit bb1d321

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

lib/SILOptimizer/PassManager/PassManager.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ llvm::cl::opt<bool> SILPrintPassTime(
5353
"sil-print-pass-time", llvm::cl::init(false),
5454
llvm::cl::desc("Print the execution time of each SIL pass"));
5555

56+
llvm::cl::opt<unsigned> SILMinPassTime(
57+
"sil-min-pass-time", llvm::cl::init(0),
58+
llvm::cl::desc("The minimum number of milliseconds for which a pass is printed with -sil-print-pass-time"));
59+
5660
llvm::cl::opt<bool> SILPrintLast(
5761
"sil-print-last", llvm::cl::init(false),
5862
llvm::cl::desc("Print the last optimized function before and after the last pass"));
@@ -619,8 +623,10 @@ void SILPassManager::runPassOnFunction(unsigned TransIdx, SILFunction *F) {
619623
totalPassRuntime += duration;
620624
if (SILPrintPassTime) {
621625
double milliSecs = (double)duration.count() / 1000000.;
622-
llvm::dbgs() << llvm::format("%9.3f", milliSecs) << " ms: " << SFT->getTag()
623-
<< " @" << F->getName() << "\n";
626+
if (milliSecs > (double)SILMinPassTime) {
627+
llvm::dbgs() << llvm::format("%9.3f", milliSecs) << " ms: " << SFT->getTag()
628+
<< " #" << NumPassesRun << " @" << F->getName() << "\n";
629+
}
624630
}
625631

626632
if (numRepeats > 1)
@@ -783,7 +789,10 @@ void SILPassManager::runModulePass(unsigned TransIdx) {
783789

784790
if (SILPrintPassTime) {
785791
double milliSecs = (double)duration.count() / 1000000.;
786-
llvm::dbgs() << llvm::format("%9.3f", milliSecs) << " ms: " << SMT->getTag() << "\n";
792+
if (milliSecs > (double)SILMinPassTime) {
793+
llvm::dbgs() << llvm::format("%9.3f", milliSecs) << " ms: " << SMT->getTag()
794+
<< " #" << NumPassesRun << "\n";
795+
}
787796
}
788797

789798
// If this pass invalidated anything, print and verify.

0 commit comments

Comments
 (0)