On 09/08/2024 07:53, Thomas Schwinge wrote:
Hi Andrew!

On 2024-08-08T13:50:17+0000, Andrew Stubbs <a...@baylibre.com> wrote:
Previously, trampolines worked on GCN3 devices, but the newer GCN5
devices had different permissions on the stack memory space we were
using.

That changed when we added the reverse-offload features because we
switched from using the "private" memory space to using a regular memory
allocation.

The execute permissions on this new space permit trampolines to work
just as they did before.

ACK; I see a lot of UNSUPPORTED -> PASS progressions (tested
'-march=gfx908', '-march=gfx1100').

Just two non-good ones:

     [-UNSUPPORTED:-]{+FAIL:+} gcc.dg/20050607-1.c {+(test for excess errors)+}

     [...]/gcc.dg/20050607-1.c: In function 'foo':
     [...]/gcc.dg/20050607-1.c:7:5: warning: padding struct size to alignment 
boundary with 4 bytes [-Wpadded]

..., which, as I understand the test case is what should *not* be
happening.

This must have always been a problem for GCN3 devices.

I've just pushed a patch to fix it (by adding the padding explicitly).


And the other:

     [-FAIL:-]{+PASS:+} gfortran.dg/optional_absent_8.f90   -O0  (test for 
excess errors)
     [-UNRESOLVED:-]{+FAIL:+} gfortran.dg/optional_absent_8.f90   -O0  
[-compilation failed to produce executable-]{+execution test+}
     PASS: gfortran.dg/optional_absent_8.f90   -O1  (test for excess errors)
     PASS: gfortran.dg/optional_absent_8.f90   -O1  execution test
     PASS: gfortran.dg/optional_absent_8.f90   -O2  (test for excess errors)

     STOP 11

This one is more difficult to figure out. An execution failure only at -O0 may have a number of causes not actually related to the trampolines. The fortran "present" operator for optional arguments seems to be malfunctioning, but I'm no idea how or why (nor am I likely to before vacation).

Andrew

Reply via email to