diff options
author | Richard Biener <rguenther@suse.de> | 2021-11-24 15:57:03 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-11-25 14:23:44 +0100 |
commit | 555b8cc39062d1e02ed9117883229c75e17a8871 (patch) | |
tree | 3cd4a2e92f0b679e249de44bb0c8ff43e8823759 /gcc | |
parent | 1167d4890f7aba2bc173a4f4abb10d86e306864c (diff) | |
download | gcc-555b8cc39062d1e02ed9117883229c75e17a8871.zip gcc-555b8cc39062d1e02ed9117883229c75e17a8871.tar.gz gcc-555b8cc39062d1e02ed9117883229c75e17a8871.tar.bz2 |
Introduce REG_SET_EMPTY_P
This avoids a -Wunreachable-code diagnostic with EXECUTE_IF_*
in case the first iteration will exit the loop. For the case
in thread_jump using bitmap_empty_p looks preferable so this
adds REG_SET_EMPTY_P to make that available for register sets.
2021-11-25 Richard Biener <rguenther@suse.de>
* regset.h (REG_SET_EMPTY_P): New macro.
* cfgcleanup.c (thread_jump): Use REG_SET_EMPTY_P.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cfgcleanup.c | 3 | ||||
-rw-r--r-- | gcc/regset.h | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 82fc505..67ae059 100644 --- a/gcc/cfgcleanup.c +++ b/gcc/cfgcleanup.c @@ -256,7 +256,6 @@ thread_jump (edge e, basic_block b) unsigned i; regset nonequal; bool failed = false; - reg_set_iterator rsi; /* Jump threading may cause fixup_partitions to introduce new crossing edges, which is not allowed after reload. */ @@ -379,7 +378,7 @@ thread_jump (edge e, basic_block b) goto failed_exit; } - EXECUTE_IF_SET_IN_REG_SET (nonequal, 0, i, rsi) + if (!REG_SET_EMPTY_P (nonequal)) goto failed_exit; BITMAP_FREE (nonequal); diff --git a/gcc/regset.h b/gcc/regset.h index aee6d6f..997b4d2 100644 --- a/gcc/regset.h +++ b/gcc/regset.h @@ -49,6 +49,9 @@ typedef bitmap regset; /* Clear a register set by freeing up the linked list. */ #define CLEAR_REG_SET(HEAD) bitmap_clear (HEAD) +/* True if the register set is empty. */ +#define REG_SET_EMPTY_P(HEAD) bitmap_empty_p (HEAD) + /* Copy a register set to another register set. */ #define COPY_REG_SET(TO, FROM) bitmap_copy (TO, FROM) |