[PING] nvptx: forward '-v' command-line option to assembler, linker

Message ID 871qw08orn.fsf@euler.schwinge.homeip.net
State Superseded
Headers
Series [PING] nvptx: forward '-v' command-line option to assembler, linker |

Commit Message

Thomas Schwinge June 7, 2022, 3:41 p.m. UTC
  Hi!

On 2022-05-30T09:06:21+0200, Tobias Burnus <tobias@codesourcery.com> wrote:
> On 29.05.22 22:49, Thomas Schwinge wrote:
>> Not sure if that's what you had in mind, but what do you think about the
>> attached "nvptx: forward '-v' command-line option to assembler, linker"?
>> OK to push to GCC master branch (after merging
>> <https://github.com/MentorEmbedded/nvptx-tools/pull/37>
>> "Put '-v' verbose output onto stderr instead of stdout")?
>
> I was mainly thinking of some way to have it available — which
> '-foffload-options=-Wa,-v' already permits on the GCC side. (Once the
> nvptx-tools patch actually makes use of the '-v'.)

(Merged a week ago.)

> If I understand your patch correctly, this patch now causes 'gcc -v' to
> imply 'gcc -v -Wa,-v'. I think that's okay, since 'gcc -v' already
> outputs a lot of lines and those lines can be helpful to understand what
> happens and what not.

ACK.

> Tom, your thoughts on this?

Ping.


Grüße
 Thomas


-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
  

Comments

Tom de Vries Sept. 5, 2022, 3:02 p.m. UTC | #1
On 6/7/22 17:41, Thomas Schwinge wrote:
> Subject:
> [PING] nvptx: forward '-v' command-line option to assembler, linker
> From:
> Thomas Schwinge <thomas@codesourcery.com>
> Date:
> 6/7/22, 17:41
> 
> To:
> Tobias Burnus <tobias@codesourcery.com>, <gcc-patches@gcc.gnu.org>, "Tom 
> de Vries" <tdevries@suse.de>
> 
> 
> Hi!
> 
> On 2022-05-30T09:06:21+0200, Tobias Burnus<tobias@codesourcery.com>  wrote:
>> On 29.05.22 22:49, Thomas Schwinge wrote:
>>> Not sure if that's what you had in mind, but what do you think about the
>>> attached "nvptx: forward '-v' command-line option to assembler, linker"?
>>> OK to push to GCC master branch (after merging
>>> <https://github.com/MentorEmbedded/nvptx-tools/pull/37>
>>> "Put '-v' verbose output onto stderr instead of stdout")?
>> I was mainly thinking of some way to have it available — which
>> '-foffload-options=-Wa,-v' already permits on the GCC side. (Once the
>> nvptx-tools patch actually makes use of the '-v'.)
> (Merged a week ago.)
> 
>> If I understand your patch correctly, this patch now causes 'gcc -v' to
>> imply 'gcc -v -Wa,-v'. I think that's okay, since 'gcc -v' already
>> outputs a lot of lines and those lines can be helpful to understand what
>> happens and what not.
> ACK.
> 
>> Tom, your thoughts on this?
> Ping.
> 
> 
> Grüße
>   Thomas
> 
> 
> -----------------
> Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955
> 
> 
> 0001-nvptx-forward-v-command-line-option-to-assembler-lin.patch
> 
>  From 17c35607d4927299b0c4bd19dd6fd205c85c4a4b Mon Sep 17 00:00:00 2001
> From: Thomas Schwinge<thomas@codesourcery.com>
> Date: Sun, 29 May 2022 22:31:43 +0200
> Subject: [PATCH] nvptx: forward '-v' command-line option to assembler, linker
> 
> For example, for offloading compilation with '-save-temps -v', before vs. after
> word-diff then looks like:
> 
>      [...]
>       [...]/build-gcc-offload-nvptx-none/gcc/as {+-v -v+} -o ./a.xnvptx-none.mkoffload.o ./a.xnvptx-none.mkoffload.s
>      {+Verifying sm_30 code with sm_35 code generation.+}
>      {+ ptxas -c -o /dev/null ./a.xnvptx-none.mkoffload.o --gpu-name sm_35 -O0+}
>      [...]
>       [...]/build-gcc-offload-nvptx-none/gcc/collect2 {+-v -v+} -o ./a.xnvptx-none.mkoffload [...] @./a.xnvptx-none.mkoffload.args.1 -lgomp -lgcc -lc -lgcc
>      {+collect2 version 12.0.1 20220428 (experimental)+}
>      {+[...]/build-gcc-offload-nvptx-none/gcc/collect-ld -v -v -o ./a.xnvptx-none.mkoffload [...] ./a.xnvptx-none.mkoffload.o -lgomp -lgcc -lc -lgcc+}
>      {+Linking ./a.xnvptx-none.mkoffload.o as 0+}
>      {+trying lib libc.a+}
>      {+trying lib libgcc.a+}
>      {+trying lib libgomp.a+}
>      {+Resolving abort+}
>      {+Resolving acc_on_device+}
>      {+Linking libgomp.a::oacc-init.o/     as 1+}
>      {+Linking libc.a::lib_a-abort.o/   as 2+}
>      [...]
> 
> (This depends on<https://github.com/MentorEmbedded/nvptx-tools/pull/37>
> "Put '-v' verbose output onto stderr instead of stdout".)
> 

