From patchwork Mon Aug 2 20:20:18 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Pop X-Patchwork-Id: 60644 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 53CB3B70AA for ; Tue, 3 Aug 2010 06:28:07 +1000 (EST) Received: (qmail 894 invoked by alias); 2 Aug 2010 20:24:12 -0000 Received: (qmail 621 invoked by uid 22791); 2 Aug 2010 20:24:10 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, TW_SV, TW_TM, T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-gy0-f175.google.com (HELO mail-gy0-f175.google.com) (209.85.160.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 02 Aug 2010 20:24:04 +0000 Received: by gyd8 with SMTP id 8so1550995gyd.20 for ; Mon, 02 Aug 2010 13:24:02 -0700 (PDT) Received: by 10.101.186.15 with SMTP id n15mr6821361anp.171.1280780640035; Mon, 02 Aug 2010 13:24:00 -0700 (PDT) Received: from napoca (cpe-70-120-196-107.austin.res.rr.com [70.120.196.107]) by mx.google.com with ESMTPS id p12sm10329465ane.34.2010.08.02.13.23.58 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 02 Aug 2010 13:23:59 -0700 (PDT) Received: by napoca (sSMTP sendmail emulation); Mon, 02 Aug 2010 15:23:56 -0500 From: Sebastian Pop To: gcc-patches@gcc.gnu.org Cc: Tobias Grosser , gcc-graphite Subject: [PATCH 45/65] Unshare the scev before code generating it. Date: Mon, 2 Aug 2010 15:20:18 -0500 Message-Id: <1280780438-17543-46-git-send-email-sebpop@gmail.com> In-Reply-To: <1280780438-17543-1-git-send-email-sebpop@gmail.com> References: <1280780438-17543-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 From: spop 2010-07-15 Sebastian Pop * sese.c (rename_uses): Call unshare_expr before force_gimple_operand. * gcc.dg/graphite/id-23.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/graphite@162253 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/ChangeLog.graphite | 6 ++++++ gcc/sese.c | 3 ++- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/graphite/id-23.c | 22 ++++++++++++++++++++++ 5 files changed, 38 insertions(+), 1 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/graphite/id-23.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f153d76..29efa29 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2010-08-02 Sebastian Pop + * sese.c (rename_uses): Call unshare_expr before force_gimple_operand. + +2010-08-02 Sebastian Pop + * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of SSA scalar phi nodes that can be scev_analyzable_p. diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 1ddd731..d929c9a 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,5 +1,11 @@ 2010-07-15 Sebastian Pop + * sese.c (rename_uses): Call unshare_expr before force_gimple_operand. + + * gcc.dg/graphite/id-23.c: New. + +2010-07-15 Sebastian Pop + * graphite-sese-to-poly.c (reduction_phi_p): Do not rewrite out of SSA scalar phi nodes that can be scev_analyzable_p. diff --git a/gcc/sese.c b/gcc/sese.c index 9dbd76f..5ac7a2f 100644 --- a/gcc/sese.c +++ b/gcc/sese.c @@ -543,7 +543,8 @@ rename_uses (gimple copy, htab_t rename_map, gimple_stmt_iterator *gsi_tgt, && !tree_contains_chrecs (new_expr, NULL)); /* Replace the old_name with the new_expr. */ - new_expr = force_gimple_operand (new_expr, &stmts, true, NULL); + new_expr = force_gimple_operand (unshare_expr (new_expr), &stmts, + true, NULL); gsi_insert_seq_before (gsi_tgt, stmts, GSI_SAME_STMT); replace_exp (use_p, new_expr); set_rename (rename_map, old_name, new_expr); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c56694e..69e8a4c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2010-08-02 Sebastian Pop + * gcc.dg/graphite/id-23.c: New. + +2010-08-02 Sebastian Pop + * gfortran.dg/graphite/id-20.f: Adjust testcase. 2010-08-02 Sebastian Pop diff --git a/gcc/testsuite/gcc.dg/graphite/id-23.c b/gcc/testsuite/gcc.dg/graphite/id-23.c new file mode 100644 index 0000000..0f8a1f3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/id-23.c @@ -0,0 +1,22 @@ +double *ZV_entries (void); +void SubMtx_fillRowZV (int irow) +{ + double *rowvec = ZV_entries (); + double *entries; + int ii, ipivot, jrow, kk, m; + int *pivotsizes; + + SubMtx_blockDiagonalInfo (&pivotsizes); + + for (jrow = ipivot = kk = 0; jrow <= irow; ipivot++) + { + m = pivotsizes[ipivot]; + if (jrow <= irow && irow < jrow + m) + for (ii = jrow; ii < irow; ii++) + { + rowvec[2*ii] = entries[2*kk]; + rowvec[2*ii+1] = entries[2*kk+1]; + } + jrow += m; + } +}