[{"id":1771960,"web_url":"http://patchwork.ozlabs.org/comment/1771960/","msgid":"<F9718412-D855-43DA-AA23-68A6D3E685FB@gmail.com>","list_archive_url":null,"date":"2017-09-20T15:03:28","subject":"Re: Make more use of simplify_gen_binary","submitter":{"id":1765,"url":"http://patchwork.ozlabs.org/api/people/1765/","name":"Richard Biener","email":"richard.guenther@gmail.com"},"content":"On September 20, 2017 2:30:53 PM GMT+02:00, Richard Sandiford <richard.sandiford@linaro.org> wrote:\n>This patch replaces various places that previously used:\n>\n>  if (GET_CODE (y) == CONST_INT)\n>    ... plus_constant (..., x, [-]INTVAL (y)) ...\n>  else\n>    ... gen_rtx_PLUS/MINUS (..., x, y) ...\n>\n>with single calls to simplify_gen_binary.  This allows\n>them to handle polynomial integers as well as constants.\n>\n>Tested on aarch64-linux-gnu, x86_64-linux-gnu and\n>powerpc64le-linus-gnu.\n>OK to install?\n\nOK. \n\nRichard. \n\n>Richard\n>\n>\n>2017-09-20  Richard Sandiford  <richard.sandiford@linaro.org>\n>\t    Alan Hayward  <alan.hayward@arm.com>\n>\t    David Sherwood  <david.sherwood@arm.com>\n>\n>gcc/\n>\t* calls.c (compute_argument_addresses): Use simplify_gen_binary\n>\trather than choosing between plus_constant and gen_rtx_<CODE>.\n>\t* expr.c (emit_push_insn): Likewise.\n>\t(expand_expr_real_2): Likewise.\n>\n>Index: gcc/calls.c\n>===================================================================\n>--- gcc/calls.c\t2017-09-12 14:27:14.515326027 +0100\n>+++ gcc/calls.c\t2017-09-20 13:28:58.742856729 +0100\n>@@ -2197,11 +2197,7 @@ compute_argument_addresses (struct arg_d\n> \t  if (POINTER_BOUNDS_P (args[i].tree_value))\n> \t    continue;\n> \n>-\t  if (CONST_INT_P (offset))\n>-\t    addr = plus_constant (Pmode, arg_reg, INTVAL (offset));\n>-\t  else\n>-\t    addr = gen_rtx_PLUS (Pmode, arg_reg, offset);\n>-\n>+\t  addr = simplify_gen_binary (PLUS, Pmode, arg_reg, offset);\n> \t  addr = plus_constant (Pmode, addr, arg_offset);\n> \n> \t  if (args[i].partial != 0)\n>@@ -2231,11 +2227,7 @@ compute_argument_addresses (struct arg_d\n> \t    }\n> \t  set_mem_align (args[i].stack, align);\n> \n>-\t  if (CONST_INT_P (slot_offset))\n>-\t    addr = plus_constant (Pmode, arg_reg, INTVAL (slot_offset));\n>-\t  else\n>-\t    addr = gen_rtx_PLUS (Pmode, arg_reg, slot_offset);\n>-\n>+\t  addr = simplify_gen_binary (PLUS, Pmode, arg_reg, slot_offset);\n> \t  addr = plus_constant (Pmode, addr, arg_offset);\n> \n> \t  if (args[i].partial != 0)\n>Index: gcc/expr.c\n>===================================================================\n>--- gcc/expr.c\t2017-09-18 14:58:24.371655718 +0100\n>+++ gcc/expr.c\t2017-09-20 13:28:58.743765039 +0100\n>@@ -4541,15 +4541,8 @@ emit_push_insn (rtx x, machine_mode mode\n>       else\n> #endif\n> \t{\n>-\t  if (CONST_INT_P (args_so_far))\n>-\t    addr\n>-\t      = memory_address (mode,\n>-\t\t\t\tplus_constant (Pmode, args_addr,\n>-\t\t\t\t\t       INTVAL (args_so_far)));\n>-\t  else\n>-\t    addr = memory_address (mode, gen_rtx_PLUS (Pmode, args_addr,\n>-\t\t\t\t\t\t       args_so_far));\n>-\t  dest = gen_rtx_MEM (mode, addr);\n>+\t  addr = simplify_gen_binary (PLUS, Pmode, args_addr, args_so_far);\n>+\t  dest = gen_rtx_MEM (mode, memory_address (mode, addr));\n> \n> \t  /* We do *not* set_mem_attributes here, because incoming arguments\n> \t     may overlap with sibling call outgoing arguments and we cannot\n>@@ -8565,14 +8558,7 @@ #define REDUCE_BIT_FIELD(expr)\t(reduce_b\n> \t{\n> \t  expand_operands (treeop0, treeop1,\n> \t\t\t   NULL_RTX, &op0, &op1, modifier);\n>-\n>-\t  /* If the last operand is a CONST_INT, use plus_constant of\n>-\t     the negated constant.  Else make the MINUS.  */\n>-\t  if (CONST_INT_P (op1))\n>-\t    return REDUCE_BIT_FIELD (plus_constant (mode, op0,\n>-\t\t\t\t\t\t    -INTVAL (op1)));\n>-\t  else\n>-\t    return REDUCE_BIT_FIELD (gen_rtx_MINUS (mode, op0, op1));\n>+\t  return simplify_gen_binary (MINUS, mode, op0, op1);\n> \t}\n> \n>       /* No sense saving up arithmetic to be done","headers":{"Return-Path":"<gcc-patches-return-462608-incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","mailing list gcc-patches@gcc.gnu.org"],"Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org\n\t(client-ip=209.132.180.131; helo=sourceware.org;\n\tenvelope-from=gcc-patches-return-462608-incoming=patchwork.ozlabs.org@gcc.gnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org\n\theader.b=\"SkEK5l0r\"; dkim-atps=neutral","sourceware.org; auth=none"],"Received":["from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xy30g6bJ2z9sNr\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 21 Sep 2017 01:03:47 +1000 (AEST)","(qmail 101835 invoked by alias); 20 Sep 2017 15:03:38 -0000","(qmail 101825 invoked by uid 89); 20 Sep 2017 15:03:37 -0000","from mail-wr0-f172.google.com (HELO mail-wr0-f172.google.com)\n\t(209.85.128.172) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tWed, 20 Sep 2017 15:03:35 +0000","by mail-wr0-f172.google.com with SMTP id l39so2413752wrl.12 for\n\t<gcc-patches@gcc.gnu.org>; Wed, 20 Sep 2017 08:03:34 -0700 (PDT)","from android-97b5c0ce9bfced28.fritz.box\n\t(p5494E583.dip0.t-ipconnect.de. [84.148.229.131]) by\n\tsmtp.gmail.com with ESMTPSA id\n\tk18sm1753522wmd.22.2017.09.20.08.03.31 (version=TLS1_2\n\tcipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);\n\tWed, 20 Sep 2017 08:03:31 -0700 (PDT)"],"DomainKey-Signature":"a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:date\n\t:in-reply-to:references:mime-version:content-type\n\t:content-transfer-encoding:subject:to:from:message-id; q=dns; s=\n\tdefault; b=UuIQDwrUQnOgtO2sCQIV3PWcrSqV4v0W5nmwvivu/KAq9E0+2bXcn\n\tzHrs/awAMIroYDuqz/EDOmbdc+IYHBr9Quzfz9CUH6DPjlW1XByL+C4PVHgR+xiw\n\ta7Fq2BegXAigx+kgTe4KGBBOEPNt2VdVqfHv07tpS2qtKoxKVrcAVM=","DKIM-Signature":"v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id\n\t:list-unsubscribe:list-archive:list-post:list-help:sender:date\n\t:in-reply-to:references:mime-version:content-type\n\t:content-transfer-encoding:subject:to:from:message-id; s=\n\tdefault; bh=VSN/GXQxewKJDBp7y+I5sqzNSlU=; b=SkEK5l0rw6TXWoDJ3GiB\n\tAI4ZLpGEUFG3aJY6bHr0gZs39jTWxnXoeWhGO2Qg5CPxJqc+vxAAJc4T0Do0+62s\n\tUk8t3w0E/9XrAA/3obyoMtLOKqsqAHFvXnrPJ7EVHE58UYdUtgU+VIvzP0Ii1DyO\n\tW9MAOnHSx0peYwRSoGSc5hk=","Mailing-List":"contact gcc-patches-help@gcc.gnu.org; run by ezmlm","Precedence":"bulk","List-Id":"<gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<mailto:gcc-patches-unsubscribe-incoming=patchwork.ozlabs.org@gcc.gnu.org>","List-Archive":"<http://gcc.gnu.org/ml/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-help@gcc.gnu.org>","Sender":"gcc-patches-owner@gcc.gnu.org","X-Virus-Found":"No","X-Spam-SWARE-Status":"No, score=-10.6 required=5.0 tests=AWL, BAYES_00,\n\tFREEMAIL_FROM, GIT_PATCH_2, GIT_PATCH_3, KAM_ASCII_DIVIDERS,\n\tRCVD_IN_DNSWL_NONE,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=","X-HELO":"mail-wr0-f172.google.com","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;\n\ts=20161025;\n\th=x-gm-message-state:date:user-agent:in-reply-to:references\n\t:mime-version:content-transfer-encoding:subject:to:from:message-id;\n\tbh=h/A0yJfeZIzedkOXVNdM9PqsDb3gxCEOfvNtt5mDzeM=;\n\tb=NmlZ3n0bSNO+Q9lHzhItNuzgW2zBqUg5rAu/t3asXuKyrfCsLLrtiw4HbL4+LdN2Ee\n\tcbmDrfQ/QiFYC3xbsJoYDIVv+BX3/HsyFbvKGPm8k+PUDuEKKRpCTQVTXuYWDf+0ldSW\n\tE4Go51cWTwo5RGAliSP4kshsJDEDfwf/unWDgSoU8T9oUy9INcxkIZVXnRyM6IahLQCz\n\tx3fcrBtu6H84LTtVMbCL1BlYfYf0Wfo+PSivLMdD6fwbXZ9F0gIh5SherC6x1z6L044y\n\tCnzgRjwRZi+42xxYHLpzKxYsWNk/gKn0K37nXRVZ2Trmn7osrOL/UD+f8ap4rzlJW5gF\n\tiY5Q==","X-Gm-Message-State":"AHPjjUi5GT9kQEsHCdemMHs6+sOBVcxOsgSPv3q6vfxUQV94257/INnr\thFK3vJ9sJg8BU0pdtRZwdNq3/af+","X-Google-Smtp-Source":"AOwi7QAUerWJIKj4gwCaQNcx9vPo74C8LpR26oYZMRJ7Wf5NeVmuQKxq/SGXjRTX+gOdVH3uwhjkvQ==","X-Received":"by 10.223.159.11 with SMTP id l11mr2374489wrf.148.1505919812611;\n\tWed, 20 Sep 2017 08:03:32 -0700 (PDT)","Date":"Wed, 20 Sep 2017 17:03:28 +0200","User-Agent":"K-9 Mail for Android","In-Reply-To":"<87wp4tzh4y.fsf@linaro.org>","References":"<87wp4tzh4y.fsf@linaro.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","Subject":"Re: Make more use of simplify_gen_binary","To":"gcc-patches@gcc.gnu.org, Richard Sandiford <richard.sandiford@linaro.org>","From":"Richard Biener <richard.guenther@gmail.com>","Message-ID":"<F9718412-D855-43DA-AA23-68A6D3E685FB@gmail.com>","X-IsSubscribed":"yes"}}]