Extraneous mov
in Pulley bytecode after register allocation
#9942
Labels
pulley
Issues related to the Pulley interpreter
Given this input CLIF:
I'm currently seeing on
main
Notably instruction at 12,
xmov x5, x21
, I'm not sure why that exists. In theory that should not be there and the subsequentxadd32
should bexadd32 x0, x21, x0
and that would remove the need for the insertion of thexmov
. Thisxmov
is being inserted as part of register allocation as logging shows that the input program is:On aarch64 I see:
which does the right thing after the call instruction at 10 and the
add
instruction at 14 doesn't have amov
in front. Additionally for x64 it also looks "correct":Notably the
addl
has no precedingmov
instruction.Is this the Pulley backend perhaps missing something with respect to regalloc metadata?
The generated
get_operands
method for the instruction here is:which is in theory pretty similar to how x64/aarch64 both work. I'm not sure if this is falling off a regalloc heuristic or a meaningful difference between x64/aarch64 though.
The text was updated successfully, but these errors were encountered: