Displaying 5 results from an estimated 5 matches for "reg16507".
Did you mean:
reg16506
2011 May 09
2
[LLVMdev] wide memory accesses
...achineFunction:
1. replace the MachineOperands in the users of the data with the new register/subregister index. This yields an assert failure during VirtRegRewriter, in substPhysReg: "Invalid SubReg for physical register", after the Two-address rewrote this:
%reg16445<def> = add %reg16507:hi16, %reg16510:hi16 ; 32bit:16507,16510, 16bit: 16445
prepend: %reg16445<def> = COPY %reg16507;
rewrite to: %reg16445<def> = addh_1_8 %reg16445:hi16, %reg16510:hi16
In my eyes, there should not have been a subreg 'hi16' for the 16445 reg - this reg is 16 bits. I w...
2011 May 09
0
[LLVMdev] wide memory accesses
...> 1. replace the MachineOperands in the users of the data with the new register/subregister index. This yields an assert failure during VirtRegRewriter, in substPhysReg: "Invalid SubReg for physical register", after the Two-address rewrote this:
>
> %reg16445<def> = add %reg16507:hi16, %reg16510:hi16 ; 32bit:16507,16510, 16bit: 16445
> prepend: %reg16445<def> = COPY %reg16507;
> rewrite to: %reg16445<def> = addh_1_8 %reg16445:hi16, %reg16510:hi16
>
> In my eyes, there should not have been a subreg 'hi16' for the 16445 reg - this...
2011 May 20
1
[LLVMdev] subregisters, def-kill
...f the block, and from the
beginning - as it is believed it is not a local live-range.
SimpleRegisterCoalescing:
This ends up as overlapping live-ranges, where the value numbers did not become one, and Interference is reported.
This must then be considered bad code in LLVM.
But if I write
%reg16507<def> = COPY %reg16445;
%reg16508<def> = COPY %reg16468;
%reg16506<def> = REG_SEQUENCE %reg16507, hi16, %reg16508, lo16;
%reg16509<def> = st_2_1_postMod %reg16506, %reg16441, %reg16454, pred:20, pred:%CCReg;
then, there is not an erroneous live-range that interferes, so...
2011 May 19
0
[LLVMdev] subregisters, def-kill
On May 19, 2011, at 7:47 AM, Jonas Paulsson wrote:
> Hi,
>
> I am combining 16-bit registers to a 32 bit register in order to make a wide store, as per below:
>
> 732 %reg16506:hi16<def,dead> = COPY %reg16445<kill>;
> 740 %reg16506:lo16<def> = COPY %reg16468<kill>;
> 748 %r3<def,dead> = store %reg16506<kill>, %r3,
>
> As you can
2011 May 19
3
[LLVMdev] subregisters, def-kill
Hi,
I am combining 16-bit registers to a 32 bit register in order to make a wide store, as per below:
732 %reg16506:hi16<def,dead> = COPY %reg16445<kill>;
740 %reg16506:lo16<def> = COPY %reg16468<kill>;
748 %r3<def,dead> = store %reg16506<kill>, %r3,
As you can see, LiveVariables has marked the high part dead, even though the super-register is used at