Skip to content

Commit 3df1208

Browse files
authored
Adjust to .result -> .optresult change for OptimizationState (#634)
* 2.17: Fix `.result` -> `.optresult` change for nightly * Bump version * Adjust to more changes from JuliaLang/julia/pull/57979 * Retrieve `interp` from `OptimizationState` --------- Co-authored-by: Cédric Belmant <[email protected]>
1 parent e65f88f commit 3df1208

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
authors = ["Valentin Churavy <[email protected]> and contributors"]
22
name = "Cthulhu"
33
uuid = "f68482b8-f384-11e8-15f7-abe071a5a75f"
4-
version = "2.17.1"
4+
version = "2.17.2"
55

66
[compat]
77
CodeTracking = "0.5, 1"

src/interpreter.jl

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -116,12 +116,14 @@ function cthulhu_finish(@specialize(finishfunc), state::InferenceState, interp::
116116
return res
117117
end
118118

119-
function create_cthulhu_source(@nospecialize(opt), effects::Effects)
120-
isa(opt, OptimizationState) || return opt
119+
function create_cthulhu_source(result::InferenceResult, effects::Effects)
120+
isa(result.src, OptimizationState) || return result.src
121+
opt = result.src
121122
@static if VERSION v"1.13-"
122-
result = opt.result::CC.OptimizationResult
123-
result.simplified || CC.simplify_ir!(result)
124-
ir = CC.compact!(copy(result.ir))
123+
optresult = opt.optresult::CC.OptimizationResult
124+
optresult.simplified || CC.simplify_ir!(optresult)
125+
opt.src.inlining_cost = CC.compute_inlining_cost(opt.inlining.interp, result, optresult)
126+
ir = CC.compact!(copy(optresult.ir))
125127
else
126128
# get the (theoretically) same effect as the jl_compress_ir -> jl_uncompress_ir -> inflate_ir round-trip
127129
ir = CC.compact!(CC.cfg_simplify!(CC.copy(opt.ir::IRCode)))
@@ -130,7 +132,7 @@ function create_cthulhu_source(@nospecialize(opt), effects::Effects)
130132
end
131133

132134
function set_cthulhu_source!(result::InferenceResult)
133-
result.src = create_cthulhu_source(result.src, result.ipo_effects)
135+
result.src = create_cthulhu_source(result, result.ipo_effects)
134136
end
135137

136138
CC.finishinfer!(state::InferenceState, interp::CthulhuInterpreter, cycleid::Int) = cthulhu_finish(CC.finishinfer!, state, interp, cycleid)
@@ -148,7 +150,7 @@ function CC.src_inlining_policy(interp::CthulhuInterpreter,
148150
return false
149151
else
150152
@assert src isa CC.IRCode || src === nothing "invalid Cthulhu code cache"
151-
# the default inlining policy may try additional effor to find the source in a local cache
153+
# the default inlining policy may try additional effort to find the source in a local cache
152154
return @invoke CC.src_inlining_policy(interp::AbstractInterpreter,
153155
src::Any, info::CCCallInfo, stmt_flag::UInt32)
154156
end

0 commit comments

Comments
 (0)