Displaying 4 results from an estimated 4 matches for "addtargetflag".
2012 Oct 29
3
[LLVMdev] [llvm-commits] [llvm] r162770 - in /llvm/trunk: include/llvm/CodeGen/MachineOperand.h lib/CodeGen/MachineInstr.cpp
...gt; /// operands.
> @@ -176,9 +179,17 @@
> ///
> MachineOperandType getType() const { return
> (MachineOperandType)OpKind; }
>
> - unsigned char getTargetFlags() const { return TargetFlags; }
> - void setTargetFlags(unsigned char F) { TargetFlags = F; }
> - void addTargetFlag(unsigned char F) { TargetFlags |= F; }
> + unsigned char getTargetFlags() const {
> + return isReg() ? 0 : TargetFlags;
> + }
> + void setTargetFlags(unsigned char F) {
> + assert(!isReg() && "Register operands can't have target flags");
> + Targe...
2012 Oct 29
0
[LLVMdev] [llvm-commits] [llvm] r162770 - in /llvm/trunk: include/llvm/CodeGen/MachineOperand.h lib/CodeGen/MachineInstr.cpp
...@ -176,9 +179,17 @@
>> ///
>> MachineOperandType getType() const { return
>> (MachineOperandType)OpKind; }
>>
>> - unsigned char getTargetFlags() const { return TargetFlags; }
>> - void setTargetFlags(unsigned char F) { TargetFlags = F; }
>> - void addTargetFlag(unsigned char F) { TargetFlags |= F; }
>> + unsigned char getTargetFlags() const {
>> + return isReg() ? 0 : TargetFlags;
>> + }
>> + void setTargetFlags(unsigned char F) {
>> + assert(!isReg() && "Register operands can't have target flags&quo...
2012 Oct 29
2
[LLVMdev] [llvm-commits] [llvm] r162770 - in /llvm/trunk: include/llvm/CodeGen/MachineOperand.h lib/CodeGen/MachineInstr.cpp
...///
> >> MachineOperandType getType() const { return
> >> (MachineOperandType)OpKind; }
> >>
> >> - unsigned char getTargetFlags() const { return TargetFlags; }
> >> - void setTargetFlags(unsigned char F) { TargetFlags = F; }
> >> - void addTargetFlag(unsigned char F) { TargetFlags |= F; }
> >> + unsigned char getTargetFlags() const {
> >> + return isReg() ? 0 : TargetFlags; } void
> >> + setTargetFlags(unsigned char F) {
> >> + assert(!isReg() && "Register operands can't have target...
2012 Aug 06
4
[LLVMdev] Register Coalescer does not preserve TargetFlag
...uot;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 preserve TargetFlag in the JoinCopy() member function.
For ins...