@@ -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+
5660llvm::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