From patchwork Mon Aug 12 06:46:22 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhouyi Zhou X-Patchwork-Id: 266441 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "localhost", Issuer "www.qmailtoaster.com" (not verified)) by ozlabs.org (Postfix) with ESMTPS id E7F572C00F5 for ; Mon, 12 Aug 2013 16:46:37 +1000 (EST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type; q=dns; s= default; b=Gz4cWsE/0FfcULywErOY41v/HdkLvPbla8nvJwNsG2UKyVhQFLKN7 fZK9yDI4BVpF85YWpXkJVjgCNtC9QW7euKJG9NG5ltrBn6khSgEX1X7dphc2V70g ztfPAqBWbXRnugEHXiYZwkwwzq5FUOT+5XXM7Rx0WfKGjTwVd6dw74= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:subject:message-id:mime-version:content-type; s= default; bh=KAzhf03Bkqx4j2vYlts8o29DeIQ=; b=EHzSEyOjXQs00Jiwmo4p wCU1scOS/bVZ1oXDMykCeI7ts5czN5ONQfh/aFSu1q97K3N4B1K5VMEWVWG7tGES uj6dY82KpsxfDqHysxt7/9tXGAjnXG7HOtcZTtPt3BWpa7nieCsuwMLBkXuRxXcS bJd4KC6iCPZhLmXQf69VRJU= Received: (qmail 9717 invoked by alias); 12 Aug 2013 06:46:30 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 9701 invoked by uid 89); 12 Aug 2013 06:46:30 -0000 X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00, SPF_HELO_PASS autolearn=ham version=3.3.2 Received: from smtp23.cstnet.cn (HELO cstnet.cn) (159.226.251.23) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Mon, 12 Aug 2013 06:46:27 +0000 Received: from LENOVO-78E4FF17 (unknown [159.226.43.61]) by app3 (Coremail) with SMTP id SQCowJAb6AW_hAhS4QFSAA--.11757S3; Mon, 12 Aug 2013 14:46:23 +0800 (CST) Date: Mon, 12 Aug 2013 14:46:22 +0800 From: Zhouyi Zhou To: gcc-patches@gcc.gnu.org Subject: [PATCH] TREE-SSA remove redundant condition checks in get_default_value Message-Id: <20130812144622.09f848eb.yizhouzhou@ict.ac.cn> Mime-Version: 1.0 X-CM-TRANSID: SQCowJAb6AW_hAhS4QFSAA--.11757S3 X-Coremail-Antispam: 1UD129KBjvdXoW7JFW3Ww4fGr1xJw4rWr4kZwb_yoWktrbEqw 1fXr4xZr4UXrWxGw4vk3W3Kr4Sq3yj9w48Z3yvqrnFka4DXFs8W3sFyrW3Z34UZry5AF9x Ww47Xwn29rnFyjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUIcSsGvfJTRUUUbV8YjsxI4VWkCwAYFVCjjxCrM7AC8VAFwI0_Jr0_Gr1l1xkIjI8I 6I8E6xAIw20EY4v20xvaj40_Wr0E3s1l1IIY67AEw4v_Jr0_Jr4l8cAvFVAK0II2c7xJM2 8EF7xvwVC0I7IYx2IY67AKxVW7JVWDJwA2z4x0Y4vE2Ix0cI8IcVCY1x0267AKxVW8Jr0_ Cr1UM28EF7xvwVC2z280aVAFwI0_GcCE3s1l84ACjcxK6I8E87Iv6xkF7I0E14v26rxl6s 0DM2AIxVAIcxkEcVAq07x20xvEncxIr21le4C267I2x7xF54xIwI1l5I8CrVACY4xI64kE 6c02F40Ex7xfMcIj6xIIjxv20xvE14v26r1q6rW5McIj6xkF7I0En7xvr7AKxVWUJVW8Jw Av7VC2z280aVAFwI0_Gr1j6F4UJwAm72CE4IkC6x0Yz7v_Jr0_Gr1lF7xvr2IYc2Ij64vI r41lF7xvr2IYc2Ij64vIr40E4x8a64kEw24lc2xSY4AK67AK6r47MxAIw28IcxkI7VAKI4 8JMI8I3I0E5I8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF 67AKxVWUJVWUXwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2I x0cI8IcVCY1x0267AKxVWUJVW8JwCI42IY6xAIw20EY4v20xvaj40_WFyUJVCq3wCI42IY 6I8E87Iv67AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r1j6r4UYxBIdaVFxhVjvj DU0xZFpf9x07jhl1kUUUUU= X-CM-SenderInfo: x1l2x05x2k03g6lf3hldfou0/ X-Virus-Found: No In function get_default_value of tree-ssa-ccp.c, 261 else if (is_gimple_assign (stmt) 262 /* Value-returning GIMPLE_CALL statements assign to 263 a variable, and are treated similarly to GIMPLE_ASSIGN. */ 264 || (is_gimple_call (stmt) 265 && gimple_call_lhs (stmt) != NULL_TREE) 266 || gimple_code (stmt) == GIMPLE_PHI) 267 { 268 tree cst; 269 if (gimple_assign_single_p (stmt) 270 && DECL_P (gimple_assign_rhs1 (stmt)) 271 && (cst = get_symbol_constant_value (gimple_assign_rhs1 (stmt)))) 272 { 273 val.lattice_val = CONSTANT; 274 val.value = cst; 275 } 276 else 277 /* Any other variable defined by an assignment or a PHI node 278 is considered UNDEFINED. */ 279 val.lattice_val = UNDEFINED; if the stmt is a gimple call node or a gimple phi node, it will never satisfy the condition gimple_assign_single_p (stmt). so there exists redundant condition checks. The patch attached try to remove this. Bootstrap passed. Regression tested on x86_64-unknown-linux-gnu (pc). ChangeLog: 2013-08-13 Zhouyi Zhou * tree-ssa-ccp.c (get_default_value): remove redundant condition checks diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c index 6472f48..7fbb687 100644 --- a/gcc/tree-ssa-ccp.c +++ b/gcc/tree-ssa-ccp.c @@ -258,12 +258,7 @@ get_default_value (tree var) val.mask = double_int_minus_one; } } - else if (is_gimple_assign (stmt) - /* Value-returning GIMPLE_CALL statements assign to - a variable, and are treated similarly to GIMPLE_ASSIGN. */ - || (is_gimple_call (stmt) - && gimple_call_lhs (stmt) != NULL_TREE) - || gimple_code (stmt) == GIMPLE_PHI) + else if (is_gimple_assign (stmt)) { tree cst; if (gimple_assign_single_p (stmt) @@ -274,10 +269,18 @@ get_default_value (tree var) val.value = cst; } else - /* Any other variable defined by an assignment or a PHI node + /* Any other variable defined by an assignment is considered UNDEFINED. */ val.lattice_val = UNDEFINED; } + else if ((is_gimple_call (stmt) + && gimple_call_lhs (stmt) != NULL_TREE) + || gimple_code (stmt) == GIMPLE_PHI) + { + /*Variable defined by a call or a PHI node + is considered UNDEFINED. */ + val.lattice_val = UNDEFINED; + } else { /* Otherwise, VAR will never take on a constant value. */