Displaying 2 results from an estimated 2 matches for "store32fi".
2011 Nov 18
1
[LLVMdev] Greedy regalloc
...spill of same value is inserted. The former spill is however not NOP:ed, but KILL:ed, thus the operands get a kill status. The code becomes:
%vreg301<def> = mv32Imm 200000000, pred:0, pred:%noreg, %CCReg<imp-def,dead>, %ac0<imp-use>, %ac1<imp-use>; aN32_0_7:%vreg301
Store32FI %vreg301, <fi#93>, pred:0, pred:%noreg, %CCReg<imp-def>; mem:ST4[FixedStack93] aN32_0_7:%vreg301
KILL %vreg301, <fi#93>, 0, %noreg, %CCReg<imp-def>; mem:ST4[FixedStack93] aN32_0_7:%vreg301
%a0_32<def> = COPY %vreg301; aN32_0_7:%vreg301
This results in abort:...
2011 Oct 21
0
[LLVMdev] Problems with live intervals and spilling when having sub registers?
...e %vreg64 is copied to %vreg6
at 320. And for this I get the following intervals for %vreg64:
%vreg64 = [288d,304d:1)[304d,320d:0) 0 at 304d 1 at 288d
Later %vreg6 and %vreg64 are merged. The register allocator spills
%vreg6 (fi#14) and the resulting code is
%r0l<def> = mv_any16 65535
Store32FI %r0<kill>, <fi#14>; mem:ST4[FixedStack14] %r0h<def> = mv_any16
16383 %r1<def> = Load32FI <fi#14>; mem:LD4[FixedStack14]
So the whole %r0 register is spilled to the stack after only one half is
written, and then what is supposed to go into the other half is never
us...