Displaying 5 results from an estimated 5 matches for "andiwrdk".
2011 Mar 25
2
[LLVMdev] Possible missed optimization?
...the code before regalloc:
Live Ins: %R25R24
%vreg0<def> = COPY %R25R24; DREGS:%vreg0
%vreg2<def> = COPY %vreg0; PTRREGS:%vreg2 DREGS:%vreg0
%vreg1<def> = LDWRd %vreg2; mem:LD2[%a](align=1)(tbaa=!"int")
DLDREGS:%vreg1 PTRREGS:%vreg2
%vreg3<def> = ANDIWRdK %vreg1, 255; DLDREGS:%vreg3,%vreg1
%vreg5<def> = COPY %vreg0; PTRREGS:%vreg5 DREGS:%vreg0
STWRr %vreg5, %vreg3<kill>; mem:ST2[%a](align=1)(tbaa=!"int")
PTRREGS:%vreg5 DLDREGS:%vreg3
RET
>From above, the 3rd COPY instruction is redundant since it does exactly th...
2011 Mar 26
2
[LLVMdev] Possible missed optimization?
...2147483648
0L BB#0: derived from LLVM BB %entry
Live Ins: %R25R24
32L %vreg5<def> = COPY %R25R24; PTRREGS:%vreg5
48L %vreg6<def> = LDWRd %vreg5<kill>;
mem:LD2[%a](align=1)(tbaa=!"int") DLDREGS:%vreg6 PTRREGS:%vreg5
80L %vreg6<def> = ANDIWRdK %vreg6, 255; DLDREGS:%vreg6
96L %vreg8<def> = COPY %R25R24<kill>; PTRREGS:%vreg8
112L STWRr %vreg8<kill>, %vreg6<kill>;
mem:ST2[%a](align=1)(tbaa=!"int") PTRREGS:%vreg8 DLDREGS:%vreg6
128L RET
What i see is the first copy getting coalesced so...
2011 Mar 28
0
[LLVMdev] Possible missed optimization?
...#0: derived from LLVM BB %entry
> Live Ins: %R25R24
> 32L %vreg5<def> = COPY %R25R24; PTRREGS:%vreg5
> 48L %vreg6<def> = LDWRd %vreg5<kill>; mem:LD2[%a](align=1)(tbaa=!"int") DLDREGS:%vreg6 PTRREGS:%vreg5
> 80L %vreg6<def> = ANDIWRdK %vreg6, 255; DLDREGS:%vreg6
> 96L %vreg8<def> = COPY %R25R24<kill>; PTRREGS:%vreg8
> 112L STWRr %vreg8<kill>, %vreg6<kill>; mem:ST2[%a](align=1)(tbaa=!"int") PTRREGS:%vreg8 DLDREGS:%vreg6
> 128L RET
>
> What i see is the first c...
2011 Mar 26
0
[LLVMdev] Possible missed optimization?
On Mar 26, 2011, at 1:04 PM, Borja Ferrer wrote:
> Hello Jakob, thanks for the reply. The three regclasses involved here are all subsets from each other and aren't disjoint. These are the basic descriptions of the regclasses involved to show what i mean:
>
> DREGS: R31R30, R29R28 down to R1R0 (16 regs)
> DLDREGS: R31R30, R29R28 down to R17R16 (8 regs)
> PTRREGS:
2011 Mar 26
2
[LLVMdev] Possible missed optimization?
Hello Jakob, thanks for the reply. The three regclasses involved here are
all subsets from each other and aren't disjoint. These are the basic
descriptions of the regclasses involved to show what i mean:
DREGS: R31R30, R29R28 down to R1R0 (16 regs)
DLDREGS: R31R30, R29R28 down to R17R16 (8 regs)
PTRREGS: R31R30, R29R28, R27R26 (3 regs)
All classes intersect each other