From patchwork Sat Jan 15 09:05:09 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Pop X-Patchwork-Id: 79036 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 E612AB6EEB for ; Sat, 15 Jan 2011 20:09:04 +1100 (EST) Received: (qmail 30864 invoked by alias); 15 Jan 2011 09:08:43 -0000 Received: (qmail 30681 invoked by uid 22791); 15 Jan 2011 09:08:41 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-yw0-f47.google.com (HELO mail-yw0-f47.google.com) (209.85.213.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 15 Jan 2011 09:08:36 +0000 Received: by ywi6 with SMTP id 6so1235754ywi.20 for ; Sat, 15 Jan 2011 01:08:34 -0800 (PST) Received: by 10.90.104.20 with SMTP id b20mr2229344agc.193.1295082514692; Sat, 15 Jan 2011 01:08:34 -0800 (PST) Received: from napoca (adsl-76-250-118-52.dsl.austtx.sbcglobal.net [76.250.118.52]) by mx.google.com with ESMTPS id t23sm2546297ano.6.2011.01.15.01.08.32 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 15 Jan 2011 01:08:34 -0800 (PST) Received: by napoca (sSMTP sendmail emulation); Sat, 15 Jan 2011 03:08:31 -0600 From: Sebastian Pop To: gcc-patches@gcc.gnu.org Cc: rguenther@suse.de, gcc-graphite@googlegroups.com, Sebastian Pop Subject: [PATCH 04/10] Fix pbb_remove_duplicate_pdrs. Date: Sat, 15 Jan 2011 03:05:09 -0600 Message-Id: <1295082315-32242-5-git-send-email-sebpop@gmail.com> In-Reply-To: <1295082315-32242-1-git-send-email-sebpop@gmail.com> References: <1295082315-32242-1-git-send-email-sebpop@gmail.com> 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 2011-01-15 Sebastian Pop * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work. --- gcc/ChangeLog.graphite | 4 ++++ gcc/graphite-poly.c | 13 +++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 4324a6e..4368926 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 9d44d0e..99f1a6f 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; }