diff --git a/src/abstractinterpret/abstractanalyzer.jl b/src/abstractinterpret/abstractanalyzer.jl index 558980b0d..3115ccf0a 100644 --- a/src/abstractinterpret/abstractanalyzer.jl +++ b/src/abstractinterpret/abstractanalyzer.jl @@ -550,7 +550,7 @@ CC.InferenceParams(analyzer::AbstractAnalyzer) = get_inf_params(analyzer) CC.OptimizationParams(analyzer::AbstractAnalyzer) = get_opt_params(analyzer) #=CC.=#get_inference_world(analyzer::AbstractAnalyzer) = get_world(analyzer) -CC.may_compress(analyzer::AbstractAnalyzer) = false +# this overload is necessary to avoid caching with the const ABI CC.may_discard_trees(analyzer::AbstractAnalyzer) = false let # overload `inlining_policy` diff --git a/src/analyzers/jetanalyzer.jl b/src/analyzers/jetanalyzer.jl index 463bfbd5e..2abbb2ca3 100644 --- a/src/analyzers/jetanalyzer.jl +++ b/src/analyzers/jetanalyzer.jl @@ -80,6 +80,9 @@ struct JETAnalyzer{RP<:ReportPass} <: AbstractAnalyzer end end +# JETAnalyzer does not need any sources, so discard them always +CC.maybe_compress_codeinfo(interp::JETAnalyzer, mi::MethodInstance, ci::CodeInfo) = nothing + # JETAnalyzer hooks on abstract interpretation only, # and so the cost of running the optimization passes is just unnecessary CC.may_optimize(::JETAnalyzer) = false