From patchwork Tue Aug 2 10:39:11 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kai Tietz X-Patchwork-Id: 107892 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]) by ozlabs.org (Postfix) with SMTP id C93FBB71C2 for ; Tue, 2 Aug 2011 20:39:28 +1000 (EST) Received: (qmail 25020 invoked by alias); 2 Aug 2011 10:39:27 -0000 Received: (qmail 25011 invoked by uid 22791); 2 Aug 2011 10:39:26 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, TW_TM X-Spam-Check-By: sourceware.org Received: from mail-qy0-f175.google.com (HELO mail-qy0-f175.google.com) (209.85.216.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 02 Aug 2011 10:39:12 +0000 Received: by qyk30 with SMTP id 30so1568589qyk.20 for ; Tue, 02 Aug 2011 03:39:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.27.3 with SMTP id g3mr2570569qcc.178.1312281551793; Tue, 02 Aug 2011 03:39:11 -0700 (PDT) Received: by 10.229.99.137 with HTTP; Tue, 2 Aug 2011 03:39:11 -0700 (PDT) Date: Tue, 2 Aug 2011 12:39:11 +0200 Message-ID: Subject: [patch tree-optimization]: Add cleanup code for possible unused statements in binary optimization From: Kai Tietz To: GCC Patches Cc: Richard Guenther X-IsSubscribed: yes 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 Hello, this patch adds some statement-cleanup to forward-propagation. ChangeLog 2011-08-02 Kai Tietz * tree-ssa-forwprop.c (simplify_bitwise_binary): Remove possible unused statement after optimization. 2011-08-02 Kai Tietz * gcc.dg/tree-ssa/forwprop-9.c: Add test for no int casts. Bootstrapped and regression-tested for all languages (including Ada and Obj-C++) on host x86_64-pc-linux-gnu. Ok for apply? Regards, Kai Index: gcc/gcc/tree-ssa-forwprop.c =================================================================== --- gcc.orig/gcc/tree-ssa-forwprop.c +++ gcc/gcc/tree-ssa-forwprop.c @@ -1810,6 +1810,8 @@ simplify_bitwise_binary (gimple_stmt_ite gimple_assign_set_rhs_with_ops_1 (gsi, NOP_EXPR, tem, NULL_TREE, NULL_TREE); update_stmt (gsi_stmt (*gsi)); + if (TREE_CODE (arg1) == SSA_NAME) + remove_prop_source_from_use (arg1); return true; } @@ -1840,6 +1842,10 @@ simplify_bitwise_binary (gimple_stmt_ite gimple_assign_set_rhs_with_ops_1 (gsi, NOP_EXPR, tem, NULL_TREE, NULL_TREE); update_stmt (gsi_stmt (*gsi)); + if (TREE_CODE (arg1) == SSA_NAME) + remove_prop_source_from_use (arg1); + if (TREE_CODE (arg2) == SSA_NAME) + remove_prop_source_from_use (arg2); return true; } @@ -1887,6 +1893,8 @@ simplify_bitwise_binary (gimple_stmt_ite gimple_assign_set_rhs1 (stmt, def1_arg1); gimple_assign_set_rhs2 (stmt, cst); update_stmt (stmt); + if (TREE_CODE (arg1) == SSA_NAME) + remove_prop_source_from_use (arg1); return true; } @@ -1907,6 +1915,10 @@ simplify_bitwise_binary (gimple_stmt_ite { gimple_assign_set_rhs_from_tree (gsi, res); update_stmt (gsi_stmt (*gsi)); + if (TREE_CODE (arg1) == SSA_NAME) + remove_prop_source_from_use (arg1); + if (TREE_CODE (arg2) == SSA_NAME) + remove_prop_source_from_use (arg2); return true; } Index: gcc/gcc/testsuite/gcc.dg/tree-ssa/forwprop-9.c =================================================================== --- gcc.orig/gcc/testsuite/gcc.dg/tree-ssa/forwprop-9.c +++ gcc/gcc/testsuite/gcc.dg/tree-ssa/forwprop-9.c @@ -11,4 +11,5 @@ foo (_Bool a, _Bool b, _Bool c /* { dg-final { scan-tree-dump-times " == " 0 "forwprop1" } } */ /* { dg-final { scan-tree-dump-times " != " 0 "forwprop1" } } */ +/* { dg-final { scan-tree-dump-times "\\\(int\\\)" 0 "forwprop1" } } */ /* { dg-final { cleanup-tree-dump "forwprop1" } } */