Skip to content

Commit 1ca251e

Browse files
committed
revert f978017
1 parent 2761415 commit 1ca251e

File tree

2 files changed

+3
-24
lines changed

2 files changed

+3
-24
lines changed

src/infer.jl

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,6 @@ mutable struct Frame
8686
edges::Vector{Any}
8787
stmts::Vector{Vector{Variable}}
8888
rettype::AType
89-
outer::Bool
9089
end
9190

9291
getblock(fr::Frame, b, follow) =
@@ -96,7 +95,7 @@ getblock(fr::Frame, b, follow) =
9695
# TODO clear up inlined edges
9796
uninline!(fr::Frame, b, follow) = deleteat!(fr.inlined[b], follow+1:length(fr.inlined[b]))
9897

99-
Frame(ir::IR; outer = false) = Frame(ir, [IR[] for _ = 1:length(blocks(ir))], [], keys.(blocks(ir)), Union{}, outer)
98+
Frame(ir::IR) = Frame(ir, [IR[] for _ = 1:length(blocks(ir))], [], keys.(blocks(ir)), Union{})
10099

101100
function frame(ir::IR, args...)
102101
prepare_ir!(ir)
@@ -201,7 +200,7 @@ function step!(inf::Inference)
201200
error("Unrecognised expression $(st.expr)")
202201
end
203202
elseif (brs = openbranches(block); length(brs) == 1 && !isreturn(brs[1])
204-
&& !(frame.outer && brs[1].block == length(frame.ir.blocks)))
203+
&& !(brs[1].block == length(frame.ir.blocks)))
205204
inferbranch!(inf, frame, b, f, brs[1])
206205
else
207206
for br in brs
@@ -250,19 +249,3 @@ function return_type(ir::IR, args...)
250249
infer!(inf)
251250
return fr.rettype
252251
end
253-
254-
function inlineable(ir::IR, inf::Inference)
255-
for (v, st) in ir
256-
Ts = exprtype.((ir,), st.expr.args)
257-
haskey(inf.frames, Ts) && return (v, Ts)
258-
end
259-
end
260-
261-
function inlineall(ir::IR, inf::Inference)
262-
while (next = inlineable(ir, inf)) != nothing
263-
v, Ts = next
264-
subir = inf.frames[Ts].ir
265-
ir = inline(ir, v, subir)
266-
end
267-
return ir
268-
end

src/trace.jl

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,7 @@ function abstract!(tr, bl, env)
133133
for i = 1:length(args)
134134
argtypes(ir)[i] = exprtype(tr.ir, rename(env, args[i]))
135135
end
136-
inf = Inference(Frame(ir, outer = true), tr.primitives)
137-
infer!(inf)
138-
# TODO weird that we need to expand here; perhaps inlining is impicitly pruning
139-
# somehow.
140-
ir = inlineall(ir, inf) |> expand!
136+
infer!(Inference(Frame(ir), tr.primitives))
141137
inline!(tr.ir, ir, rename.((env,), args))
142138
for (k, v) in zip(arguments(block(bl.ir, after)), arguments(blocks(tr.ir)[end]))
143139
env[k] = v

0 commit comments

Comments
 (0)