Skip to content

Commit 9f2f33b

Browse files
authored
perf: more brave dead variable elimination (#12365)
1 parent f5e5914 commit 9f2f33b

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/Lean/Compiler/LCNF/ElimDead.lean

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,12 @@ partial def Code.elimDead (code : Code pu) : M (Code pu) := do
9696
| .jmp fvarId args => collectFVarM fvarId; args.forM collectArgM; return code
9797
| .unreach .. => return code
9898
| .uset var _ y k _ | .sset var _ _ y _ k _ =>
99-
collectFVarM var
100-
collectFVarM y
101-
return code.updateCont! (← k.elimDead)
99+
let k ← k.elimDead
100+
if (← get).contains var then
101+
collectFVarM y
102+
return code.updateCont! k
103+
else
104+
return k
102105

103106
end
104107

0 commit comments

Comments
 (0)