public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Daniel Berlin <dan@dberlin.org>
To: Dan Nicolaescu <dann@godzilla.ICS.UCI.EDU>
Cc: gcc@gcc.gnu.org
Subject: Re: g++ and aliasing bools
Date: Wed, 23 Jan 2002 18:27:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.44.0201232018510.20726-100000@dberlin.org> (raw)
In-Reply-To: <200201231638.aa22100@gremlin-relay.ics.uci.edu>

On Wed, 23 Jan 2002, Dan Nicolaescu 
wrote:

> 
> It looks like g++ has some problems with aliasing bools, and gcc
> doesn't.

It's a side effect of C++ not making alias sets for classes, i think.
Try commenting out the AGGREGATE_TYPE_P check in cxx_get_alias_set and see 
if it goes away.
> 
> 
> The following program: 
> 
> #ifdef __cplusplus
> 
> struct bool_struct         
> {
>   bool f0;
>   bool f1;
>   bool f2; 
>   bool f3;
> };
> #else
> struct bool_struct         
> {
>   _Bool f0;
>   _Bool f1;
>   _Bool f2; 
>   _Bool f3;
> };
> 
> #endif
> 
> 
> struct bool_struct *str; 
> 
> 
> void 
> g (void)
> {
>   str->f0 = 1;
>   str->f1 = 0;
>   str->f2 = 1;
>   str->f3 = 0; 
> }
> 
> compiles to: 
> 
> _Z1gv:
> .LLFB1:
>         !#PROLOGUE# 0
>         !#PROLOGUE# 1
>         sethi   %hi(str), %o2
>         ld      [%o2+%lo(str)], %o1
>         mov     1, %o3
>         stb     %o3, [%o1]
>         ld      [%o2+%lo(str)], %o0   <- this load is not needed
>         stb     %g0, [%o0+1]
>         ld      [%o2+%lo(str)], %o1   <- this load is not needed
>         stb     %o3, [%o1+2]
>         ld      [%o2+%lo(str)], %o0   <- this load is not needed
>         retl
>         stb     %g0, [%o0+3]
> 
> when compiled with g++ -O2  on sparc-sun-solaris2.8 using a GCC from
> CVS as of this morning. 
> 
> but the code is much better when compiling with gcc -O2 
> 
> g:
>         !#PROLOGUE# 0
>         !#PROLOGUE# 1
>         sethi   %hi(str), %o0
>         ld      [%o0+%lo(str)], %o1
>         mov     1, %o2
>         stb     %o2, [%o1+2]
>         stb     %g0, [%o1+3]
>         stb     %o2, [%o1]
>         retl
>         stb     %g0, [%o1+1]
> 
> 
> so it looks like g++ has some issues with aliasing bools. 
> 
> Any idea what is wrong? 
> 
>         
> 

  reply	other threads:[~2002-01-24  1:21 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-23 17:56 Dan Nicolaescu
2002-01-23 18:27 ` Daniel Berlin [this message]
2002-01-23 18:48   ` Dan Nicolaescu
2002-01-23 19:16     ` Daniel Berlin
2002-01-24 14:15     ` Mark Mitchell
2002-01-24 14:16       ` Daniel Berlin
2002-01-24 14:27         ` Mark Mitchell
2002-01-24 14:35           ` Daniel Berlin
2002-01-24 15:06             ` Mark Mitchell
2002-01-24 15:08             ` Paolo Carlini
2002-01-24 15:18       ` Dan Nicolaescu
2002-01-24 15:36         ` Mark Mitchell
2002-01-25  2:25           ` Daniel Berlin
2002-01-25 15:48           ` Dan Nicolaescu
2002-01-25 20:22             ` Joe Buck
2002-01-25 23:59               ` Daniel Berlin
2002-01-27 17:04               ` Dan Nicolaescu
2002-01-27 17:59                 ` Paolo Carlini
2002-03-04 16:20               ` improving g++ alias analysis (was: Re: g++ and aliasing bools) Dan Nicolaescu
2002-01-24 15:30 g++ and aliasing bools Richard Kenner
2002-01-25  2:16 ` Gabriel Dos Reis
2002-01-25  3:04   ` Paolo Carlini
2002-01-25  4:17     ` Gabriel Dos Reis
2002-01-25  4:35       ` Paolo Carlini
2002-01-25  6:34         ` Daniel Berlin
2002-01-25  7:17   ` Daniel Berlin
2002-01-25 13:57     ` Gabriel Dos Reis
2002-01-25 14:47       ` Tim Hollebeek
2002-01-24 16:09 Richard Kenner
2002-01-25  7:05 Richard Kenner
2002-01-25  8:59 ` Paolo Carlini
2002-01-25  7:23 Richard Kenner
2002-01-25  7:24 ` Daniel Berlin
2002-01-25  7:30 Richard Kenner
2002-01-25  7:33 ` Daniel Berlin
2002-01-25 15:43   ` Daniel Berlin
2002-01-25  7:30 Richard Kenner
2002-01-25  7:38 Robert Dewar
2002-01-25  8:11 ` Daniel Berlin
2002-01-25 14:09   ` Gabriel Dos Reis
2002-01-25  7:51 Robert Dewar
2002-01-25  8:18 ` Daniel Berlin
2002-01-25  8:20   ` Daniel Berlin
2002-01-25  8:28 Robert Dewar
2002-01-25  8:49 ` Daniel Berlin
2002-01-25  8:32 Robert Dewar
2002-01-25  8:53 ` Daniel Berlin
2002-01-25  9:39 ` Joe Buck
2002-01-25  8:33 Richard Kenner
2002-01-25  8:35 Robert Dewar
2002-01-25  8:54 ` Daniel Berlin
2002-01-25  8:55 Robert Dewar
2002-01-25  9:21 ` Daniel Berlin
2002-01-25 10:00   ` Daniel Berlin
2002-01-25 10:54     ` Paolo Carlini
2002-01-25 11:37       ` Daniel Berlin
2002-01-25 11:45       ` David Edelsohn
2002-01-25 11:53         ` Joe Buck
2002-01-25 12:09           ` Mark Mitchell
2002-01-25 12:28             ` Paolo Carlini
2002-01-25 13:49               ` Mark Mitchell
2002-01-25 14:19                 ` Joe Buck
2002-01-25 14:21                   ` Mark Mitchell
2002-01-25 15:41                     ` Neil Booth
2002-01-25 16:04                       ` Joe Buck
2002-01-25 17:37                         ` Paolo Carlini
2002-01-25 18:10                         ` Daniel Berlin
2002-01-27  5:11                         ` Mark Mitchell
2002-01-27  5:34                           ` Daniel Berlin
2002-01-28 10:39                             ` Joe Buck
2002-01-28 10:51                               ` Joe Buck
2002-01-28 15:59                               ` Mark Mitchell
2002-01-28 17:11                                 ` Daniel Berlin
2002-01-28 17:28                                   ` Joe Buck
2002-01-28 18:14                                     ` Daniel Berlin
2002-01-28 17:18                                 ` Joe Buck
2002-01-28 18:05                                   ` Mark Mitchell
2002-01-28 18:50                                     ` Joe Buck
2002-01-28 19:33                                       ` Mark Mitchell
2002-01-28 17:40                                         ` Daniel Berlin
2002-01-28 21:55                                           ` Daniel Berlin
2002-01-28 22:02                                         ` Alexandre Oliva
2002-01-28 22:12                                           ` Mark Mitchell
2002-01-25 13:07             ` Joe Buck
2002-01-25 15:43               ` Daniel Berlin
2002-01-25 16:03                 ` Joe Buck
2002-01-25 15:13             ` Daniel Berlin
2002-01-25 12:10           ` Paolo Carlini
2002-01-25 13:16             ` Joe Buck
2002-01-25 15:23             ` Daniel Berlin
2002-01-25 12:05         ` Mark Mitchell
2002-01-25 22:14           ` Daniel Berlin
2002-01-26  3:46             ` Mark Mitchell
2002-01-25  9:13 Robert Dewar
2002-01-25 12:06 mike stump
2002-01-25 12:23 Robert Dewar
2002-01-25 13:29 ` Joe Buck
2002-01-25 14:49 mike stump

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=Pine.LNX.4.44.0201232018510.20726-100000@dberlin.org \
    --to=dan@dberlin.org \
    --cc=dann@godzilla.ICS.UCI.EDU \
    --cc=gcc@gcc.gnu.org \
    /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).