Skip to content

Commit

Permalink
inlining: Mark inserted PiNodes for refinement
Browse files Browse the repository at this point in the history
For extended lattice elements, the type of the resulting PiNode can end
up imprecise when `tmeet(argextype(argex), mft) ⊑ mft`
  • Loading branch information
topolarity committed Apr 15, 2024
1 parent 13d4f0e commit ebd3e24
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion base/compiler/ssair/inlining.jl
Expand Up @@ -565,8 +565,9 @@ function ir_inline_unionsplit!(compact::IncrementalCompact, idx::Int, argexprs::
(isa(argex, SSAValue) || isa(argex, Argument)) || continue
aft, mft = fieldtype(atype, i), fieldtype(mtype, i)
if !(aft <: mft)
flag = IR_FLAG_REFINED
argexprs′[i] = insert_node_here!(compact,
NewInstruction(PiNode(argex, mft), mft, line))
NewInstruction(PiNode(argex, mft), mft, NoCallInfo(), line, flag))
end
end
end
Expand Down

0 comments on commit ebd3e24

Please sign in to comment.