From patchwork Thu Dec 16 20:06:06 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Pop X-Patchwork-Id: 75798 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 D7D421007D3 for ; Fri, 17 Dec 2010 07:06:24 +1100 (EST) Received: (qmail 31653 invoked by alias); 16 Dec 2010 20:06:19 -0000 Received: (qmail 31630 invoked by uid 22791); 16 Dec 2010 20:06:18 -0000 X-SWARE-Spam-Status: No, hits=-2.3 required=5.0 tests=AWL, 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-vw0-f47.google.com (HELO mail-vw0-f47.google.com) (209.85.212.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 16 Dec 2010 20:06:13 +0000 Received: by vws6 with SMTP id 6so868010vws.20 for ; Thu, 16 Dec 2010 12:06:11 -0800 (PST) Received: by 10.220.180.198 with SMTP id bv6mr2263333vcb.159.1292529971197; Thu, 16 Dec 2010 12:06:11 -0800 (PST) Received: from napoca ([163.181.251.115]) by mx.google.com with ESMTPS id d14sm147386vcx.47.2010.12.16.12.06.09 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 16 Dec 2010 12:06:10 -0800 (PST) Received: by napoca (sSMTP sendmail emulation); Thu, 16 Dec 2010 14:06:07 -0600 From: Sebastian Pop To: gcc-patches@gcc.gnu.org Cc: Sebastian Pop Subject: [PATCH] Fix PR46404: call scev_reset to reset the number of iterations as well. Date: Thu, 16 Dec 2010 14:06:06 -0600 Message-Id: <1292529966-10832-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 Hi, I committed this patch to trunk to force graphite to reset the number of iterations expressions between the code generation of scops: the SSA names used in the niter expressions could be invalid after the graphite code generation. This passed regstrap on amd64-linux. Sebastian 2010-12-15 Sebastian Pop PR tree-optimization/46404 * graphite-clast-to-gimple.c (gloog): Call scev_reset. * gcc.dg/graphite/pr46404-1.c: New. --- gcc/ChangeLog | 5 +++++ gcc/graphite-clast-to-gimple.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/graphite/pr46404-1.c | 27 +++++++++++++++++++++++++++ 4 files changed, 38 insertions(+), 1 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/graphite/pr46404-1.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f99ec93..42ea2ac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-12-15 Sebastian Pop + + PR tree-optimization/46404 + * graphite-clast-to-gimple.c (gloog): Call scev_reset. + 2010-12-14 Jan Hubicka * tree.c (get_file_function_name): Avoid using random seed on GLOBAL_sub_I diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c index 4894b52..eef5ad1 100644 --- a/gcc/graphite-clast-to-gimple.c +++ b/gcc/graphite-clast-to-gimple.c @@ -1555,7 +1555,7 @@ gloog (scop_p scop, htab_t bb_pbb_mapping) &newivs, newivs_index, bb_pbb_mapping, 1, params_index); graphite_verify (); - scev_reset_htab (); + scev_reset (); recompute_all_dominators (); graphite_verify (); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c10535c..ba55a34 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ 2010-12-15 Sebastian Pop PR tree-optimization/46404 + * gcc.dg/graphite/pr46404-1.c: New. + +2010-12-15 Sebastian Pop + + PR tree-optimization/46404 * gcc.dg/graphite/pr46404.c: New. 2010-12-15 Jakub Jelinek diff --git a/gcc/testsuite/gcc.dg/graphite/pr46404-1.c b/gcc/testsuite/gcc.dg/graphite/pr46404-1.c new file mode 100644 index 0000000..c3e620c --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/pr46404-1.c @@ -0,0 +1,27 @@ +/* { dg-options "-O -fgraphite-identity -fno-tree-scev-cprop" } */ + +int +huft_build (unsigned *b) +{ + int k; + for (k = 0; k <= 10; k++) + if (foo ()); +} +int +inflate_fixed () +{ + int i; + unsigned l[288]; + for (i = 0; i < 144; i++) + l[i] = 8; + for (; i < 256; i++) + l[i] = 9; + for (; i < 280; i++) + l[i] = 7; + for (; i < 288; i++) + l[i] = 8; + if ((i = huft_build (l)) != 0) + return i; + for (i = 0; i < 30; i++) + l[i] = 5; +}