Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions SnoopCompileCore/src/snoopi_deep.jl
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,14 @@ function addchildren!(parent::InferenceTimingNode, t::Core.Compiler.Timings.Timi
end

function start_deep_timing()
Core.Compiler.Timings.reset_timings()
Core.Compiler.__set_measure_typeinf(true)
end
function stop_deep_timing()
Core.Compiler.__set_measure_typeinf(false)
Core.Compiler.Timings.close_current_timer()
end

function finish_snoopi_deep()
return InferenceTimingNode(Core.Compiler.Timings._timings[1])
return [InferenceTimingNode(tree) for tree in Core.Compiler.Timings.clear_and_fetch_timings()]
end

function _snoopi_deep(cmd::Expr)
Expand Down
31 changes: 22 additions & 9 deletions SnoopPrecompile/src/SnoopPrecompile.jl
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,29 @@ macro precompile_all_calls(ex::Expr)
end
end
if have_inference_tracking
ex = quote
Core.Compiler.Timings.reset_timings()
Core.Compiler.__set_measure_typeinf(true)
try
$ex
finally
Core.Compiler.__set_measure_typeinf(false)
Core.Compiler.Timings.close_current_timer()
ex = if isdefined(Core.Compiler.Timings, :clear_and_fetch_timings)
# use new thread-safe timings API if it's available in this version of Julia
quote
Core.Compiler.__set_measure_typeinf(true)
try
$ex
finally
Core.Compiler.__set_measure_typeinf(false)
end
$SnoopPrecompile.precompile_roots(Core.Compiler.Timings.clear_and_fetch_timings())
end
else
quote
Core.Compiler.Timings.reset_timings()
Core.Compiler.__set_measure_typeinf(true)
try
$ex
finally
Core.Compiler.__set_measure_typeinf(false)
Core.Compiler.Timings.close_current_timer()
end
$SnoopPrecompile.precompile_roots(Core.Compiler.Timings._timings[1].children)
end
$SnoopPrecompile.precompile_roots(Core.Compiler.Timings._timings[1].children)
end
end
return esc(quote
Expand Down