From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2119) id 8932E3858C62; Tue, 21 Nov 2023 04:11:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8932E3858C62 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1700539901; bh=eYqMMnN4Rc7dslU1dVvXDLImhCrCGMdw2wCvhWt4AwY=; h=From:To:Subject:Date:From; b=hAeBhLBaLWBXQhYBOMyMQrz2NDEdPagfGtGIDAW6iCjYOME7Q/zEn82VKAUMZA+iv gRdZthwWZyYwCrwZ9NFqM3U1LcHtI8PZkEIQhsdNAG1o2HX+MjU9DGz/zjnIVuN7uW D+7YYovhH4LfxUKy0e5Pp2zb3ygk/1MCpsJvtCUk= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Jeff Law To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/vendors/riscv/heads/gcc-13-with-riscv-opts)] mode-switching: Use 1-based edge aux fields X-Act-Checkin: gcc X-Git-Author: Richard Sandiford X-Git-Refname: refs/vendors/riscv/heads/gcc-13-with-riscv-opts X-Git-Oldrev: 046fbffad415325531d371568364b2ce24fb0b5e X-Git-Newrev: b8fc4df2ffae7489957d87b9dd1efd09302c1db0 Message-Id: <20231121041141.8932E3858C62@sourceware.org> Date: Tue, 21 Nov 2023 04:11:41 +0000 (GMT) List-Id: https://gcc.gnu.org/g:b8fc4df2ffae7489957d87b9dd1efd09302c1db0 commit b8fc4df2ffae7489957d87b9dd1efd09302c1db0 Author: Richard Sandiford Date: Sat Nov 11 17:28:59 2023 +0000 mode-switching: Use 1-based edge aux fields The pass used the edge aux field to record which mode change should happen on the edge, with -1 meaning "none". It's more convenient for later patches to leave aux zero for "none", and use numbers based at 1 to record a change. gcc/ * mode-switching.cc (commit_mode_sets): Use 1-based edge aux values. (cherry picked from commit 718228a6f479fe252e0e6f71933c2465b7b480a9) Diff: --- gcc/mode-switching.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gcc/mode-switching.cc b/gcc/mode-switching.cc index 7a5c4993d65..6b5661131e3 100644 --- a/gcc/mode-switching.cc +++ b/gcc/mode-switching.cc @@ -106,10 +106,10 @@ commit_mode_sets (struct edge_list *edge_list, int e, struct bb_info *info) for (int ed = NUM_EDGES (edge_list) - 1; ed >= 0; ed--) { edge eg = INDEX_EDGE (edge_list, ed); - int mode; - if ((mode = (int)(intptr_t)(eg->aux)) != -1) + if (eg->aux) { + int mode = (int) (intptr_t) eg->aux - 1; HARD_REG_SET live_at_edge; basic_block src_bb = eg->src; int cur_mode = info[src_bb->index].mode_out; @@ -728,14 +728,14 @@ optimize_mode_switching (void) { edge eg = INDEX_EDGE (edge_list, ed); - eg->aux = (void *)(intptr_t)-1; + eg->aux = (void *) (intptr_t) 0; for (i = 0; i < no_mode; i++) { int m = targetm.mode_switching.priority (entity_map[j], i); if (mode_bit_p (insert[ed], j, m)) { - eg->aux = (void *)(intptr_t)m; + eg->aux = (void *) (intptr_t) (m + 1); break; } }