[gomp] Fix PTX worker spill/fill

Thomas Schwinge thomas@codesourcery.com
Fri Jul 17 09:00:00 GMT 2015


Hi!

On Thu, 16 Jul 2015 12:23:52 -0400, Nathan Sidwell <nathan@acm.org> wrote:
> I've committed this patch to fix a bug in the worker spill/fill code.  We ended 
> up not incrementing the pointer, resulting in the stack frame being filled with 
> the same value.
> 
> Thanks to Jim for finding the failure.

> --- config/nvptx/nvptx.c	(revision 225831)
> +++ config/nvptx/nvptx.c	(working copy)
> @@ -1257,7 +1257,7 @@ nvptx_gen_wcast (rtx reg, propagate_mask
>  	    
>  	    emit_insn (res);
>  	    emit_insn (gen_adddi3 (data->ptr, data->ptr,
> -				   GEN_INT (GET_MODE_SIZE (GET_MODE (res)))));
> +				   GEN_INT (GET_MODE_SIZE (GET_MODE (reg)))));
>  	    res = get_insns ();
>  	    end_sequence ();
>  	  }

Nice; this is actually the change to resolve the FAIL for
libgomp.oacc-c-c++-common/private-vars-loop-gang-5.c I had reported in
<http://news.gmane.org/find-root.php?message_id=%3C877fq41epd.fsf%40kepler.schwinge.homeip.net%3E>.
(The testsuite/libgomp.oacc-c-c++-common/parallel-loop-1.c regression
reported earlier in that thread remains to be addressed.)  Committed to
gomp-4_0-branch in r225922:

commit 7961bf7049729aebadf639a52174be14010da499
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Jul 17 08:30:10 2015 +0000

    libgomp: Remove XFAIL libgomp.oacc-c-c++-common/private-vars-loop-gang-5.c for acc_device_nvidia
    
    Problem got addressed in r225896.
    
    	libgomp/
    	* testsuite/libgomp.oacc-c-c++-common/private-vars-loop-gang-5.c:
    	Remove XFAIL.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@225922 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libgomp/ChangeLog.gomp                                            |    5 +++++
 .../libgomp.oacc-c-c++-common/private-vars-loop-gang-5.c          |    3 ---
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git libgomp/ChangeLog.gomp libgomp/ChangeLog.gomp
index b2e4b2c..0293ad5 100644
--- libgomp/ChangeLog.gomp
+++ libgomp/ChangeLog.gomp
@@ -1,3 +1,8 @@
+2015-07-17  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* testsuite/libgomp.oacc-c-c++-common/private-vars-loop-gang-5.c:
+	Remove XFAIL.
+
 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
 
 	* plugin/plugin-nvptx.c (nvptx_exec): Show grid dimensions in
diff --git libgomp/testsuite/libgomp.oacc-c-c++-common/private-vars-loop-gang-5.c libgomp/testsuite/libgomp.oacc-c-c++-common/private-vars-loop-gang-5.c
index a710849..b070773 100644
--- libgomp/testsuite/libgomp.oacc-c-c++-common/private-vars-loop-gang-5.c
+++ libgomp/testsuite/libgomp.oacc-c-c++-common/private-vars-loop-gang-5.c
@@ -1,6 +1,3 @@
-/* main: Assertion `arr[i] == i + (i % 8) * 2' failed.
-   { dg-xfail-run-if "TODO" { openacc_nvidia_accel_selected } { "*" } { "" } } */
-
 #include <assert.h>
 
 /* Test of gang-private array variable declared on loop directive, with


Grüße,
 Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 472 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20150717/a1a2d2af/attachment.sig>


More information about the Gcc-patches mailing list