From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1666) id 9A98D3858414; Wed, 21 Jun 2023 12:01:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9A98D3858414 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1687348909; bh=edxe04qQ3M3RmklS5T9ZO9JGo4WbU4pXFssQyd3yv/M=; h=From:To:Subject:Date:From; b=U3h2Tp7tzA1+TNlyeSDrWU9M0PqJ2QXVoh9lofhdJ8y2nw5f8V9i9yDW0UYQPNR4o Hdn760isiyyVrrLbqSBBiiN6cKPWFbZoP7FqUba6r6tF5ocZe3wm+LxV0ngDcypQjQ MbIRCyaxdMSWipGpcHUgydhoZp+ffl+bUEiKm1eM= 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 r14-2014] Less strip_offset in IVOPTs X-Act-Checkin: gcc X-Git-Author: Richard Biener X-Git-Refname: refs/heads/master X-Git-Oldrev: fb0447b1f6b7373f57cb3a3d17a46803cfd9909d X-Git-Newrev: 5d88932657de239a941ad84ef0996a906ecd8fe9 Message-Id: <20230621120149.9A98D3858414@sourceware.org> Date: Wed, 21 Jun 2023 12:01:49 +0000 (GMT) List-Id: https://gcc.gnu.org/g:5d88932657de239a941ad84ef0996a906ecd8fe9 commit r14-2014-g5d88932657de239a941ad84ef0996a906ecd8fe9 Author: Richard Biener Date: Wed Jun 21 11:38:19 2023 +0200 Less strip_offset in IVOPTs This avoids a strip_offset use in record_group_use where we know it operates on addresses. * tree-ssa-loop-ivopts.cc (record_group_use): Use split_constant_offset. Diff: --- gcc/tree-ssa-loop-ivopts.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gcc/tree-ssa-loop-ivopts.cc b/gcc/tree-ssa-loop-ivopts.cc index 82531f97b93..957a3001e16 100644 --- a/gcc/tree-ssa-loop-ivopts.cc +++ b/gcc/tree-ssa-loop-ivopts.cc @@ -1175,9 +1175,6 @@ contain_complex_addr_expr (tree expr) return res; } -static tree -strip_offset (tree expr, poly_uint64_pod *offset); - /* Allocates an induction variable with given initial value BASE and step STEP for loop LOOP. NO_OVERFLOW implies the iv doesn't overflow. */ @@ -1609,7 +1606,10 @@ record_group_use (struct ivopts_data *data, tree *use_p, { unsigned int i; - addr_base = strip_offset (iv->base, &addr_offset); + gcc_assert (POINTER_TYPE_P (TREE_TYPE (iv->base))); + tree addr_toffset; + split_constant_offset (iv->base, &addr_base, &addr_toffset); + addr_offset = int_cst_value (addr_toffset); for (i = 0; i < data->vgroups.length (); i++) { struct iv_use *use;