Displaying 6 results from an estimated 6 matches for "vgpr40".
Did you mean:
vgpr4
2019 Nov 13
2
imm COPY generated by PHI elim not propagated
...ode such that:
vgpr1 = mov 0
branch bb
bb:
PHI vgpr2 = vgpr1, ….
PHI vgpr3 = vgpr1, ….
PHI vgpr4 = vgpr1, ….
PHI vgpr5 = vgpr1, ….
PHI node elimination is generating copies for all these PHIs (and hoisting
them) as such:
vgpr1 = 0
vgpr20 = COPY vgpr1 // old vgpr2
vgpr30 = COPY vgpr1 // old vgpr3
vgpr40 = COPY vgpr1 // old vgpr4
vgpr 50 = COPY vgprt1 // old vgpr5
I expect the zero to get propagated in a later phase but it's not. I was
looking at adding immediate folding to the register coalescer but this
doesn't really seem like the right place. Any suggestions?
I'm sort of surprised...
2019 Nov 14
2
imm COPY generated by PHI elim not propagated
...gpr1, ….
> PHI vgpr4 = vgpr1, ….
> PHI vgpr5 = vgpr1, ….
>
> PHI node elimination is generating copies for all these PHIs (and hoisting them) as such:
>
> vgpr1 = 0
> vgpr20 = COPY vgpr1 // old vgpr2
> vgpr30 = COPY vgpr1 // old vgpr3
> vgpr40 = COPY vgpr1 // old vgpr4
> vgpr 50 = COPY vgprt1 // old vgpr5
>
> I expect the zero to get propagated in a later phase but it's not. I was looking at adding immediate folding to the register coalescer but this doesn't really seem like the right place. Any suggestions?...
2019 Nov 15
2
imm COPY generated by PHI elim not propagated
...>> PHI vgpr5 = vgpr1, ….
> >>
> >> PHI node elimination is generating copies for all these PHIs (and
> hoisting them) as such:
> >>
> >> vgpr1 = 0
> >> vgpr20 = COPY vgpr1 // old vgpr2
> >> vgpr30 = COPY vgpr1 // old vgpr3
> >> vgpr40 = COPY vgpr1 // old vgpr4
> >> vgpr 50 = COPY vgprt1 // old vgpr5
> >>
> >> I expect the zero to get propagated in a later phase but it's not. I
> was looking at adding immediate folding to the register coalescer but this
> doesn't really seem like the right...
2019 Nov 20
2
imm COPY generated by PHI elim not propagated
...gt;> >>
>> >> PHI node elimination is generating copies for all these PHIs (and
>> hoisting them) as such:
>> >>
>> >> vgpr1 = 0
>> >> vgpr20 = COPY vgpr1 // old vgpr2
>> >> vgpr30 = COPY vgpr1 // old vgpr3
>> >> vgpr40 = COPY vgpr1 // old vgpr4
>> >> vgpr 50 = COPY vgprt1 // old vgpr5
>> >>
>> >> I expect the zero to get propagated in a later phase but it's not. I
>> was looking at adding immediate folding to the register coalescer but this
>> doesn't really...
2020 May 29
2
Dynamically determine the CostPerUse value in the register allocator.
...argument registers, all VGPRs are callee-saved registers (VGPR32 - VGPR255).
With the new ABI:
We made VGPR32 - VGPR255 into equal number of callee-saved and caller-saved registers.
For the same occupancy reason, these two sets are interleaved at a split boundary of 8.
VGPR32-VGPR39 (Caller-saved)
VGPR40-VGPR47 (Callee-saved)
VGPR48-VGPR55 (Caller-saved)
-
-
VGPR248-VGPR255 (Callee-saved)
With the new ABI, the allocator's preference for callee-saved vs caller-saved depends on the input program.
RA may end up allocating more caller-saved registers than the callee-sav...
2020 May 30
2
Dynamically determine the CostPerUse value in the register allocator.
...GPR32 - VGPR255).
>
> With the new ABI:
>
> We made VGPR32 - VGPR255 into equal number of callee-saved and
> caller-saved registers.
>
> For the same occupancy reason, these two sets are interleaved at a split
> boundary of 8.
>
> VGPR32-VGPR39 (Caller-saved)
>
> VGPR40-VGPR47 (Callee-saved)
>
> VGPR48-VGPR55 (Caller-saved)
>
> -
>
> -
>
> VGPR248-VGPR255 (Callee-saved)
>
>
>
> With the new ABI, the allocator’s preference for callee-saved vs
> caller-saved depends on the input program.
>
> RA...