From patchwork Mon Aug 2 20:20:27 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Pop X-Patchwork-Id: 60651 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 34DA9B70AA for ; Tue, 3 Aug 2010 06:28:55 +1000 (EST) Received: (qmail 3253 invoked by alias); 2 Aug 2010 20:24:42 -0000 Received: (qmail 3023 invoked by uid 22791); 2 Aug 2010 20:24:39 -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, RCVD_IN_DNSWL_NONE, TW_SV, TW_TM, T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-yx0-f175.google.com (HELO mail-yx0-f175.google.com) (209.85.213.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 02 Aug 2010 20:24:29 +0000 Received: by mail-yx0-f175.google.com with SMTP id 11so1550084yxi.20 for ; Mon, 02 Aug 2010 13:24:28 -0700 (PDT) Received: by 10.150.199.1 with SMTP id w1mr4959569ybf.322.1280780668557; Mon, 02 Aug 2010 13:24:28 -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 u41sm4392264yba.1.2010.08.02.13.24.26 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 02 Aug 2010 13:24:27 -0700 (PDT) Received: by napoca (sSMTP sendmail emulation); Mon, 02 Aug 2010 15:24:24 -0500 From: Sebastian Pop To: gcc-patches@gcc.gnu.org Cc: Tobias Grosser , gcc-graphite Subject: [PATCH 54/65] Call scev_analyzable_p only on is_gimple_reg. Date: Mon, 2 Aug 2010 15:20:27 -0500 Message-Id: <1280780438-17543-55-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-26 Sebastian Pop * graphite-sese-to-poly.c (rewrite_commutative_reductions_out_of_ssa_loop): Call scev_analyzable_p only on is_gimple_reg * gcc.dg/graphite/id-25.c: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/graphite@162555 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 +++++ gcc/ChangeLog.graphite | 8 +++++++ gcc/graphite-sese-to-poly.c | 5 +++- gcc/testsuite/ChangeLog | 4 +++ gcc/testsuite/gcc.dg/graphite/id-25.c | 34 +++++++++++++++++++++++++++++++++ 5 files changed, 56 insertions(+), 1 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/graphite/id-25.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 57bcf1e..0f07a8b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2010-08-02 Sebastian Pop + * graphite-sese-to-poly.c + (rewrite_commutative_reductions_out_of_ssa_loop): Call + scev_analyzable_p only on is_gimple_reg + +2010-08-02 Sebastian Pop + * graphite-sese-to-poly.c (propagate_expr_outside_region): New. (rewrite_close_phi_out_of_ssa): Propagate constant values or parametric expressions outside the scop region. diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 0ed18ef..65607ec 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,11 @@ +2010-07-26 Sebastian Pop + + * graphite-sese-to-poly.c + (rewrite_commutative_reductions_out_of_ssa_loop): Call + scev_analyzable_p only on is_gimple_reg + + * gcc.dg/graphite/id-25.c: New. + 2010-07-22 Sebastian Pop * graphite-sese-to-poly.c (propagate_expr_outside_region): New. diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 574a25b..ae8518f 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -2950,12 +2950,15 @@ rewrite_commutative_reductions_out_of_ssa_loop (loop_p loop, { gimple_stmt_iterator gsi; edge exit = single_exit (loop); + tree res; if (!exit) return; for (gsi = gsi_start_phis (exit->dest); !gsi_end_p (gsi); gsi_next (&gsi)) - if (!scev_analyzable_p (gimple_phi_result (gsi_stmt (gsi)), region)) + if ((res = gimple_phi_result (gsi_stmt (gsi))) + && is_gimple_reg (res) + && !scev_analyzable_p (res, region)) rewrite_commutative_reductions_out_of_ssa_close_phi (gsi_stmt (gsi), reductions); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e3c3dbb..9197cb2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,9 @@ 2010-08-02 Sebastian Pop + * gcc.dg/graphite/id-25.c: New. + +2010-08-02 Sebastian Pop + * gcc.dg/graphite/run-id-5.c: New. * gcc.dg/graphite/run-id-6.c: New. * gfortran.dg/graphite/id-21.f: New. diff --git a/gcc/testsuite/gcc.dg/graphite/id-25.c b/gcc/testsuite/gcc.dg/graphite/id-25.c new file mode 100644 index 0000000..b719972 --- /dev/null +++ b/gcc/testsuite/gcc.dg/graphite/id-25.c @@ -0,0 +1,34 @@ +typedef struct +{ + int mvd[2][(16/4)][(16/4)][2]; +} Macroblock; +typedef struct +{ + int part_size[8][2]; +} InputParameters; +typedef struct +{ + Macroblock *mb_data; + short****** pred_mv; + short****** all_mv; +} ImageParameters; +extern InputParameters *input; +extern ImageParameters *img; +int writeMotionVector8x8 (void) +{ + int i, j, k, l, m; + int step_h = input->part_size[7][0]; + int step_v = input->part_size[7][1]; + Macroblock* currMB = &img->mb_data[9]; + int refindex = 0; + short****** all_mv = img->all_mv; + short****** pred_mv = img->pred_mv; + + for (k=0; k<2; k++) + { + int curr_mvd = all_mv[2][8][0][8][7][8] - pred_mv[2][7][0][8][7][0]; + for (l=0; l < step_v; l++) + for (m=0; m < step_h; m++) + currMB->mvd[0][8][9][8] = curr_mvd; + } +}