[COMMITTED] amdgcn: Remove -mlocal-symbol-id option

Message ID 3f7b36f5-e6fa-71fa-4e60-a4802a5b9cd6@codesourcery.com
State New
Headers show
Series
  • [COMMITTED] amdgcn: Remove -mlocal-symbol-id option
Related show

Commit Message

Andrew Stubbs June 2, 2020, 2:40 p.m.
This patch removes the vestiges of the GCN-specific -mlocal-symbol-id 
option. Previously, this was part of a horrible workaround for a bug in 
the Radeon Open Compute ELF loader. The bug has been fixed a while now, 
and the name mangling has not been present in the compiler for a while, 
so the option that controlled it can go away now.

This clean up also fixes a lot of failures in the PCH testsuite that 
have been occurring since Alexandre's dump file overhaul.

Andrew

Patch

amdgcn: Remove -mlocal-symbol-id option

This patch removes the obsolete -mlocal-symbol-id option.  This was used to
control mangling of local symbol names in order to work around a ROCm runtime
bug, but that has not been needed in some time, and the mangling was removed
already.

gcc/ChangeLog:

	* config/gcn/gcn-hsa.h (CC1_SPEC): Delete.
	* config/gcn/gcn.opt (-mlocal-symbol-id): Delete.
	* config/gcn/mkoffload.c (main): Don't use -mlocal-symbol-id.

gcc/testsuite/ChangeLog:

	* gcc.dg/intermod-1.c: Don't use -mlocal-symbol-id.

diff --git a/gcc/config/gcn/gcn-hsa.h b/gcc/config/gcn/gcn-hsa.h
index d6523cf1247..2eaf4149f4c 100644
--- a/gcc/config/gcn/gcn-hsa.h
+++ b/gcc/config/gcn/gcn-hsa.h
@@ -79,16 +79,6 @@  extern unsigned int gcn_local_sym_hash (const char *name);
 #define ASM_SPEC  "-triple=amdgcn--amdhsa -mattr=-code-object-v3 "  \
 		  "%:last_arg(%{march=*:-mcpu=%*}) " \
 		  "-filetype=obj"
-/* Add -mlocal-symbol-id=<source-file-basename> unless the user (or mkoffload)
-   passes the option explicitly on the command line.  The option also causes
-   several dump-matching tests to fail in the testsuite, so the option is not
-   added when or tree dump/compare-debug options used in the testsuite are
-   present.
-   This has the potential for surprise, but a user can still use an explicit
-   -mlocal-symbol-id=<whatever> option manually together with -fdump-tree or
-   -fcompare-debug options.  */
-#define CC1_SPEC "%{!mlocal-symbol-id=*:%{!fdump-tree-*:"	\
-		 "%{!fdump-ipa-*:%{!fcompare-debug*:-mlocal-symbol-id=%b}}}}"
 #define LINK_SPEC "--pie"
 #define LIB_SPEC  "-lc"
 
diff --git a/gcc/config/gcn/gcn.opt b/gcc/config/gcn/gcn.opt
index 04c73d64630..e1b9942ebed 100644
--- a/gcc/config/gcn/gcn.opt
+++ b/gcc/config/gcn/gcn.opt
@@ -70,9 +70,6 @@  mstack-size=
 Target Report RejectNegative Joined UInteger Var(stack_size_opt) Init(-1)
 -mstack-size=<number>	Set the private segment size per wave-front, in bytes.
 
-mlocal-symbol-id=
-Target RejectNegative Report JoinedOrMissing Var(local_symbol_id) Init(0)
-
 Wopenacc-dims
 Target Var(warn_openacc_dims) Warning
 Warn about invalid OpenACC dimensions.
diff --git a/gcc/config/gcn/mkoffload.c b/gcc/config/gcn/mkoffload.c
index 723da108b65..4a99d70e312 100644
--- a/gcc/config/gcn/mkoffload.c
+++ b/gcc/config/gcn/mkoffload.c
@@ -524,7 +524,7 @@  main (int argc, char **argv)
   FILE *in = stdin;
   FILE *out = stdout;
   FILE *cfile = stdout;
-  const char *outname = 0, *offloadsrc = 0;
+  const char *outname = 0;
 
   progname = "mkoffload";
   diagnostic_initialize (global_dc, 0);
@@ -653,18 +653,11 @@  main (int argc, char **argv)
       if (!strcmp (argv[ix], "-o") && ix + 1 != argc)
 	outname = argv[++ix];
       else
-	{
-	  obstack_ptr_grow (&cc_argv_obstack, argv[ix]);
-
-	  if (argv[ix][0] != '-')
-	    offloadsrc = argv[ix];
-	}
+	obstack_ptr_grow (&cc_argv_obstack, argv[ix]);
     }
 
   obstack_ptr_grow (&cc_argv_obstack, "-o");
   obstack_ptr_grow (&cc_argv_obstack, gcn_s1_name);
-  obstack_ptr_grow (&cc_argv_obstack,
-		    concat ("-mlocal-symbol-id=", offloadsrc, NULL));
   obstack_ptr_grow (&cc_argv_obstack, NULL);
   const char **cc_argv = XOBFINISH (&cc_argv_obstack, const char **);
 
diff --git a/gcc/testsuite/gcc.dg/intermod-1.c b/gcc/testsuite/gcc.dg/intermod-1.c
index 44a8ce071b5..9f8d19deb6a 100644
--- a/gcc/testsuite/gcc.dg/intermod-1.c
+++ b/gcc/testsuite/gcc.dg/intermod-1.c
@@ -1,5 +1,4 @@ 
 /* { dg-do compile } */
-/* { dg-additional-options "-mlocal-symbol-id=" { target amdgcn-*-* } } */
 /* { dg-final { scan-assembler-not {foo[1-9]\.[0-9]} } } */
 
 /* Check that we don't get .0 suffixes on static variables when not using