From patchwork Thu Sep 30 18:00:55 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sebastian Pop X-Patchwork-Id: 66190 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 1F178B6EFF for ; Fri, 1 Oct 2010 04:02:22 +1000 (EST) Received: (qmail 6354 invoked by alias); 30 Sep 2010 18:02:14 -0000 Received: (qmail 6187 invoked by uid 22791); 30 Sep 2010 18:02:12 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, TW_SV, T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-gx0-f175.google.com (HELO mail-gx0-f175.google.com) (209.85.161.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 30 Sep 2010 18:02:01 +0000 Received: by mail-gx0-f175.google.com with SMTP id 10so992655gxk.20 for ; Thu, 30 Sep 2010 11:02:01 -0700 (PDT) Received: by 10.100.80.6 with SMTP id d6mr4699283anb.64.1285869718396; Thu, 30 Sep 2010 11:01:58 -0700 (PDT) Received: from napoca ([163.181.251.115]) by mx.google.com with ESMTPS id i30sm153847anh.29.2010.09.30.11.01.56 (version=TLSv1/SSLv3 cipher=RC4-MD5); Thu, 30 Sep 2010 11:01:57 -0700 (PDT) Received: by napoca (sSMTP sendmail emulation); Thu, 30 Sep 2010 13:01:55 -0500 From: Sebastian Pop To: gcc-patches@gcc.gnu.org Cc: gcc-graphite@googlegroups.com Subject: [PATCH 03/44] Generate in priority signed types for integer constants. Date: Thu, 30 Sep 2010 13:00:55 -0500 Message-Id: <1285869696-10915-4-git-send-email-sebpop@gmail.com> In-Reply-To: <1285869696-10915-1-git-send-email-sebpop@gmail.com> References: <1285869696-10915-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-29 Sebastian Pop * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in priority signed types. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/graphite@162703 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/ChangeLog.graphite | 5 +++++ gcc/graphite-clast-to-gimple.c | 12 +++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b78ba82..6e10b2f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2010-09-30 Sebastian Pop + * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in + priority signed types. + +2010-09-30 Sebastian Pop + * graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call to lang_hooks.types.type_for_size. Call build_nonstandard_integer_type. diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index dd37363..b469a12 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,5 +1,10 @@ 2010-07-29 Sebastian Pop + * graphite-clast-to-gimple.c (gcc_type_for_interval): Generate in + priority signed types. + +2010-07-29 Sebastian Pop + * graphite-clast-to-gimple.c (max_signed_precision_type): Remove the call to lang_hooks.types.type_for_size. Call build_nonstandard_integer_type. diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c index 73bd971..88a72f1 100644 --- a/gcc/graphite-clast-to-gimple.c +++ b/gcc/graphite-clast-to-gimple.c @@ -459,9 +459,6 @@ gcc_type_for_interval (mpz_t low, mpz_t up) gcc_assert (mpz_cmp (low, up) <= 0); - if (mpz_sgn (low) < 0) - unsigned_p = false; - prec_up = precision_for_value (up); prec_int = precision_for_interval (low, up); precision = MAX (prec_up, prec_int); @@ -472,6 +469,15 @@ gcc_type_for_interval (mpz_t low, mpz_t up) return integer_type_node; } + if (mpz_sgn (low) <= 0) + unsigned_p = false; + + else if (precision < BITS_PER_WORD) + { + unsigned_p = false; + precision++; + } + mode = smallest_mode_for_size (precision, MODE_INT); precision = GET_MODE_PRECISION (mode); type = build_nonstandard_integer_type (precision, unsigned_p);