public inbox for gcc-help@gcc.gnu.org
 help / color / mirror / Atom feed
From: "John Yates" <jyates@netezza.com>
To: "David Edelsohn" <dje@watson.ibm.com>,
		"Yaro Pollak" <yarop@altair-semi.com>
Cc: <gcc-help@gcc.gnu.org>
Subject: RE: Unaligned access to packed structs on ppc405
Date: Sun, 05 Feb 2006 18:35:00 -0000	[thread overview]
Message-ID: <4D87F853B8020F4888896B1507DC0F09026798@mail2.netezza.com> (raw)

David,

Do I read this correctly?  Are you truly saying that two structs
with identical layout will trigger different code sequences just
because one was declared packed?

(This is just the sort of thing that drives me crazy when trying
to coax a compiler into producing good code.)

/john

-----Original Message-----
From: David Edelsohn [mailto:dje@watson.ibm.com]
Sent: Friday, February 03, 2006 11:26 PM
To: Yaro Pollak
Cc: gcc-help@gcc.gnu.org
Subject: Re: Unaligned access to packed structs on ppc405


>>>>> Yaro Pollak writes:

> If on the other hand I compile:
> 
>    Test pt;
>    return pt.b + pt.c + pt.d;
> 
>    lwz 3,8(1)

	That is an artifact of the example.  If I declare "pt" as a global
variable, GCC 4.1 prerelease produces three lbz.

	The lbz has to do with the size and the packed alignment.  With
the packed structure, GCC chooses the smallest memory access that covers
the bitfield.  Once GCC has chosen bytes, it cannot merge the loads
together.  If the structure were not declared packed, GCC would use wider
loads with masking, and then determine that the loads refer to the same
object. 

David

             reply	other threads:[~2006-02-05 18:35 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-05 18:35 John Yates [this message]
2006-02-05 21:02 ` David Edelsohn
2006-02-06 10:18   ` Yaro Pollak
  -- strict thread matches above, loose matches on Subject: below --
2006-02-01 12:03 [Re: Unaligned access to packed structs on ppc405] Yaro Pollak
2006-02-04  4:25 ` Unaligned access to packed structs on ppc405 David Edelsohn
2006-01-30 16:18 Matthew Jones
2006-01-30 16:26 ` Yaro Pollak
2006-01-29 17:16 David Edelsohn
2006-01-30 12:03 ` Yaro Pollak
2006-02-02 16:13   ` David Edelsohn
2006-01-29 10:00 Yaro Pollak

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=4D87F853B8020F4888896B1507DC0F09026798@mail2.netezza.com \
    --to=jyates@netezza.com \
    --cc=dje@watson.ibm.com \
    --cc=gcc-help@gcc.gnu.org \
    --cc=yarop@altair-semi.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).