diff mbox series

[amdgcn] Silence warnings + add gcc_unreachable() (was: Re: [committed, amdgcn] Use GFX9 granulated sgprs count correctly)

Message ID d69ca1f2-b81a-d7f2-2c8a-4e75d3be61fe@codesourcery.com
State New
Headers show
Series [amdgcn] Silence warnings + add gcc_unreachable() (was: Re: [committed, amdgcn] Use GFX9 granulated sgprs count correctly) | expand

Commit Message

Tobias Burnus Nov. 25, 2019, 11:14 a.m. UTC
This patch adds "gcc_unreachable ();" as suggested by me (cf. below).
It also silences the -Wunused-variable + 'no return statement' warnings.

OK for the trunk?

Tobias

PS: The warning fixes were part of my OG9 silence-warnings patch at 
https://gcc.gnu.org/ml/gcc-patches/2019-09/msg01056.html , committed to 
OG9 as 500483e6ced44e2e0fea6a37e4f8c267ebaf826a

On 11/22/19 3:56 PM, Tobias Burnus wrote:
> On 11/22/19 3:47 PM, Andrew Stubbs wrote:
>> --- a/gcc/config/gcn/gcn.c
>> +++ b/gcc/config/gcn/gcn.c
>> @@ -4922,6 +4922,14 @@ gcn_hsa_declare_function_name (FILE *file, 
>> const char *name, tree)
>> +  int granulated_sgprs;
>> +  if (TARGET_GCN3)
>> +    granulated_sgprs = (sgpr + extra_regs + 7) / 8 - 1;
>> +  else if (TARGET_GCN5)
>> +    granulated_sgprs = 2 * ((sgpr + extra_regs + 15) / 16 - 1);
>
> Would it make sense to add here:
>
> else
>   gcc_unreachable ();
>
> (TARGET_GCN5_PLUS would also work, but gcc_unreachable is probably 
> better.)

Comments

Andrew Stubbs Nov. 25, 2019, 11:21 a.m. UTC | #1
On 25/11/2019 11:14, Tobias Burnus wrote:
> This patch adds "gcc_unreachable ();" as suggested by me (cf. below).
> It also silences the -Wunused-variable + 'no return statement' warnings.
> 
> OK for the trunk?

OK.

Thanks, Tobias.

Andrew
diff mbox series

Patch

2019-11-25  Tobias Burnus  <tobias@codesourcery.com>

	* config/gcn/gcn.c (gcn_expand_scalar_to_vector_address,
	gcn_md_reorg): Remove unused variables.
	(gcn_emutls_var_init): Add missing (but unreachable) return
	to silence warning.
	(gcn_hsa_declare_function_name): Add gcc_unreachable to ensure
	target != TARGET_GCN3 or TARGET_GCN3 will fail instead of use
	an uninitialized variable.

Index: gcc/config/gcn/gcn.c
===================================================================
--- gcc/config/gcn/gcn.c	(revision 278670)
+++ gcc/config/gcn/gcn.c	(working copy)
@@ -1783,7 +1783,6 @@  gcn_expand_scalar_to_vector_address (machine_mode
 	  /* tmp[:] += zext (mem_base)  */
 	  if (exec)
 	    {
-	      rtx undef_di = gcn_gen_undef (DImode);
 	      emit_insn (gen_addv64si3_vcc_dup_exec (tmplo, mem_base_lo, tmplo,
 						     vcc, undef_v64si, exec));
 	      emit_insn (gen_addcv64si3_exec (tmphi, tmphi, const0_rtx,
@@ -3213,6 +3212,7 @@  tree
 gcn_emutls_var_init (tree, tree decl, tree)
 {
   sorry_at (DECL_SOURCE_LOCATION (decl), "TLS is not implemented for GCN.");
+  return NULL_TREE;
 }
 
 /* }}}  */
@@ -4340,8 +4340,6 @@  gcn_md_reorg (void)
 {
   basic_block bb;
   rtx exec_reg = gen_rtx_REG (DImode, EXEC_REG);
-  rtx exec_lo_reg = gen_rtx_REG (SImode, EXEC_LO_REG);
-  rtx exec_hi_reg = gen_rtx_REG (SImode, EXEC_HI_REG);
   regset_head live;
 
   INIT_REG_SET (&live);
@@ -4937,6 +4935,8 @@  gcn_hsa_declare_function_name (FILE *file, const c
     granulated_sgprs = (sgpr + extra_regs + 7) / 8 - 1;
   else if (TARGET_GCN5)
     granulated_sgprs = 2 * ((sgpr + extra_regs + 15) / 16 - 1);
+  else
+    gcc_unreachable ();
 
   fputs ("\t.align\t256\n", file);
   fputs ("\t.type\t", file);