From patchwork Fri Jan 21 19:27:29 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Pop X-Patchwork-Id: 79905 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 1BAA2B7107 for ; Sat, 22 Jan 2011 06:31:48 +1100 (EST) Received: (qmail 18143 invoked by alias); 21 Jan 2011 19:30:42 -0000 Received: (qmail 18014 invoked by uid 22791); 21 Jan 2011 19:30:40 -0000 X-SWARE-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, TW_SV, T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-gw0-f47.google.com (HELO mail-gw0-f47.google.com) (74.125.83.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 21 Jan 2011 19:30:25 +0000 Received: by mail-gw0-f47.google.com with SMTP id a12so670737gwa.20 for ; Fri, 21 Jan 2011 11:30:25 -0800 (PST) Received: by 10.150.98.7 with SMTP id v7mr1194983ybb.254.1295638150907; Fri, 21 Jan 2011 11:29:10 -0800 (PST) Received: from napoca (adsl-76-233-39-4.dsl.austtx.sbcglobal.net [76.233.39.4]) by mx.google.com with ESMTPS id v6sm604315ybk.20.2011.01.21.11.29.06 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 21 Jan 2011 11:29:10 -0800 (PST) Received: by napoca (sSMTP sendmail emulation); Fri, 21 Jan 2011 13:28:53 -0600 From: Sebastian Pop To: gcc-patches@gcc.gnu.org Cc: rguenther@suse.de Subject: [PATCH 10/28] Fix pbb_remove_duplicate_pdrs. Date: Fri, 21 Jan 2011 13:27:29 -0600 Message-Id: <1295638067-13460-11-git-send-email-sebpop@gmail.com> In-Reply-To: References: 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 From: spop 2011-01-15 Sebastian Pop * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/graphite@168836 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/ChangeLog.graphite | 4 ++++ gcc/graphite-poly.c | 13 +++++++------ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f10317b..6898f95 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2011-01-21 Sebastian Pop + * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work. + +2011-01-21 Sebastian Pop + * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop nest and two loop depths as parameters. (lst_try_interchange_loops): Call lst_interchange_profitable_p after diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 2363df6..d961c0c 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,5 +1,9 @@ 2011-01-15 Sebastian Pop + * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work. + +2011-01-15 Sebastian Pop + * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop nest and two loop depths as parameters. (lst_try_interchange_loops): Call lst_interchange_profitable_p after diff --git a/gcc/graphite-poly.c b/gcc/graphite-poly.c index f88788b..bfdbc9f 100644 --- a/gcc/graphite-poly.c +++ b/gcc/graphite-poly.c @@ -813,15 +813,16 @@ pbb_remove_duplicate_pdrs (poly_bb_p pbb) { int i, j; poly_dr_p pdr1, pdr2; - unsigned n = VEC_length (poly_dr_p, PBB_DRS (pbb)); - VEC (poly_dr_p, heap) *collapsed = VEC_alloc (poly_dr_p, heap, n); FOR_EACH_VEC_ELT (poly_dr_p, PBB_DRS (pbb), i, pdr1) - FOR_EACH_VEC_ELT (poly_dr_p, collapsed, j, pdr2) - if (!can_collapse_pdrs (pdr1, pdr2)) - VEC_quick_push (poly_dr_p, collapsed, pdr1); + for (j = i + 1; VEC_iterate (poly_dr_p, PBB_DRS (pbb), j, pdr2); j++) + if (can_collapse_pdrs (pdr1, pdr2)) + { + PDR_NB_REFS (pdr1) += PDR_NB_REFS (pdr2); + free_poly_dr (pdr2); + VEC_ordered_remove (poly_dr_p, PBB_DRS (pbb), j); + } - VEC_free (poly_dr_p, heap, collapsed); PBB_PDR_DUPLICATES_REMOVED (pbb) = true; }