[openacc] vector state propagation

Nathan Sidwell nathan@acm.org
Mon Feb 22 16:22:00 GMT 2016


On 02/22/16 10:30, Cesar Philippidis wrote:
> This patch teaches the nvptx vector state propagator how to handle
> QImode and HImode variables. Basically, I'm converting the 8- and 16-bit
> values into 32-bits so that the shuffle broadcast can be used to
> propagate the register.
>
> I'm not sure if my solution is the best way to resolve this problem. It
> looks like the nvptx backend frequently assigns a larger .u16 and .u32
> register for chars and shorts, and consequently masks this problem in
> -O0.  Because a lot of the registers are already u32, the conversion to
> and from u8 and u16 seems like an unnecessary step, when the nvptx
> backend should be able to broadcast the origin u32 register directly.

Agreed.  I didn't want to touch that handling at this point in the cycle. It 
looked to me that improvements could be done.

> Is there a better way to resolve this issue, or is this patch OK for
> trunk as-is?

OK.


nathan



More information about the Gcc-patches mailing list