diff --git a/mlir/lib/Pass/Pass.cpp b/mlir/lib/Pass/Pass.cpp --- a/mlir/lib/Pass/Pass.cpp +++ b/mlir/lib/Pass/Pass.cpp @@ -494,8 +494,14 @@ #ifndef EXPENSIVE_CHECKS runVerifierNow = !pass->passState->preservedAnalyses.isAll(); #endif - if (runVerifierNow) + if (runVerifierNow) { + // Push a timing scope for the verifier. + TimingScope timingScope; + if (pi) + timingScope = pi->getCurrentTimer().nest("Verifier"); + passFailed = failed(verify(op, runVerifierRecursively)); + } } // Instrument after the pass has run. diff --git a/mlir/test/Pass/pass-timing.mlir b/mlir/test/Pass/pass-timing.mlir --- a/mlir/test/Pass/pass-timing.mlir +++ b/mlir/test/Pass/pass-timing.mlir @@ -16,14 +16,17 @@ // PIPELINE: Total Execution Time: // PIPELINE: Name // PIPELINE-NEXT: Parser -// PIPELINE-NEXT: 'func.func' Pipeline +// PIPELINE-NEXT: func.func' Pipeline // PIPELINE-NEXT: CSE // PIPELINE-NEXT: (A) DominanceInfo // PIPELINE-NEXT: Canonicalizer +// PIPELINE-NEXT: Verifier // PIPELINE-NEXT: CSE // PIPELINE-NEXT: (A) DominanceInfo // PIPELINE-NEXT: TestTimingScopePass // PIPELINE-NEXT: Test Timing Scope +// PIPELINE-NEXT: Verifier +// PIPELINE-NEXT: Verifier // PIPELINE-NEXT: Output // PIPELINE-NEXT: Rest // PIPELINE-NEXT: Total @@ -40,12 +43,14 @@ // MT_PIPELINE: Total Execution Time: // MT_PIPELINE: Name // MT_PIPELINE-NEXT: Parser -// MT_PIPELINE-NEXT: 'func.func' Pipeline -// MT_PIPELINE-NEXT: CSE -// MT_PIPELINE-NEXT: (A) DominanceInfo -// MT_PIPELINE-NEXT: Canonicalizer -// MT_PIPELINE-NEXT: CSE -// MT_PIPELINE-NEXT: (A) DominanceInfo +// MT_PIPELINE-NEXT: Verifier +// MT_PIPELINE-NEXT: 'func.func' Pipeline +// MT_PIPELINE-NEXT: CSE +// MT_PIPELINE-NEXT: (A) DominanceInfo +// MT_PIPELINE-NEXT: Canonicalizer +// MT_PIPELINE-NEXT: Verifier +// MT_PIPELINE-NEXT: CSE +// MT_PIPELINE-NEXT: (A) DominanceInfo // MT_PIPELINE-NEXT: Output // MT_PIPELINE-NEXT: Rest // MT_PIPELINE-NEXT: Total