MachineOperand Fixed Register

Is there any way to determine if a Register-type MachineOperand
represents a fixed machine register? For example, call arguments must
end up in specific machine register but I don't see any way to ascertain
this from the information in MachineOperand. Basically, I need to know
if I am allowed to rename a MachineOperand or not after register
allocation.

Thanks!

                           -David

I think the anti-dependency breakers in the post-RA scheduler can do that.

/jakob

Jakob Stoklund Olesen <stoklund@2pi.dk> writes:

Is there any way to determine if a Register-type MachineOperand
represents a fixed machine register? For example, call arguments must
end up in specific machine register but I don't see any way to ascertain
this from the information in MachineOperand. Basically, I need to know
if I am allowed to rename a MachineOperand or not after register
allocation.

I think the anti-dependency breakers in the post-RA scheduler can do that.

Ok, will take a look, thanks!

I think I've cobbled something together that works by not allowing
manipulation of call operands, implicit defs/uses (which could be
"wired" registers) and any operand of "hasExtraSrcRegAllocReq()"
instructions. Seems to cover it for now, anyway, though it may be too
restrictive.

                        -David