public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Richard Guenther <richard.guenther@gmail.com>
To: DJ Delorie <dj@redhat.com>
Cc: uweigand@de.ibm.com, gcc-patches@gcc.gnu.org
Subject: Re: m32c support for named addr spaces branch
Date: Wed, 21 Oct 2009 10:20:00 -0000	[thread overview]
Message-ID: <84fc9c000910210314m64b8c52aj1e84538242b97747@mail.gmail.com> (raw)
In-Reply-To: <200910201809.n9KI9aBM008328@greed.delorie.com>

On Tue, Oct 20, 2009 at 8:09 PM, DJ Delorie <dj@redhat.com> wrote:
>
>> I don't think this observation is correct.  sizetypes are _always_
>> sign-extended.
>
> The problem on m32c is like this: size_t is HImode, pointers are
> PSImode (24 bits).  Loop optimization sees this:
>
>        char *p = x;
>        for (i=0; i<j; i++)
>          *p++ = n;
>
> It replaces the 'i' loop with a 'p'-based loop.  It pre-calculates the
> end value of 'p'.  However, it sign extends 'j' before adding it to
> 'p', or worse, casts 'p' to size_t, does the math, the re-casts it
> back to a pointer.
>
> Thus, you end up with the termination value of 'p' being truncated or
> mis-computed, and the loop overruns.
>
> My preference is this: pointers and integers are NOT interchangable.
> Pointer offsets must be sign or zero extended according to their
> underlying types before being added to pointers.  If I add -1 to a
> pointer, it had better result in a pointer that's one less than the
> previous value, not 65536 more.

Well, you are right.  sizetype originally only was present in sizetype-only
operations where the above would not have been an issue.  Now
with POINTER_PLUS_EXPR we introduced a mixed-type operation
between pointer types and sizetype - which was obviously a mistake.
Thus, the correct thing to do is to transition POINTER_PLUS_EXPR
away from using sizetype but instead use regular integer types for
the offset (I'm not sure if constraining the offset type to a single type
was a good idea - it probably was good to catch transition errors).

But I don't see anyone doing the required work.

Richard.

  reply	other threads:[~2009-10-21 10:14 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-15  4:17 DJ Delorie
2009-10-15 18:07 ` Ulrich Weigand
2009-10-15 18:11   ` DJ Delorie
2009-10-16 14:19     ` Ulrich Weigand
2009-10-16 18:22       ` DJ Delorie
2009-10-16 22:05       ` DJ Delorie
2009-10-19 14:28         ` Ulrich Weigand
2009-10-19 14:36           ` Richard Guenther
2009-10-19 17:45             ` Ulrich Weigand
2009-10-19 20:57               ` DJ Delorie
2009-10-20  9:27                 ` Richard Guenther
2009-10-20 18:10                   ` DJ Delorie
2009-10-21 10:20                     ` Richard Guenther [this message]
2009-10-27 18:32                       ` Ulrich Weigand
2009-10-28 11:29                         ` Richard Guenther
2009-10-29 18:32                           ` Fix PR tree-optimization/41857 (Re: m32c support for named addr spaces branch) Ulrich Weigand
2009-10-30  9:51                             ` Richard Guenther
2009-11-02  9:38                               ` Zdenek Dvorak
2009-11-16 20:07                                 ` [patch] Fix regression (Re: Fix PR tree-optimization/41857) Ulrich Weigand
2009-11-17 15:40                                   ` Richard Guenther
2009-11-17 16:03                                     ` Zdenek Dvorak
2009-11-17 16:14                                       ` Richard Guenther
2009-11-17 16:29                                         ` Zdenek Dvorak
2009-11-17 16:31                                           ` Richard Guenther
2009-11-17 16:51                                             ` Zdenek Dvorak
2009-10-30 15:55                           ` m32c support for named addr spaces branch Ulrich Weigand
2009-10-16 23:57       ` DJ Delorie
2009-10-19 14:50         ` Ulrich Weigand
2009-10-29 18:37           ` [patch] Address-space-aware base registers (Re: m32c support for named addr spaces branch) Ulrich Weigand
2009-10-29 19:54             ` DJ Delorie
2009-10-29 20:18             ` DJ Delorie
2009-10-29 21:33               ` Ulrich Weigand
2009-10-29 22:50                 ` DJ Delorie
2009-10-30 14:51                   ` Ulrich Weigand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=84fc9c000910210314m64b8c52aj1e84538242b97747@mail.gmail.com \
    --to=richard.guenther@gmail.com \
    --cc=dj@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=uweigand@de.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).