From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31884 invoked by alias); 11 Mar 2015 10:37:16 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 31864 invoked by uid 89); 11 Mar 2015 10:37:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.8 required=5.0 tests=AWL,BAYES_50,FREEMAIL_FROM,KAM_FROM_URIBL_PCCC,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-HELO: mail-ob0-f177.google.com Received: from mail-ob0-f177.google.com (HELO mail-ob0-f177.google.com) (209.85.214.177) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 11 Mar 2015 10:37:13 +0000 Received: by obcva2 with SMTP id va2so7788708obc.13 for ; Wed, 11 Mar 2015 03:37:12 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.60.124.42 with SMTP id mf10mr2076085oeb.81.1426070231992; Wed, 11 Mar 2015 03:37:11 -0700 (PDT) Received: by 10.76.98.137 with HTTP; Wed, 11 Mar 2015 03:37:11 -0700 (PDT) In-Reply-To: <1426041541-30767-1-git-send-email-zhouzhouyi@gmail.com> References: <1426041541-30767-1-git-send-email-zhouzhouyi@gmail.com> Date: Wed, 11 Mar 2015 10:37:00 -0000 Message-ID: Subject: Re: [PATCH ] IRA: Speed up setup_left_conflict_sizes_p From: Richard Biener To: Zhouyi Zhou Cc: GCC Patches , Zhouyi Zhou Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2015-03/txt/msg00624.txt.bz2 On Wed, Mar 11, 2015 at 3:39 AM, Zhouyi Zhou wrote: > From: Zhouyi Zhou > > In function setup_left_conflict_sizes_p, left conflict subnodes sizes > are computed in a down-to-up fashion through the regnodes foreast. > > Speed up the process from prevent node itself to involve in this > computation. Please use gcc_checking_assert()s. > > Bootstrap and regtest scheduled on x86_64 GNU/Linux > Signed-off-by: Zhouyi Zhou > --- > gcc/ChangeLog | 5 +++++ > gcc/ira-color.c | 8 +++----- > 2 files changed, 8 insertions(+), 5 deletions(-) > > diff --git a/gcc/ChangeLog b/gcc/ChangeLog > index b77fb5e..7688eda 100644 > --- a/gcc/ChangeLog > +++ b/gcc/ChangeLog > @@ -1,3 +1,8 @@ > +2015-03-11 Zhouyi Zhou > + > + * ira-color.c (setup_left_conflict_sizes_p): Prevent node itself > + from computing left conflict subnodes size. > + > 2015-03-10 Jakub Jelinek > > PR target/65368 > diff --git a/gcc/ira-color.c b/gcc/ira-color.c > index ff1fe8a..3e5c33a 100644 > --- a/gcc/ira-color.c > +++ b/gcc/ira-color.c > @@ -938,7 +938,7 @@ setup_left_conflict_sizes_p (ira_allocno_t a) > subnodes[i].left_conflict_subnodes_size = 0; > } > start = node_preorder_num * allocno_hard_regs_nodes_num; > - for (i = data->hard_regs_subnodes_num - 1; i >= 0; i--) > + for (i = data->hard_regs_subnodes_num - 1; i > 0; i--) > { > int size, parent_i; > allocno_hard_regs_node_t parent; > @@ -948,12 +948,10 @@ setup_left_conflict_sizes_p (ira_allocno_t a) > - subnodes[i].left_conflict_subnodes_size, > subnodes[i].left_conflict_size)); > parent = allocno_hard_regs_nodes[i + node_preorder_num]->parent; > - if (parent == NULL) > - continue; > + gcc_assert (parent); > parent_i > = allocno_hard_regs_subnode_index[start + parent->preorder_num]; > - if (parent_i < 0) > - continue; > + gcc_assert (parent_i >= 0); > subnodes[parent_i].left_conflict_subnodes_size += size; > } > left_conflict_subnodes_size = subnodes[0].left_conflict_subnodes_size; > -- > 1.7.10.4 >