Displaying 3 results from an estimated 3 matches for "negsetcc".
Did you mean:
getsetcc
2019 Jun 02
2
Optimizing Compare instruction selection
...y, LLVM attempts to physically use the result of a CMP instruction through a function call by storing it on a temporary register. This is found before the doSmth function call,
t30: i16 = CMPkr16 t4, TargetConstant:i16<0>
t36: ch,glue = CopyToReg t0, Register:i16 $sr, t30
t32: i16 = NEGSETCC TargetConstant:i16<4>, t36:1
And this is generated after the call
t35: ch,glue = CopyToReg t0, Register:i16 $sr, t30
t31: i16 = SELCC t19, t18, TargetConstant:i16<4>, t35:1
t21: ch,glue = CopyToReg t18:1, Register:i16 $r0, t31
NEGSETCC and SELCC are genuine instructions...
2019 Jun 05
2
Optimizing Compare instruction selection
...hysically use the result of a CMP instruction through a function call by storing it on a temporary register. This is found before the doSmth function call,
>
> t30: i16 = CMPkr16 t4, TargetConstant:i16<0>
> t36: ch,glue = CopyToReg t0, Register:i16 $sr, t30
> t32: i16 = NEGSETCC TargetConstant:i16<4>, t36:1
>
>
> And this is generated after the call
>
> t35: ch,glue = CopyToReg t0, Register:i16 $sr, t30
> t31: i16 = SELCC t19, t18, TargetConstant:i16<4>, t35:1
> t21: ch,glue = CopyToReg t18:1, Register:i16 $r0, t31
>
&g...
2019 Jun 01
2
Optimizing Compare instruction selection
I attempt to optimize the use of the ‘CMP’ instruction on my architecture by removing the instruction instances where the Status Register already had the correct status flags.
The cmp instruction in my architecture is the typical one that compares two registers, or a register with an immediate, and sets the Status Flags accordingly. I implemented my ‘cmp’ instruction in LLVM by custom lowering