From patchwork Wed Jun 9 15:48:11 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Biener X-Patchwork-Id: 55108 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 223D0B7D48 for ; Thu, 10 Jun 2010 01:48:33 +1000 (EST) Received: (qmail 11166 invoked by alias); 9 Jun 2010 15:48:28 -0000 Received: (qmail 11152 invoked by uid 22791); 9 Jun 2010 15:48:26 -0000 X-SWARE-Spam-Status: No, hits=-3.4 required=5.0 tests=AWL, BAYES_00, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from cantor2.suse.de (HELO mx2.suse.de) (195.135.220.15) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 09 Jun 2010 15:48:14 +0000 Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) by mx2.suse.de (Postfix) with ESMTP id E374B8891E for ; Wed, 9 Jun 2010 17:48:11 +0200 (CEST) Date: Wed, 9 Jun 2010 17:48:11 +0200 (CEST) From: Richard Guenther To: gcc-patches@gcc.gnu.org Subject: [PATCH][mem-ref2] Fix inline estimates Message-ID: User-Agent: Alpine 2.00 (LNX 1167 2008-08-23) MIME-Version: 1.0 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 Committed. 2010-06-09 Richard Guenther * ipa-inline.c (likely_eliminated_by_inlining_p): Handle MEM_REF. Index: gcc/ipa-inline.c =================================================================== --- gcc/ipa-inline.c (revision 160434) +++ gcc/ipa-inline.c (working copy) @@ -1830,10 +1830,12 @@ likely_eliminated_by_inlining_p (gimple bool rhs_free = false; bool lhs_free = false; - while (handled_component_p (inner_lhs) || TREE_CODE (inner_lhs) == INDIRECT_REF) + while (handled_component_p (inner_lhs) + || TREE_CODE (inner_lhs) == MEM_REF) inner_lhs = TREE_OPERAND (inner_lhs, 0); while (handled_component_p (inner_rhs) - || TREE_CODE (inner_rhs) == ADDR_EXPR || TREE_CODE (inner_rhs) == INDIRECT_REF) + || TREE_CODE (inner_rhs) == ADDR_EXPR + || TREE_CODE (inner_rhs) == MEM_REF) inner_rhs = TREE_OPERAND (inner_rhs, 0); @@ -1853,7 +1855,8 @@ likely_eliminated_by_inlining_p (gimple || (TREE_CODE (inner_lhs) == SSA_NAME && TREE_CODE (SSA_NAME_VAR (inner_lhs)) == RESULT_DECL)) lhs_free = true; - if (lhs_free && (is_gimple_reg (rhs) || is_gimple_min_invariant (rhs))) + if (lhs_free + && (is_gimple_reg (rhs) || is_gimple_min_invariant (rhs))) rhs_free = true; if (lhs_free && rhs_free) return true;