diff mbox

Option overriding in the offloading code path

Message ID 8761a55kr2.fsf@kepler.schwinge.homeip.net
State New
Headers show

Commit Message

Thomas Schwinge March 13, 2015, 9:06 a.m. UTC
Hi!

On Wed, 25 Feb 2015 11:28:12 +0100, I wrote:
> Using [...] to forcefully disable -fvar-tracking (as done in
> nvptx_option_override), should then allow me to drop the following
> beautiful specimen of a patch (which I didn't commit anywhere, so far):

No progress yet with that, so for now, committed to gomp-4_0-branch in
r221411:

commit 2b54430cec7ac5b51ee3cbb568bd505d86bf0768
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Fri Mar 13 09:03:21 2015 +0000

    libgomp Fortran testing: for -g torture testing, disable variable tracking.
    
    Otherwise, the nvptx-none offloading compiler will run into issues such as:
    
        source-gcc/libgomp/testsuite/libgomp.fortran/examples-4/e.50.1.f90: In function '__e_50_1_mod_MOD_vec_mult._omp_fn.1':
        source-gcc/libgomp/testsuite/libgomp.fortran/examples-4/e.50.1.f90:31:0: internal compiler error: in use_type, at var-tracking.c:5442
                 p(i) = v1(i) * v2(i)
         ^
        0xc4dc72 use_type
                source-gcc/gcc/var-tracking.c:5442
        0xc504b3 add_stores
                source-gcc/gcc/var-tracking.c:5869
        0xc4cd28 add_with_sets
                source-gcc/gcc/var-tracking.c:6553
        0x5e9b7d cselib_record_sets
                source-gcc/gcc/cselib.c:2574
        0x5ea8a7 cselib_process_insn(rtx_insn*)
                source-gcc/gcc/cselib.c:2686
        0xc586a3 vt_initialize
                source-gcc/gcc/var-tracking.c:10126
        0xc65a8e variable_tracking_main_1
                source-gcc/gcc/var-tracking.c:10322
        0xc65a8e variable_tracking_main
                source-gcc/gcc/var-tracking.c:10375
        0xc65a8e execute
                source-gcc/gcc/var-tracking.c:10412
        Please submit a full bug report,
        with preprocessed source if appropriate.
        Please include the complete backtrace with any bug report.
        See <http://gcc.gnu.org/bugs.html> for instructions.
        mkoffload: fatal error: install/offload-nvptx-none/bin//x86_64-unknown-linux-gnu-accel-nvptx-none-gcc returned 1 exit status
    
    	libgomp/
    	* testsuite/libgomp.fortran/fortran.exp (DG_TORTURE_OPTIONS): Add
    	-fno-var-tracking next to any -g usage.
    	* testsuite/libgomp.oacc-fortran/fortran.exp (DG_TORTURE_OPTIONS):
    	Likewise.
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@221411 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libgomp/ChangeLog.gomp                             |    7 +++++++
 libgomp/testsuite/libgomp.fortran/fortran.exp      |    4 ++++
 libgomp/testsuite/libgomp.oacc-fortran/fortran.exp |    4 ++++
 3 files changed, 15 insertions(+)



Grüße,
 Thomas
diff mbox

Patch

diff --git libgomp/ChangeLog.gomp libgomp/ChangeLog.gomp
index c2566cf..f052d3e 100644
--- libgomp/ChangeLog.gomp
+++ libgomp/ChangeLog.gomp
@@ -1,3 +1,10 @@ 
+2015-03-13  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* testsuite/libgomp.fortran/fortran.exp (DG_TORTURE_OPTIONS): Add
+	-fno-var-tracking next to any -g usage.
+	* testsuite/libgomp.oacc-fortran/fortran.exp (DG_TORTURE_OPTIONS):
+	Likewise.
+
 2015-01-12  Thomas Schwinge  <thomas@codesourcery.com>
 
 	* plugin/plugin-host.c [HOST_NONSHM_PLUGIN]: Don't include "libgomp.h".
diff --git libgomp/testsuite/libgomp.fortran/fortran.exp libgomp/testsuite/libgomp.fortran/fortran.exp
index 9e6b643..ead94f3 100644
--- libgomp/testsuite/libgomp.fortran/fortran.exp
+++ libgomp/testsuite/libgomp.fortran/fortran.exp
@@ -21,6 +21,10 @@  dg-init
 # Turn on OpenMP.
 lappend ALWAYS_CFLAGS "additional_flags=-fopenmp"
 
+# TODO: for -g torture testing, disable variable tracking.
+# <http://news.gmane.org/find-root.php?message_id=%3C87mw429tfn.fsf%40kepler.schwinge.homeip.net%3E>.
+regsub -all -- { -g[^ ]*} $DG_TORTURE_OPTIONS {& -fno-var-tracking} DG_TORTURE_OPTIONS
+
 if { $blddir != "" } {
     set lang_source_re {^.*\.[fF](|90|95|03|08)$}
     set lang_include_flags "-fintrinsic-modules-path=${blddir}"
diff --git libgomp/testsuite/libgomp.oacc-fortran/fortran.exp libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
index a68e039..203106e 100644
--- libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
+++ libgomp/testsuite/libgomp.oacc-fortran/fortran.exp
@@ -23,6 +23,10 @@  dg-init
 # Turn on OpenACC.
 lappend ALWAYS_CFLAGS "additional_flags=-fopenacc"
 
+# TODO: for -g torture testing, disable variable tracking.
+# <http://news.gmane.org/find-root.php?message_id=%3C87mw429tfn.fsf%40kepler.schwinge.homeip.net%3E>.
+regsub -all -- { -g[^ ]*} $DG_TORTURE_OPTIONS {& -fno-var-tracking} DG_TORTURE_OPTIONS
+
 if { $blddir != "" } {
     set lang_source_re {^.*\.[fF](|90|95|03|08)$}
     set lang_include_flags "-fintrinsic-modules-path=${blddir}"