diff mbox series

testsuite: Clean up lto and offload dump files

Message ID xu8fblgd2q32.fsf@harwath.name
State New
Headers show
Series testsuite: Clean up lto and offload dump files | expand

Commit Message

Frederik Harwath Nov. 4, 2020, 1:45 p.m. UTC
Hi,

Dump files produced from an offloading compiler through
"-foffload=-fdump-..." do not get removed by gcc-dg.exp and other
exp-files of the testsuite that use the cleanup code from this file
(e.g.  libgomp). This can lead to problems if scan-dump detects leftover
dumps from previous runs of a test case.

This patch adapts the existing cleanup logic for "-flto" to handle
"-flto" and "-foffload" in a uniform way. The glob pattern that is used
for matching the "ltrans" files is also changed since the existing
pattern failed to remove some LTO ("ltrans0.ltrans.") dump files.


This patch gets rid of at least one unresolved libgomp test result that
would otherwise be introduced by the patch discussed in this thread:

https://gcc.gnu.org/pipermail/gcc-patches/2020-November/557889.html
diff mbox series

Patch

From 9eb5da60e8822e1f6fa90b32bff6123ed62c146c Mon Sep 17 00:00:00 2001
From: Frederik Harwath <frederik@codesourcery.com>
Date: Wed, 4 Nov 2020 14:09:46 +0100
Subject: [PATCH] testsuite: Clean up lto and offload dump files

Dump files produced from an offloading compiler through
"-foffload=-fdump-..." do not get removed by gcc-dg.exp and other
exp-files of the testsuite that use the cleanup code from this file
(e.g.  libgomp). This can lead to problems if scan-dump detects
leftover dumps from previous runs of a test case.

This patch adapts the existing cleanup logic for "-flto" to handle
"-flto" and "-foffload" in a uniform way. The glob pattern that is
used for matching the "ltrans" files is also changed since the
existing pattern failed to match some dump files.

2020-11-04  Frederik Harwath  <frederik@codesourcery.com>

gcc/testsuite/ChangeLog:

	* lib/gcc-dg.exp (proc schedule-cleanups): Adapt "-flto" handling,
	add "-foffload" handling.
---
 gcc/testsuite/lib/gcc-dg.exp | 50 ++++++++++++++++++++++++------------
 1 file changed, 33 insertions(+), 17 deletions(-)

diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index e8ad3052657..e0560af205f 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -194,31 +194,47 @@  proc schedule-cleanups { opts } {
     # stem.ext.<passnum><fam>.<passname><pass-instances>
     # (tree)passes can have multiple instances, thus optional trailing *
     set ptn "\[0-9\]\[0-9\]\[0-9\]$ptn.*"
+    set ltrans no
+    set mkoffload no
+
     # Handle ltrans files around -flto
     if [regexp -- {(^|\s+)-flto(\s+|$)} $opts] {
 	verbose "Cleanup -flto seen" 4
-	set ltrans "{ltrans\[0-9\]*.,}"
-    } else {
-	set ltrans ""
+	set ltrans yes
+    }
+
+    if [regexp -- {(^|\s+)-foffload=} $opts] {
+	verbose "Cleanup -foffload seen" 4
+	set mkoffload yes
     }
-    set ptn "$ltrans$ptn"
+
     verbose "Cleanup final ptn: $ptn" 4
     set tfiles {}
     foreach src $testcases {
-	set basename [file tail $src]
-	if { $ltrans != "" } {
-	    # ??? should we use upvar 1 output_file instead of this (dup ?)
-	    set stem [file rootname $basename]
-	    set basename_ext [file extension $basename]
-	    if {$basename_ext != ""} {
-		regsub -- {^.*\.} $basename_ext {} basename_ext
-	    }
-	    lappend tfiles "$stem.{$basename_ext,exe}"
-	    unset basename_ext
-	} else {
-	    lappend tfiles $basename
-	}
+        set basename [file tail $src]
+        set stem [file rootname $basename]
+        set basename_ext [file extension $basename]
+        if {$basename_ext != ""} {
+            regsub -- {^.*\.} $basename_ext {} basename_ext
+        }
+        set extensions [list $basename_ext]
+
+        if { $ltrans == yes } {
+            lappend extensions "ltrans\[0-9\]*.ltrans"
+        }
+        if { $mkoffload == yes} {
+            # The * matches the offloading target's name, e.g. "xnvptx-none".
+            lappend extensions "*.mkoffload"
+        }
+
+        set extensions_ptn [join $extensions ","]
+        if { [llength $extensions] > 1 } {
+            set extensions_ptn "{$extensions_ptn}"
+        }
+
+  	lappend tfiles "$stem.$extensions_ptn"
     }
+
     if { [llength $tfiles] > 1 } {
 	set tfiles [join $tfiles ","]
 	set tfiles "{$tfiles}"
-- 
2.17.1