On Tue, 2018-05-08 at 13:28 +0300, Matt Arsenault wrote: > > On Apr 8, 2018, at 19:56, Jan Vesely <jan.ves...@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
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit