From patchwork Fri Nov 30 09:20:33 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Biener X-Patchwork-Id: 202900 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 22FA82C008F for ; Fri, 30 Nov 2012 20:24:56 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1354872297; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Date: From:To:Subject:Message-ID:User-Agent:MIME-Version:Content-Type: Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:Sender:Delivered-To; bh=cc7nMYwA/PeeI4L3dbWx DiapqUs=; b=GIT6veXrNz7CtEoKEauEA4HCbkvSxmypYq5rw1bPoFgtLECYCluo dA1/7vGPERazlbJEp8uiPgJJFB/Y4ru+XO3dTEKwWyoR7m2U5tGt86QrY6KwNGvp vJg3zIc2wpk3d8oiVZRN3ZbA08yCD/+yVNcLAnLsxi0yALjvtxHS0Tk= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Date:From:To:Subject:Message-ID:User-Agent:MIME-Version:Content-Type:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=c7k6UkgH2+CbxfkF2Vy2v5rLTULKOMowa9RMIMhTvRiqNyvh0l5BCe+8Hbt1jJ R5id2rB2zxC428GkLSrMWc90RUo1rJnwHY3lUO2xwpKU8ruyEmel3rCv4fdqc0/H 5+0V+4BMetRHjLwGPm2XDgtoW8atRaSndbjMaa6yG8KCU=; Received: (qmail 7861 invoked by alias); 30 Nov 2012 09:24:48 -0000 Received: (qmail 7850 invoked by uid 22791); 30 Nov 2012 09:24:47 -0000 X-SWARE-Spam-Status: No, hits=-5.6 required=5.0 tests=AWL, BAYES_00, KHOP_RCVD_UNTRUST, RCVD_IN_DNSWL_HI, 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; Fri, 30 Nov 2012 09:24:40 +0000 Received: from relay2.suse.de (unknown [195.135.220.254]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id B7194A398E for ; Fri, 30 Nov 2012 10:24:38 +0100 (CET) Date: Fri, 30 Nov 2012 10:20:33 +0100 (CET) From: Richard Biener To: gcc-patches@gcc.gnu.org Subject: [PATCH] Remove pointless iteration in VN 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 This removes iterating propagation of value-ids (I verified it never needs iteration in practice - certainly it does not need iteration by design). Bootstrapped and tested on x86_64-unknown-linux-gnu, applied. Richard. 2012-11-30 Richard Biener * tree-ssa-sccvn.c (run_scc_vn): Remove iteration propagating value_ids. Index: gcc/tree-ssa-sccvn.c =================================================================== --- gcc/tree-ssa-sccvn.c (revision 193932) +++ gcc/tree-ssa-sccvn.c (working copy) @@ -3983,7 +3983,6 @@ run_scc_vn (vn_lookup_kind default_vn_wa { size_t i; tree param; - bool changed = true; default_vn_walk_kind = default_vn_walk_kind_; @@ -4028,25 +4027,18 @@ run_scc_vn (vn_lookup_kind default_vn_wa info->value_id = get_or_alloc_constant_value_id (info->valnum); } - /* Propagate until they stop changing. */ - while (changed) + /* Propagate. */ + for (i = 1; i < num_ssa_names; ++i) { - changed = false; - for (i = 1; i < num_ssa_names; ++i) - { - tree name = ssa_name (i); - vn_ssa_aux_t info; - if (!name) - continue; - info = VN_INFO (name); - if (TREE_CODE (info->valnum) == SSA_NAME - && info->valnum != name - && info->value_id != VN_INFO (info->valnum)->value_id) - { - changed = true; - info->value_id = VN_INFO (info->valnum)->value_id; - } - } + tree name = ssa_name (i); + vn_ssa_aux_t info; + if (!name) + continue; + info = VN_INFO (name); + if (TREE_CODE (info->valnum) == SSA_NAME + && info->valnum != name + && info->value_id != VN_INFO (info->valnum)->value_id) + info->value_id = VN_INFO (info->valnum)->value_id; } set_hashtable_value_ids ();