From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1666) id DF3A63858403; Thu, 25 Nov 2021 13:24:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DF3A63858403 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Richard Biener To: gcc-cvs@gcc.gnu.org Subject: [gcc r12-5517] Introduce REG_SET_EMPTY_P X-Act-Checkin: gcc X-Git-Author: Richard Biener X-Git-Refname: refs/heads/master X-Git-Oldrev: 1167d4890f7aba2bc173a4f4abb10d86e306864c X-Git-Newrev: 555b8cc39062d1e02ed9117883229c75e17a8871 Message-Id: <20211125132420.DF3A63858403@sourceware.org> Date: Thu, 25 Nov 2021 13:24:20 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Nov 2021 13:24:21 -0000 https://gcc.gnu.org/g:555b8cc39062d1e02ed9117883229c75e17a8871 commit r12-5517-g555b8cc39062d1e02ed9117883229c75e17a8871 Author: Richard Biener Date: Wed Nov 24 15:57:03 2021 +0100 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 * regset.h (REG_SET_EMPTY_P): New macro. * cfgcleanup.c (thread_jump): Use REG_SET_EMPTY_P. Diff: --- gcc/cfgcleanup.c | 3 +-- gcc/regset.h | 3 +++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c index 82fc505ff50..67ae0597cee 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 aee6d6f974f..997b4d2d827 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)