From patchwork Tue Jul 26 18:07:27 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Pop X-Patchwork-Id: 106902 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 CE912B6EE8 for ; Wed, 27 Jul 2011 04:08:25 +1000 (EST) Received: (qmail 31206 invoked by alias); 26 Jul 2011 18:08:23 -0000 Received: (qmail 31193 invoked by uid 22791); 26 Jul 2011 18:08:22 -0000 X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, TW_TM X-Spam-Check-By: sourceware.org Received: from mail-qw0-f47.google.com (HELO mail-qw0-f47.google.com) (209.85.216.47) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 26 Jul 2011 18:08:08 +0000 Received: by qwh5 with SMTP id 5so416473qwh.20 for ; Tue, 26 Jul 2011 11:08:07 -0700 (PDT) Received: by 10.229.16.143 with SMTP id o15mr846252qca.203.1311703687085; Tue, 26 Jul 2011 11:08:07 -0700 (PDT) MIME-Version: 1.0 Received: by 10.229.187.79 with HTTP; Tue, 26 Jul 2011 11:07:27 -0700 (PDT) In-Reply-To: References: From: Sebastian Pop Date: Tue, 26 Jul 2011 13:07:27 -0500 Message-ID: Subject: Re: [patch] Fix PR tree-optimization/49471 To: Richard Guenther Cc: Razya Ladelsky , gcc-patches@gcc.gnu.org, Zdenek Dvorak 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 On Tue, Jul 26, 2011 at 08:30, Richard Guenther wrote: > I suppose we also need to allow POINTER_TYPE_P here (but then > treat it like an unsigned variable of the same width). Updated patch. Ok for trunk after regstrap? Thanks, Sebastian From 3e8f8cfd0c4298b6b5e88c8bc7ba81a01e7cd815 Mon Sep 17 00:00:00 2001 From: Sebastian Pop Date: Sun, 24 Jul 2011 01:52:52 -0500 Subject: [PATCH] Fix PR49471: canonicalize_loop_ivs should not generate unsigned types. 2011-07-23 Sebastian Pop PR tree-optimization/49471 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned iv only when the largest type is unsigned. Do not call lang_hooks.types.type_for_size. * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail. * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern. --- gcc/ChangeLog | 7 +++++++ gcc/tree-ssa-loop-manip.c | 19 ++++++++++++++++--- libgomp/ChangeLog | 5 +++++ .../testsuite/libgomp.graphite/force-parallel-1.c | 2 +- .../testsuite/libgomp.graphite/force-parallel-2.c | 2 +- 5 files changed, 30 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 27d4001..17358a8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2011-07-23 Sebastian Pop + PR tree-optimization/49471 + * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Build an unsigned + iv only when the largest type is unsigned. Do not call + lang_hooks.types.type_for_size. + +2011-07-23 Sebastian Pop + PR middle-end/47691 * graphite-clast-to-gimple.c (translate_clast_user): Update use of copy_bb_and_scalar_dependences. diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c index 8176ed8..f3392e6 100644 --- a/gcc/tree-ssa-loop-manip.c +++ b/gcc/tree-ssa-loop-manip.c @@ -1200,18 +1200,31 @@ canonicalize_loop_ivs (struct loop *loop, tree *nit, bool bump_in_latch) gimple stmt; edge exit = single_dom_exit (loop); gimple_seq stmts; + enum machine_mode mode; + bool unsigned_p = false; for (psi = gsi_start_phis (loop->header); !gsi_end_p (psi); gsi_next (&psi)) { gimple phi = gsi_stmt (psi); tree res = PHI_RESULT (phi); + bool uns; - if (is_gimple_reg (res) && TYPE_PRECISION (TREE_TYPE (res)) > precision) - precision = TYPE_PRECISION (TREE_TYPE (res)); + type = TREE_TYPE (res); + if (!is_gimple_reg (res) + || (!INTEGRAL_TYPE_P (type) + && !POINTER_TYPE_P (type)) + || TYPE_PRECISION (type) < precision) + continue; + + uns = POINTER_TYPE_P (type) | TYPE_UNSIGNED (type); + unsigned_p = TYPE_PRECISION (type) > precision ? uns : unsigned_p | uns; + precision = TYPE_PRECISION (type); } - type = lang_hooks.types.type_for_size (precision, 1); + mode = smallest_mode_for_size (precision, MODE_INT); + precision = GET_MODE_PRECISION (mode); + type = build_nonstandard_integer_type (precision, unsigned_p); if (original_precision != precision) { diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 9225401..d5cd94d 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,8 @@ +2011-07-23 Sebastian Pop + + * testsuite/libgomp.graphite/force-parallel-1.c: Un-xfail. + * testsuite/libgomp.graphite/force-parallel-2.c: Adjust pattern. + 2011-07-18 Rainer Orth PR target/49541 diff --git a/libgomp/testsuite/libgomp.graphite/force-parallel-1.c b/libgomp/testsuite/libgomp.graphite/force-parallel-1.c index 71ed332..7f043d8 100644 --- a/libgomp/testsuite/libgomp.graphite/force-parallel-1.c +++ b/libgomp/testsuite/libgomp.graphite/force-parallel-1.c @@ -23,7 +23,7 @@ int main(void) } /* Check that parallel code generation part make the right answer. */ -/* { dg-final { scan-tree-dump-times "1 loops carried no dependency" 2 "graphite" { xfail *-*-* } } } */ +/* { dg-final { scan-tree-dump-times "1 loops carried no dependency" 2 "graphite" } } */ /* { dg-final { cleanup-tree-dump "graphite" } } */ /* { dg-final { scan-tree-dump-times "loopfn" 5 "optimized" } } */ /* { dg-final { cleanup-tree-dump "parloops" } } */ diff --git a/libgomp/testsuite/libgomp.graphite/force-parallel-2.c b/libgomp/testsuite/libgomp.graphite/force-parallel-2.c index 1ce0feb..03d8236 100644 --- a/libgomp/testsuite/libgomp.graphite/force-parallel-2.c +++ b/libgomp/testsuite/libgomp.graphite/force-parallel-2.c @@ -23,7 +23,7 @@ int main(void) } /* Check that parallel code generation part make the right answer. */ -/* { dg-final { scan-tree-dump-times "2 loops carried no dependency" 1 "graphite" } } */ +/* { dg-final { scan-tree-dump-times "2 loops carried no dependency" 2 "graphite" } } */ /* { dg-final { cleanup-tree-dump "graphite" } } */ /* { dg-final { scan-tree-dump-times "loopfn" 5 "optimized" } } */ /* { dg-final { cleanup-tree-dump "parloops" } } */ -- 1.7.4.1