[Piglit] [PATCH] cl: Add test for CSR VGPRs caused by SGPR spilling

Jan Vesely jan.vesely at rutgers.edu
Tue Aug 14 00:06:12 UTC 2018


On Mon, 2018-08-13 at 23:29 +0300, Matt Arsenault wrote:
> > On May 8, 2018, at 18:45, Jan Vesely <jan.vesely at rutgers.edu> wrote:
> > 
> > On Tue, 2018-05-08 at 13:28 +0300, Matt Arsenault wrote:
> > > > On Apr 8, 2018, at 19:56, Jan Vesely <jan.vesely at rutgers.edu> wrote:
> > > > 
> > > > On Fri, 2018-04-06 at 00:49 -0400, Matt Arsenault wrote:
> > > > > ping
> > > > 
> > > > I'll need to setup the rocm stack to test this. It will take some time.
> > > > It should work with clover as well (modulo bugs; asm parser, function
> > > > calls, ...), right?
> > > > 
> > > > Jan
> > > 
> > > I thought calls were broken in general with clover because of the
> > > missing link step? Besides that it should work
> > 
> > Linking works (both linking with libclc and cl-1.2 clLinkProgram) it
> > just happens at IR level (if you consider that linking) so all function
> > calls can be inlined.
> > 
> > The problem is that llvm backend generates relocation for function
> > calls. This relocation is not handled by clover (you could call this
> > 'calls are broken in general').
> > 
> > I see two ways to fix this;
> > a) fix llvm to use fixup instead of relocation for internal function
> > calls.
> > b) fix clover to handle the function call relocation.
> > 
> > I tried a) but a simple
> > "|| (GV->getLinkage() == GlobalValue::InternalLinkage)"
> > in shouldEmitFixup() is not enough (the fixup value looks wrong)
> > 
> > I still think that a) is preferable, but now that 6.0 is out with the
> > breakage we'll need to implement b) anyway.
> > 
> > I'll try to find some time to dig a bit more into this, but it's tricky
> > since wrong jump leaves the GPU in unrecoverable state that needs
> > manual power cycling on reboot.
> > 
> > Jan
> > > 
> > > -Matt
> 
> 
> ping. Should this just skip the clover platform for now?

this already skips clover due to device regexp (gfx). I just want to
see it run (pass or fail) before stamping it.
It can be either clover (with function calls fixed and changed device
regexp) or other OCL implementation.
Given how user-hostile to rocm-ocl setup is and that -pro version
segfaults, getting clover to support relocations is more likely.

Jan
-- 
Jan Vesely <jan.vesely at rutgers.edu>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20180813/a0a44e49/attachment.sig>


More information about the Piglit mailing list