Ack, I see that has been merged.

The ASM_SPEC part LGTM.

The LINK_SPEC part results looked very verbose to me at first glance, 
given that it prints info that with gnu ld we'd only see with 
-Wl,-trace.  But I suppose that's more of a question of what we print 
with nvptx-none-ld -v.

Still, I wonder, normally we don't pass -v to ld, and need -Wl,-v for 
that.  So, any particular reason why we would do things differently for 
nvptx?

Thanks,
- Tom

> 	gcc/
> 	* config/nvptx/nvptx.h (ASM_SPEC, LINK_SPEC): Define.
> ---
>   gcc/config/nvptx/nvptx.h | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> diff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h
> index ed72c253191..b184f1d0150 100644
> --- a/gcc/config/nvptx/nvptx.h
> +++ b/gcc/config/nvptx/nvptx.h
> @@ -27,6 +27,13 @@
>   
>   /* Run-time Target.  */
>   
> +/* Assembler supports '-v' option; handle similar to
> +   '../../gcc.cc:asm_options', 'HAVE_GNU_AS'.  */
> +#define ASM_SPEC "%{v}"
> +
> +/* Linker supports '-v' option.  */
> +#define LINK_SPEC "%{v}"
> +
>   #define STARTFILE_SPEC "%{mmainkernel:crt0.o}"
>   
>   #define TARGET_CPU_CPP_BUILTINS() nvptx_cpu_cpp_builtins ()
> -- 2.25.1
> 
> Attachments:
> 
> 0001-nvptx-forward-v-command-line-option-to-assembler-lin.patch	2.0 KB
>
  

Patch

From 17c35607d4927299b0c4bd19dd6fd205c85c4a4b Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Sun, 29 May 2022 22:31:43 +0200
Subject: [PATCH] nvptx: forward '-v' command-line option to assembler, linker

For example, for offloading compilation with '-save-temps -v', before vs. after
word-diff then looks like:

    [...]
     [...]/build-gcc-offload-nvptx-none/gcc/as {+-v -v+} -o ./a.xnvptx-none.mkoffload.o ./a.xnvptx-none.mkoffload.s
    {+Verifying sm_30 code with sm_35 code generation.+}
    {+ ptxas -c -o /dev/null ./a.xnvptx-none.mkoffload.o --gpu-name sm_35 -O0+}
    [...]
     [...]/build-gcc-offload-nvptx-none/gcc/collect2 {+-v -v+} -o ./a.xnvptx-none.mkoffload [...] @./a.xnvptx-none.mkoffload.args.1 -lgomp -lgcc -lc -lgcc
    {+collect2 version 12.0.1 20220428 (experimental)+}
    {+[...]/build-gcc-offload-nvptx-none/gcc/collect-ld -v -v -o ./a.xnvptx-none.mkoffload [...] ./a.xnvptx-none.mkoffload.o -lgomp -lgcc -lc -lgcc+}
    {+Linking ./a.xnvptx-none.mkoffload.o as 0+}
    {+trying lib libc.a+}
    {+trying lib libgcc.a+}
    {+trying lib libgomp.a+}
    {+Resolving abort+}
    {+Resolving acc_on_device+}
    {+Linking libgomp.a::oacc-init.o/     as 1+}
    {+Linking libc.a::lib_a-abort.o/   as 2+}
    [...]

(This depends on <https://github.com/MentorEmbedded/nvptx-tools/pull/37>
"Put '-v' verbose output onto stderr instead of stdout".)

	gcc/
	* config/nvptx/nvptx.h (ASM_SPEC, LINK_SPEC): Define.
---
 gcc/config/nvptx/nvptx.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/gcc/config/nvptx/nvptx.h b/gcc/config/nvptx/nvptx.h
index ed72c253191..b184f1d0150 100644
--- a/gcc/config/nvptx/nvptx.h
+++ b/gcc/config/nvptx/nvptx.h
@@ -27,6 +27,13 @@ 
 
 /* Run-time Target.  */
 
+/* Assembler supports '-v' option; handle similar to
+   '../../gcc.cc:asm_options', 'HAVE_GNU_AS'.  */
+#define ASM_SPEC "%{v}"
+
+/* Linker supports '-v' option.  */
+#define LINK_SPEC "%{v}"
+
 #define STARTFILE_SPEC "%{mmainkernel:crt0.o}"
 
 #define TARGET_CPU_CPP_BUILTINS() nvptx_cpu_cpp_builtins ()
-- 
2.25.1