Displaying 3 results from an estimated 3 matches for "next_mo".
Did you mean:
next_mm
2012 Aug 06
4
[LLVMdev] Register Coalescer does not preserve TargetFlag
...9;m trying to rework this : I'd like that a "DST = FNEG SRC" custom Emitter lowering pass replaces every occurence of DST by SRC and set the corresponding TargetFlag in the process. Something like this :
MachineOperand *MO = &(MI->getOperand(0));
while(MO) {
MachineOperand *next_MO = MO->getNextOperandForReg();
MO->addTargetFlag(MO_FLAG_NEG);
MO->setReg(MI->getOperand(1).getReg());
MO = next_MO;
}
As far as I can tell, this works as every register are still virtual when lowering custom Emitter instructions. However the RegisterCoalescer pass does not preser...
2012 Aug 06
0
[LLVMdev] Register Coalescer does not preserve TargetFlag
...t;
> The following code snippet :
>
>
> void R600ModifiersPropagation::substituteReg(MachineOperand &def_MO, unsigned new_reg, unsigned char flag) {
> MachineOperand * MO = def_MO.getNextOperandForReg();
> while (MO && MO->isUse()) {
> MachineOperand *next_MO = MO->getNextOperandForReg();
> MO->dump();
>
> MO = next_MO;
> }
> }
>
> displays instructions that are before the one I'm passing as def_MO. I'm not sure if I should call some Analysis pass to enforce MachineOperand order or not.
We make no guarante...
2012 Aug 06
3
[LLVMdev] Register Coalescer does not preserve TargetFlag
...t :
>>
>>
>> void R600ModifiersPropagation::substituteReg(MachineOperand &def_MO,
> unsigned new_reg, unsigned char flag) {
>> MachineOperand * MO = def_MO.getNextOperandForReg();
>> while (MO && MO->isUse()) {
>> MachineOperand *next_MO = MO->getNextOperandForReg();
>> MO->dump();
>>
>> MO = next_MO;
>> }
>> }
>>
>> displays instructions that are before the one I'm passing as def_MO.
> I'm not sure if I should call some Analysis pass to enforce MachineOpe...