982982
983983# run the optimization work
984984function optimize (interp:: AbstractInterpreter , opt:: OptimizationState , caller:: InferenceResult )
985- @timeit " optimizer " ir = run_passes_ipo_safe (opt. src, opt)
985+ @zone " CC: OPTIMIZER " ir = run_passes_ipo_safe (opt. src, opt)
986986 ipo_dataflow_analysis! (interp, opt, ir, caller)
987987 finishopt! (interp, opt, ir)
988988 return nothing
@@ -992,7 +992,7 @@ const ALL_PASS_NAMES = String[]
992992macro pass (name:: String , expr)
993993 optimize_until = esc (:optimize_until )
994994 stage = esc (:__stage__ )
995- macrocall = :(@timeit $ name $ (esc (expr)))
995+ macrocall = :(@zone $ name $ (esc (expr)))
996996 macrocall. args[2 ] = __source__ # `@timeit` may want to use it
997997 push! (ALL_PASS_NAMES, name)
998998 quote
@@ -1017,20 +1017,20 @@ function run_passes_ipo_safe(
10171017
10181018 __stage__ = 0 # used by @pass
10191019 # NOTE: The pass name MUST be unique for `optimize_until::String` to work
1020- @pass " convert " ir = convert_to_ircode (ci, sv)
1021- @pass " slot2reg " ir = slot2reg (ir, ci, sv)
1020+ @pass " CC: CONVERT " ir = convert_to_ircode (ci, sv)
1021+ @pass " CC: SLOT2REG " ir = slot2reg (ir, ci, sv)
10221022 # TODO : Domsorting can produce an updated domtree - no need to recompute here
1023- @pass " compact 1 " ir = compact! (ir)
1024- @pass " inlining " ir = ssa_inlining_pass! (ir, sv. inlining, ci. propagate_inbounds)
1025- # @timeit "verify 2" verify_ir(ir)
1026- @pass " compact 2 " ir = compact! (ir)
1027- @pass " SROA" ir = sroa_pass! (ir, sv. inlining)
1028- @pass " ADCE" (ir, made_changes) = adce_pass! (ir, sv. inlining)
1023+ @pass " CC: COMPACT_1 " ir = compact! (ir)
1024+ @pass " CC: INLINING " ir = ssa_inlining_pass! (ir, sv. inlining, ci. propagate_inbounds)
1025+ # @zone "CC: VERIFY 2" verify_ir(ir)
1026+ @pass " CC: COMPACT_2 " ir = compact! (ir)
1027+ @pass " CC: SROA" ir = sroa_pass! (ir, sv. inlining)
1028+ @pass " CC: ADCE" (ir, made_changes) = adce_pass! (ir, sv. inlining)
10291029 if made_changes
1030- @pass " compact 3 " ir = compact! (ir, true )
1030+ @pass " CC: COMPACT_3 " ir = compact! (ir, true )
10311031 end
10321032 if is_asserts ()
1033- @timeit " verify 3 " begin
1033+ @zone " CC: VERIFY_3 " begin
10341034 verify_ir (ir, true , false , optimizer_lattice (sv. inlining. interp), sv. linfo)
10351035 verify_linetable (ir. debuginfo, length (ir. stmts))
10361036 end
@@ -1291,10 +1291,10 @@ end
12911291function slot2reg (ir:: IRCode , ci:: CodeInfo , sv:: OptimizationState )
12921292 # need `ci` for the slot metadata, IR for the code
12931293 svdef = sv. linfo. def
1294- @timeit " domtree 1 " domtree = construct_domtree (ir)
1294+ @zone " CC: DOMTREE_1 " domtree = construct_domtree (ir)
12951295 defuse_insts = scan_slot_def_use (Int (ci. nargs), ci, ir. stmts. stmt)
12961296 𝕃ₒ = optimizer_lattice (sv. inlining. interp)
1297- @timeit " construct_ssa " ir = construct_ssa! (ci, ir, sv, domtree, defuse_insts, 𝕃ₒ) # consumes `ir`
1297+ @zone " CC: CONSTRUCT_SSA " ir = construct_ssa! (ci, ir, sv, domtree, defuse_insts, 𝕃ₒ) # consumes `ir`
12981298 # NOTE now we have converted `ir` to the SSA form and eliminated slots
12991299 # let's resize `argtypes` now and remove unnecessary types for the eliminated slots
13001300 resize! (ir. argtypes, ci. nargs)
0 commit comments