There is an issue related to how the register scheduler or peephole optimizer (for save/restores) handles arch::Instruction::is_save_restore. In trying to set this flag to true in arch/x86-64/outline.cc for the argument copying stuff, it is clear that stuff screws up quickly because multiple VRs end up being mapped to the same slot! This is almost certainly related to some changes in my outline-call branch that make the VR system greedy w.r.t. virtual registers, but I haven't had time to think through the issue. Also of concern is whether or not this affects flag save/restore, as that uses the is_save_restore flag as well.
There is an issue related to how the register scheduler or peephole optimizer (for save/restores) handles
arch::Instruction::is_save_restore
. In trying to set this flag totrue
inarch/x86-64/outline.cc
for the argument copying stuff, it is clear that stuff screws up quickly because multiple VRs end up being mapped to the same slot! This is almost certainly related to some changes in myoutline-call
branch that make the VR system greedy w.r.t. virtual registers, but I haven't had time to think through the issue. Also of concern is whether or not this affects flag save/restore, as that uses theis_save_restore
flag as well.