Skip to content

Commit

Permalink
[nvptx] Fix ASM_SPEC workaround for sm_30
Browse files Browse the repository at this point in the history
Newer versions of CUDA no longer support sm_30, and nvptx-tools as
currently doesn't handle that gracefully when verifying
( SourceryTools/nvptx-tools#30 ).

There's a --no-verify work-around in place in ASM_SPEC, but that one doesn't
work when using -Wa,--verify on the command line.

Use a more robust workaround: verify using sm_35 when misa=sm_30 is specified
(either implicitly or explicitly).

Tested on nvptx.

gcc/ChangeLog:

2022-03-30  Tom de Vries  <[email protected]>

	* config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
  • Loading branch information
vries committed Mar 31, 2022
1 parent b75f996 commit bf4832d
Showing 1 changed file with 18 additions and 4 deletions.
22 changes: 18 additions & 4 deletions gcc/config/nvptx/nvptx.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,24 @@

#define STARTFILE_SPEC "%{mmainkernel:crt0.o}"

/* Default needs to be in sync with default for misa in nvptx.opt.
We add a default here to work around a hard-coded sm_30 default in
nvptx-as. */
#define ASM_SPEC "%{misa=*:-m %*; :-m sm_35}%{misa=sm_30:--no-verify}"
/* Newer versions of CUDA no longer support sm_30, and nvptx-tools as
currently doesn't handle that gracefully when verifying
( https://github.com/MentorEmbedded/nvptx-tools/issues/30 ). Work around
this by verifying with sm_35 when having misa=sm_30 (either implicitly
or explicitly). */
#define ASM_SPEC \
"%{" \
/* Explict misa=sm_30. */ \
"misa=sm_30:-m sm_35" \
/* Separator. */ \
"; " \
/* Catch-all. */ \
"misa=*:-m %*" \
/* Separator. */ \
"; " \
/* Implicit misa=sm_30. */ \
":-m sm_35" \
"}"

#define TARGET_CPU_CPP_BUILTINS() nvptx_cpu_cpp_builtins ()

Expand Down

0 comments on commit bf4832d

Please sign in to comment.