[{"id":1772016,"web_url":"http://patchwork.ozlabs.org/comment/1772016/","msgid":"<CAFiYyc3zNV3mcc_X1SScPLQ0Qvb3ArVHBWZv59G8s-8J_CtN_g@mail.gmail.com>","list_archive_url":null,"date":"2017-09-20T15:56:18","subject":"Re: Tighten tree-ssa-ccp.c:get_value_for_expr condition","submitter":{"id":1765,"url":"http://patchwork.ozlabs.org/api/people/1765/","name":"Richard Biener","email":"richard.guenther@gmail.com"},"content":"On Wed, Sep 20, 2017 at 2:12 PM, Richard Sandiford\n<richard.sandiford@linaro.org> wrote:\n> bit_value_unop and bit_value_binop require constant values\n> to be INTEGER_CSTs:\n>\n>   gcc_assert ((rval.lattice_val == CONSTANT\n>                && TREE_CODE (rval.value) == INTEGER_CST)\n>               || wi::sext (rval.mask, TYPE_PRECISION (TREE_TYPE (rhs))) == -1);\n>\n> However, when deciding whether to record a constant value,\n> the for_bits_p handling in get_value_for_expr used a negative\n> test for ADDR_EXPR:\n>\n>   else if (is_gimple_min_invariant (expr)\n>            && (!for_bits_p || TREE_CODE (expr) != ADDR_EXPR))\n>\n> This patch uses a positive test for INTEGER_CST instead.\n>\n> Existing tests showed the need for this once polynomial constants\n> are added.\n>\n> Tested on aarch64-linux-gnu, x86_64-linux-gnu and 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>             Alan Hayward  <alan.hayward@arm.com>\n>             David Sherwood  <david.sherwood@arm.com>\n>\n> gcc/\n>         * tree-ssa-ccp.c (get_value_for_expr): Use a positive test for\n>         INTEGER_CST rather than a negative test for ADDR_EXPR.\n>\n> Index: gcc/tree-ssa-ccp.c\n> ===================================================================\n> --- gcc/tree-ssa-ccp.c  2017-08-10 14:36:07.842479033 +0100\n> +++ gcc/tree-ssa-ccp.c  2017-09-20 13:10:31.466004578 +0100\n> @@ -617,7 +617,7 @@ get_value_for_expr (tree expr, bool for_\n>         }\n>      }\n>    else if (is_gimple_min_invariant (expr)\n> -          && (!for_bits_p || TREE_CODE (expr) != ADDR_EXPR))\n> +          && (!for_bits_p || TREE_CODE (expr) == INTEGER_CST))\n>      {\n>        val.lattice_val = CONSTANT;\n>        val.value = expr;","headers":{"Return-Path":"<gcc-patches-return-462615-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-462615-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=\"P6ebG6wJ\"; 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 3xy49V0CVmz9sPt\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 21 Sep 2017 01:56:29 +1000 (AEST)","(qmail 33464 invoked by alias); 20 Sep 2017 15:56:22 -0000","(qmail 33447 invoked by uid 89); 20 Sep 2017 15:56:21 -0000","from mail-wm0-f53.google.com (HELO mail-wm0-f53.google.com)\n\t(74.125.82.53) by sourceware.org\n\t(qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP;\n\tWed, 20 Sep 2017 15:56:20 +0000","by mail-wm0-f53.google.com with SMTP id r68so8520691wmg.3 for\n\t<gcc-patches@gcc.gnu.org>; Wed, 20 Sep 2017 08:56:20 -0700 (PDT)","by 10.80.143.34 with HTTP; Wed, 20 Sep 2017 08:56:18 -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\n\t:mime-version:in-reply-to:references:from:date:message-id\n\t:subject:to:content-type; q=dns; s=default; b=x+1tzEB9XtB5KBZSHa\n\tyeCariFQNX0PtN1eGNqTP2+AHwlZIXSjewSyUT0/GZl3mHrLkjXgoBI4pa9EhEFw\n\tHOU/BWPI7h6jAv42sjfc2Vou2OmIIIivoMMKIHddlWCAFFPoMyza67Sd1iY5fM+X\n\t4jecB/1nE0LyuPiBMFva9ZIM4=","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\n\t:mime-version:in-reply-to:references:from:date:message-id\n\t:subject:to:content-type; s=default; bh=LKNR8dttNvFjwgzsIcq93cg5\n\tJTk=; b=P6ebG6wJfD0zqC/c05Vrwy5vxnyA6C7HNTS6GD+76oWAEvE7j/FboI6r\n\t+ow0Dkb/GwACF3kA7yv2N7uOAF6fyl/NXspbnCZeqYLbAVp7Ozbenn2pQ0v7nRvn\n\ttNpGzIDh2pP15t0EuGT6pbTQBb1odOVX/yK/pYCyXaW6CCAXPfQ=","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.5 required=5.0 tests=AWL, BAYES_00,\n\tFREEMAIL_FROM, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE,\n\tRCVD_IN_SORBS_SPAM,\n\tSPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1675","X-HELO":"mail-wm0-f53.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:mime-version:in-reply-to:references:from:date\n\t:message-id:subject:to;\n\tbh=cRQZo0lPJwH+So6Ls6d4abfvFXLdYhRKB2IyWZ40254=;\n\tb=dfVciK/xuhX8rRbcuwtN1qyVk2MCXe20++IEzjwcp2+jjK5rKF6yuZ4GetcV1OuYeK\n\tcargNiDP6xlJFumupvKp4RNxXh8KOam5aS4Uc/RF3Dzk/1c9K0GQQpiUP/5k38q4MpSJ\n\tfAAslvpXCG23n7S7sicrIlW13tPvWBBb8RQjuxKeLEOYl1gzkgUa5EZwIbsaXyOIcrRh\n\tNP+aAm7GXXPW3NIEblJfTV69BNoFS9MmTTgeKVgRwamltt5LnaWsMIOiw6IZSCPUNe8V\n\tWQpvt0mPdfBpZ9oVbhrmp0GdIp+9OR1fF4FVffwC0Z24SS0Mdm9kJuCTVnjCVkk275KU\n\tb3uQ==","X-Gm-Message-State":"AHPjjUjiEhIZxA4KHjmNmSwyBGXXI9Gvp1pesUr/bkp4SYH1TjLT2jb4\tKRCVp+KCk8kZaedXGLpCMQMnE57fjyghUiK1x9J9bA==","X-Google-Smtp-Source":"AOwi7QDimwDaYNAFAoXwckeVQ8OPyd+35lWXiZ2Q3GqgI1VlBUQQ/zQYm7D1eTYocMgKDTicUb/pj+G2twGk89UmHR4=","X-Received":"by 10.80.146.56 with SMTP id i53mr5180358eda.148.1505922978706;\n\tWed, 20 Sep 2017 08:56:18 -0700 (PDT)","MIME-Version":"1.0","In-Reply-To":"<87lgl91sd0.fsf@linaro.org>","References":"<87lgl91sd0.fsf@linaro.org>","From":"Richard Biener <richard.guenther@gmail.com>","Date":"Wed, 20 Sep 2017 17:56:18 +0200","Message-ID":"<CAFiYyc3zNV3mcc_X1SScPLQ0Qvb3ArVHBWZv59G8s-8J_CtN_g@mail.gmail.com>","Subject":"Re: Tighten tree-ssa-ccp.c:get_value_for_expr condition","To":"GCC Patches <gcc-patches@gcc.gnu.org>,\n\tRichard Sandiford <richard.sandiford@linaro.org>","Content-Type":"text/plain; charset=\"UTF-8\"","X-IsSubscribed":"yes"}}]