You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Notably instruction at 12, xmov x5, x21, I'm not sure why that exists. In theory that should not be there and the subsequent xadd32 should be xadd32 x0, x21, x0 and that would remove the need for the insertion of the xmov. This xmov is being inserted as part of register allocation as logging shows that the input program is:
which does the right thing after the call instruction at 10 and the add instruction at 14 doesn't have a mov in front. Additionally for x64 it also looks "correct":
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:
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: