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.)
2019-11-25 Tobias Burnus <tob...@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);