public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [patch] gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC
@ 2024-01-25 23:03 Tobias Burnus
  2024-01-26  7:29 ` Richard Biener
  2024-01-26  9:59 ` Andrew Stubbs
  0 siblings, 2 replies; 7+ messages in thread
From: Tobias Burnus @ 2024-01-25 23:03 UTC (permalink / raw)
  To: gcc-patches, Andrew Stubbs


[-- Attachment #1.1: Type: text/plain, Size: 1153 bytes --]

When targeting AMD GPUs, the LLVM assembler (and linker) are used.

Two days ago LLVM changed the default for theAMDHSA code object version (COV) from 4 to 5. In principle, we do not 
care which COV is used as long as it works; unfortunately, 
"mkoffload.cc" also generates an object file directly, bypassing the AMD 
GPU compiler as it copies debugging data to that file. That object file 
must have the same COV version (ELF ABI version) as compiler + llvm-mc 
assembler generated files. In order to ensure those are the same, this 
patch forces the use of COV 4 instead of using the default. Once GCC 
requires LLVM >= 14 instead of LLVM >= 13.0.1 we could change it. 
(Assuming that COV 5 is sufficiently stable in LLVM 14.) - But for now 
COV 4 will do.
If you wonder how this LLVM issue shows up, simply compile any OpenMP
or OpenACC program with AMD GPU offloading and enable debugging ("-g"),
e.g.
   gcc -fopenmp -g test.f90 -foffload=amdgcn-amdhsa -foffload-options=-march=gfx908

With LLVM main (to become LLVM 18), you will then get the error:

   ld: error: incompatible ABI version: /tmp/ccAKx5cz.mkoffload.dbg.o

OK for mainline?

Tobias

[-- Attachment #2: llvm-18-fix.diff --]
[-- Type: text/x-patch, Size: 2764 bytes --]

gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC

Since LLVM commit 082f87c9d418 (Pull Req. #79038; will become LLVM 18)
  "[AMDGPU] Change default AMDHSA Code Object version to 5"
the default - when no --amdhsa-code-object-version= is used - was bumped.

Using --amdhsa-code-object-version=5 is supported (with unknown limitations)
since LLVM 14. GCC required for proper support at least LLVM 13.0.1 such
that explicitly using COV5 is not possible.

Unfortunately, the COV number matters for debugging ("-g") as mkoffload.cc
extracts debugging data from the host's object file and writes into an
an AMD GPU object file it creates. And all object files linked together
must have the same ABI version. 

gcc/ChangeLog:

	* config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
	"--amdhsa-code-object-version=" argument.
	(ASM_SPEC): Use it; replace previous version of it.

Signed-off-by: Tobias Burnus <tburnus@baylibre.com>

diff --git a/gcc/config/gcn/gcn-hsa.h b/gcc/config/gcn/gcn-hsa.h
index f5de0d2969f..e5b93f7d9e5 100644
--- a/gcc/config/gcn/gcn-hsa.h
+++ b/gcc/config/gcn/gcn-hsa.h
@@ -75,6 +75,21 @@ extern unsigned int gcn_local_sym_hash (const char *name);
    supported for gcn.  */
 #define GOMP_SELF_SPECS ""
 
+/* Explicitly set the ABI version; in principle, we could use just the
+   default; however, when debugging symbols are turned on, mkoffload.cc
+   writes a new AMD GPU object file and the ABI version needs to be the
+   same. - LLVM <= 17 defaults to 4 while LLVM >= 18 defaults to 5.
+   GCC supports LLVM >= 13.0.1 and only LLVM >= 14 supports version 5.
+   Note that Fiji is only suppored with LLVM <= 17 as version 3 i no longer
+   supported in LLVM >= 18.  */
+#define ABI_VERSION_SPEC "march=fiji:--amdhsa-code-object-version=3;" \
+			 "!march=*|march=*:--amdhsa-code-object-version=4"
+
+/* Note that the XNACK and SRAM-ECC settings must match those in mkoffload.cc
+   as the latter creates new ELF object file when debugging is enabled and
+   the ELF flags (e_flags) of that generated file must be identical to those
+   generated by the compiler.  */
+
 #define NO_XNACK "march=fiji:;march=gfx1030:;march=gfx1100:;" \
     /* These match the defaults set in gcn.cc.  */ \
     "!mxnack*|mxnack=default:%{march=gfx900|march=gfx906|march=gfx908:-mattr=-xnack};"
@@ -88,7 +103,7 @@ extern unsigned int gcn_local_sym_hash (const char *name);
 /* Use LLVM assembler and linker options.  */
 #define ASM_SPEC  "-triple=amdgcn--amdhsa "  \
 		  "%{march=*:-mcpu=%*} " \
-		  "%{!march=*|march=fiji:--amdhsa-code-object-version=3} " \
+		  "%{" ABI_VERSION_SPEC "} " \
 		  "%{" NO_XNACK XNACKOPT "} " \
 		  "%{" NO_SRAM_ECC SRAMOPT "} " \
 		  "%{march=gfx1030|march=gfx1100:-mattr=+wavefrontsize64} " \

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch] gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC
  2024-01-25 23:03 [patch] gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC Tobias Burnus
@ 2024-01-26  7:29 ` Richard Biener
  2024-01-26 10:09   ` Andrew Stubbs
  2024-01-26  9:59 ` Andrew Stubbs
  1 sibling, 1 reply; 7+ messages in thread
From: Richard Biener @ 2024-01-26  7:29 UTC (permalink / raw)
  To: Tobias Burnus; +Cc: gcc-patches, Andrew Stubbs

On Fri, Jan 26, 2024 at 12:04 AM Tobias Burnus <tburnus@baylibre.com> wrote:
>
> When targeting AMD GPUs, the LLVM assembler (and linker) are used.
>
> Two days ago LLVM changed the default for the AMDHSA code object
> version (COV) from 4 to 5.
>
> In principle, we do not care which COV is used as long as it works;
> unfortunately, "mkoffload.cc" also generates an object file directly,
> bypassing the AMD GPU compiler as it copies debugging data to that
> file. That object file must have the same COV version (ELF ABI version)
> as compiler + llvm-mc assembler generated files.
>
> In order to ensure those are the same, this patch forces the use of
> COV 4 instead of using the default. Once GCC requires LLVM >= 14
> instead of LLVM >= 13.0.1 we could change it. (Assuming that COV 5
> is sufficiently stable in LLVM 14.) - But for now COV 4 will do.
>
> If you wonder how this LLVM issue shows up, simply compile any OpenMP
> or OpenACC program with AMD GPU offloading and enable debugging ("-g"),
> e.g.
>   gcc -fopenmp -g test.f90 -foffload=amdgcn-amdhsa -foffload-options=-march=gfx908
>
> With LLVM main (to become LLVM 18), you will then get the error:
>
>   ld: error: incompatible ABI version: /tmp/ccAKx5cz.mkoffload.dbg.o
>
> OK for mainline?

If you link against prebuilt objects with COV 5 it seems there's no way to
override the COV version GCC uses?  That is, do we want to add
a -mcode-object-version=... option to allow the user to override this
(and ABI_VERSION_SPEC honoring that, if specified and of course
mkoffload following suit)?

Otherwise looks OK in the meantime.

Richard.

> Tobias

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch] gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC
  2024-01-25 23:03 [patch] gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC Tobias Burnus
  2024-01-26  7:29 ` Richard Biener
@ 2024-01-26  9:59 ` Andrew Stubbs
  1 sibling, 0 replies; 7+ messages in thread
From: Andrew Stubbs @ 2024-01-26  9:59 UTC (permalink / raw)
  To: Tobias Burnus, gcc-patches

On 25/01/2024 23:03, Tobias Burnus wrote:
> When targeting AMD GPUs, the LLVM assembler (and linker) are used.
> 
> Two days ago LLVM changed the default for theAMDHSA code object version (COV) from 4 to 5. In principle, we do not 
> care which COV is used as long as it works; unfortunately, 
> "mkoffload.cc" also generates an object file directly, bypassing the AMD 
> GPU compiler as it copies debugging data to that file. That object file 
> must have the same COV version (ELF ABI version) as compiler + llvm-mc 
> assembler generated files. In order to ensure those are the same, this 
> patch forces the use of COV 4 instead of using the default. Once GCC 
> requires LLVM >= 14 instead of LLVM >= 13.0.1 we could change it. 
> (Assuming that COV 5 is sufficiently stable in LLVM 14.) - But for now 
> COV 4 will do.
> If you wonder how this LLVM issue shows up, simply compile any OpenMP
> or OpenACC program with AMD GPU offloading and enable debugging ("-g"),
> e.g.
>    gcc -fopenmp -g test.f90 -foffload=amdgcn-amdhsa -foffload-options=-march=gfx908
> 
> With LLVM main (to become LLVM 18), you will then get the error:
> 
>    ld: error: incompatible ABI version: /tmp/ccAKx5cz.mkoffload.dbg.o
> 
> OK for mainline?

Looks good to me.

The alternative would be to copy the elf flags from another object file; 
that probably has it's own pitfalls.

OK.

Andrew

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch] gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC
  2024-01-26  7:29 ` Richard Biener
@ 2024-01-26 10:09   ` Andrew Stubbs
  2024-01-26 10:39     ` Tobias Burnus
  0 siblings, 1 reply; 7+ messages in thread
From: Andrew Stubbs @ 2024-01-26 10:09 UTC (permalink / raw)
  To: Richard Biener, Tobias Burnus; +Cc: gcc-patches

On 26/01/2024 07:29, Richard Biener wrote:
> On Fri, Jan 26, 2024 at 12:04 AM Tobias Burnus <tburnus@baylibre.com> wrote:
>>
>> When targeting AMD GPUs, the LLVM assembler (and linker) are used.
>>
>> Two days ago LLVM changed the default for the AMDHSA code object
>> version (COV) from 4 to 5.
>>
>> In principle, we do not care which COV is used as long as it works;
>> unfortunately, "mkoffload.cc" also generates an object file directly,
>> bypassing the AMD GPU compiler as it copies debugging data to that
>> file. That object file must have the same COV version (ELF ABI version)
>> as compiler + llvm-mc assembler generated files.
>>
>> In order to ensure those are the same, this patch forces the use of
>> COV 4 instead of using the default. Once GCC requires LLVM >= 14
>> instead of LLVM >= 13.0.1 we could change it. (Assuming that COV 5
>> is sufficiently stable in LLVM 14.) - But for now COV 4 will do.
>>
>> If you wonder how this LLVM issue shows up, simply compile any OpenMP
>> or OpenACC program with AMD GPU offloading and enable debugging ("-g"),
>> e.g.
>>    gcc -fopenmp -g test.f90 -foffload=amdgcn-amdhsa -foffload-options=-march=gfx908
>>
>> With LLVM main (to become LLVM 18), you will then get the error:
>>
>>    ld: error: incompatible ABI version: /tmp/ccAKx5cz.mkoffload.dbg.o
>>
>> OK for mainline?
> 
> If you link against prebuilt objects with COV 5 it seems there's no way to
> override the COV version GCC uses?  That is, do we want to add
> a -mcode-object-version=... option to allow the user to override this
> (and ABI_VERSION_SPEC honoring that, if specified and of course
> mkoffload following suit)?
> 
> Otherwise looks OK in the meantime.

We don't have a stable ABI, so trying to link against foreign binaries 
is already a problem. Most recently, the SIMD clone implementation 
required a change to the procedure calling ABI, the reverse-offload 
changes reimplemented the stack setup, and the low-latency memory 
patches changed the way we use local memories and needed more info 
passed into the device runtime. I expect more of this in future.

Compatibility across GCC versions doesn't really exist, and 
compatibility with LLVM-binaries is a non-starter.

Andrew

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch] gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC
  2024-01-26 10:09   ` Andrew Stubbs
@ 2024-01-26 10:39     ` Tobias Burnus
  2024-01-26 11:33       ` Andrew Stubbs
  0 siblings, 1 reply; 7+ messages in thread
From: Tobias Burnus @ 2024-01-26 10:39 UTC (permalink / raw)
  To: Andrew Stubbs, Richard Biener; +Cc: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 1313 bytes --]

Hi all,

Andrew Stubbs wrote:
> On 26/01/2024 07:29, Richard Biener wrote:
>> If you link against prebuilt objects with COV 5 it seems there's no 
>> way to
>> override the COV version GCC uses?  That is, do we want to add
>> a -mcode-object-version=... option to allow the user to override this
>> (and ABI_VERSION_SPEC honoring that, if specified and of course
>> mkoffload following suit)?

For completeness, I added such a feature, see attachment. (Actually, 
'=0' could be permitted for mkoffload without "-g" debugging enabled.)

However, the real problem is that one usually also has libraries build 
with the default such as libc, libm, libgomp, ... Thus, specifying 
anything else but GCC's default is likely to break.

Hence and also because of the following, I think it doesn't make sense 
to add:

> We don't have a stable ABI, so trying to link against foreign binaries 
> is already a problem. Most recently, the SIMD clone implementation 
> required a change to the procedure calling ABI, the reverse-offload 
> changes reimplemented the stack setup, and the low-latency memory 
> patches changed the way we use local memories and needed more info 
> passed into the device runtime. I expect more of this in future.


PS: The original patch has been committed as r14-8449-g4b5650acb31072.

Tobias

[-- Attachment #2: mcov.diff --]
[-- Type: text/x-patch, Size: 5492 bytes --]

amdgcn: Add -mcode-object-version= to override the default

For fiji, GCC defaults to Code Object V3 and otherwiese to V4;
the -mcode-object-version= flag permits to override it to the
specified version, which is passed on the the assembler.
Using -mcode-object-version=0, no COV is passed to the assembler,
using its default. - Note that all files including libraries must
be build with the same ABI version and that GCN'S mkoffload must
know the version number for handle debugging symbols.

gcc/ChangeLog:

	* config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Update for
	-mcode-object-version=
	* config/gcn/gcn.opt (mcode-object-version=): Add.
	* doc/invoke.texi (gcn): Add -mcode-object-version=.
	* config/gcn/mkoffload.cc (copy_early_debug_info,
	main): Handle mcode-object-version=.

 gcc/config/gcn/gcn-hsa.h    | 11 +++++++++--
 gcc/config/gcn/gcn.opt      |  4 ++++
 gcc/config/gcn/mkoffload.cc | 18 ++++++++++++++++--
 gcc/doc/invoke.texi         |  4 ++++
 4 files changed, 33 insertions(+), 4 deletions(-)

diff --git a/gcc/config/gcn/gcn-hsa.h b/gcc/config/gcn/gcn-hsa.h
index e5b93f7d9e5..79ee4171ce2 100644
--- a/gcc/config/gcn/gcn-hsa.h
+++ b/gcc/config/gcn/gcn-hsa.h
@@ -81,8 +81,15 @@ extern unsigned int gcn_local_sym_hash (const char *name);
    same. - LLVM <= 17 defaults to 4 while LLVM >= 18 defaults to 5.
    GCC supports LLVM >= 13.0.1 and only LLVM >= 14 supports version 5.
    Note that Fiji is only suppored with LLVM <= 17 as version 3 i no longer
-   supported in LLVM >= 18.  */
-#define ABI_VERSION_SPEC "march=fiji:--amdhsa-code-object-version=3;" \
+   supported in LLVM >= 18.
+
+   This can be overridden by -mcode-object-version; we permit = 0 to fall
+   back to the assembler default - which has issues with mkoffload, see above.
+   Otherwise, we use the provided value.  */
+
+#define ABI_VERSION_SPEC "mcode-object-version=0:;" \
+			 "mcode-object-version=*:--amdhsa-code-object-version=%*;" \
+			 "march=fiji:--amdhsa-code-object-version=3;" \
 			 "!march=*|march=*:--amdhsa-code-object-version=4"
 
 /* Note that the XNACK and SRAM-ECC settings must match those in mkoffload.cc
diff --git a/gcc/config/gcn/gcn.opt b/gcc/config/gcn/gcn.opt
index 842fd36d25c..874ff085134 100644
--- a/gcc/config/gcn/gcn.opt
+++ b/gcc/config/gcn/gcn.opt
@@ -54,6 +54,10 @@ mtune=
 Target RejectNegative Negative(mtune=) Joined ToLower Enum(gpu_type) Var(gcn_tune) Init(PROCESSOR_FIJI)
 Specify the name of the target GPU.
 
+mcode-object-version=
+Target RejectNegative Joined UInteger
+Override the used code object version
+
 m32
 Target RejectNegative InverseMask(ABI64)
 Generate code for a 32-bit ABI.
diff --git a/gcc/config/gcn/mkoffload.cc b/gcc/config/gcn/mkoffload.cc
index 0d0e7bac9b2..6cbf3dc5873 100644
--- a/gcc/config/gcn/mkoffload.cc
+++ b/gcc/config/gcn/mkoffload.cc
@@ -128,6 +128,7 @@ uint32_t elf_arch = EF_AMDGPU_MACH_AMDGCN_GFX900;  // Default GPU architecture.
 uint32_t elf_flags = EF_AMDGPU_FEATURE_SRAMECC_ANY_V4;
 
 static int gcn_stack_size = 0;  /* Zero means use default.  */
+static int code_object_version = -1;  /* Negative means default.  */
 
 /* Delete tempfiles.  */
 
@@ -351,7 +352,10 @@ copy_early_debug_info (const char *infile, const char *outfile)
 
   /* Patch the correct elf architecture flag into the file.  */
   ehdr.e_ident[7] = ELFOSABI_AMDGPU_HSA;
-  ehdr.e_ident[8] = (elf_arch == EF_AMDGPU_MACH_AMDGCN_GFX803
+  /* The ABI version; code object V1 had no version, V2 is 0, V3 is 1 etc. */
+  ehdr.e_ident[8] = (code_object_version >= 2
+		     ? code_object_version - 2
+		     : elf_arch == EF_AMDGPU_MACH_AMDGCN_GFX803
 		     ? ELFABIVERSION_AMDGPU_HSA_V3
 		     : ELFABIVERSION_AMDGPU_HSA_V4);
   ehdr.e_type = ET_REL;
@@ -972,6 +976,10 @@ main (int argc, char **argv)
 	elf_arch = EF_AMDGPU_MACH_AMDGCN_GFX1030;
       else if (strcmp (argv[i], "-march=gfx1100") == 0)
 	elf_arch = EF_AMDGPU_MACH_AMDGCN_GFX1100;
+#define STR "-mcode-object-version="
+      else if (startswith (argv[i], STR))
+	code_object_version = atoi (argv[i] + strlen (STR));
+#undef STR
 #define STR "-mstack-size="
       else if (startswith (argv[i], STR))
 	gcn_stack_size = atoi (argv[i] + strlen (STR));
@@ -994,6 +1002,11 @@ main (int argc, char **argv)
     fatal_error (input_location,
 		 "either %<-fopenacc%> or %<-fopenmp%> must be set");
 
+  if (code_object_version >= 0 && code_object_version < 2)
+    fatal_error (input_location,
+		 "version %d in %<-mcode-object-version=%> is not supported "
+		 "for offloading", code_object_version);
+
   const char *abi;
   switch (offload_abi)
     {
@@ -1162,7 +1175,8 @@ main (int argc, char **argv)
       for (int i = 1; i < argc; i++)
 	if (startswith (argv[i], "-l")
 	    || startswith (argv[i], "-Wl")
-	    || startswith (argv[i], "-march"))
+	    || startswith (argv[i], "-march")
+	    || startswith (argv[i], "-mcode-object-version="))
 	  obstack_ptr_grow (&ld_argv_obstack, argv[i]);
 
       obstack_ptr_grow (&cc_argv_obstack, "-dumpdir");
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 6ec56493e59..4b237de6baa 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -21768,6 +21768,10 @@ configure XNACK.  The compiled code must match the device mode.
 The default is @samp{-mxnack=any} on devices that support Unified Shared
 Memory, and @samp{-mxnack=no} otherwise.
 
+@opindex mcode-object-version
+@item -mcode-object-version=@var{n}
+Override the default for the AMDHSA Code Object Version (COV).
+
 @end table
 
 @node ARC Options

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch] gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC
  2024-01-26 10:39     ` Tobias Burnus
@ 2024-01-26 11:33       ` Andrew Stubbs
  2024-01-26 11:38         ` Tobias Burnus
  0 siblings, 1 reply; 7+ messages in thread
From: Andrew Stubbs @ 2024-01-26 11:33 UTC (permalink / raw)
  To: Tobias Burnus, Richard Biener; +Cc: gcc-patches

On 26/01/2024 10:39, Tobias Burnus wrote:
> Hi all,
> 
> Andrew Stubbs wrote:
>> On 26/01/2024 07:29, Richard Biener wrote:
>>> If you link against prebuilt objects with COV 5 it seems there's no 
>>> way to
>>> override the COV version GCC uses?  That is, do we want to add
>>> a -mcode-object-version=... option to allow the user to override this
>>> (and ABI_VERSION_SPEC honoring that, if specified and of course
>>> mkoffload following suit)?
> 
> For completeness, I added such a feature, see attachment. (Actually, 
> '=0' could be permitted for mkoffload without "-g" debugging enabled.)
> 
> However, the real problem is that one usually also has libraries build 
> with the default such as libc, libm, libgomp, ... Thus, specifying 
> anything else but GCC's default is likely to break.
> 
> Hence and also because of the following, I think it doesn't make sense 
> to add:
> 
>> We don't have a stable ABI, so trying to link against foreign binaries 
>> is already a problem. Most recently, the SIMD clone implementation 
>> required a change to the procedure calling ABI, the reverse-offload 
>> changes reimplemented the stack setup, and the low-latency memory 
>> patches changed the way we use local memories and needed more info 
>> passed into the device runtime. I expect more of this in future.
> 
> 
> PS: The original patch has been committed as r14-8449-g4b5650acb31072.
> 
> Tobias

Agreed, there's no point in having a knob that only has one valid 
setting, especially when we want to be able to change that setting 
without breaking third-party scripts that choose to that knob "for 
completeness", or something.

The toolchain can have an opinion about which is the correct COV, and I 
think not relying on the LLVM default choice makes sense also. I think 
COV 5 is only a small update, but there's no reason to imagine that COV6 
will Just Work (COV2 to COV3, and COV3 to COV4 required real effort).

We can move on to COV5 for GCC 15, probably. I'm not aware of any great 
blocker, but it sets a minimum LLVM.

Andrew

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [patch] gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC
  2024-01-26 11:33       ` Andrew Stubbs
@ 2024-01-26 11:38         ` Tobias Burnus
  0 siblings, 0 replies; 7+ messages in thread
From: Tobias Burnus @ 2024-01-26 11:38 UTC (permalink / raw)
  To: Andrew Stubbs, Richard Biener; +Cc: gcc-patches

Andrew Stubbs wrote:
> We can move on to COV5 for GCC 15, probably. I'm not aware of any 
> great blocker, but it sets a minimum LLVM.

And as our testing hardware showed, it also bumps the minimal ROCm to 
5.2 (as 5.1 fails with COV5).

Otherwise, as mentioned, COV5 was added to LLVM 14, but as we already 
require 13.0.1; thus, we would just have to require a half-a-year newer 
LLVM, which could be indeed fine for GCC 15.

Tobias


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-01-26 11:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-25 23:03 [patch] gcn/gcn-hsa.h: Always pass --amdhsa-code-object-version= in ASM_SPEC Tobias Burnus
2024-01-26  7:29 ` Richard Biener
2024-01-26 10:09   ` Andrew Stubbs
2024-01-26 10:39     ` Tobias Burnus
2024-01-26 11:33       ` Andrew Stubbs
2024-01-26 11:38         ` Tobias Burnus
2024-01-26  9:59 ` Andrew Stubbs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).