From: jamal <hadi-fAAogVwAN2Kw5LPnMra/2Q@public.gmane.org>
To: Arnaldo Carvalho de Melo <acme-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: dwarves-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: Changing the word-size was: Re: eat your own dog food?
Date: Sun, 13 Jan 2008 14:13:02 -0500 [thread overview]
Message-ID: <1200251582.4427.15.camel@localhost> (raw)
In-Reply-To: <20080113182657.GI17675-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
On Sun, 2008-13-01 at 16:26 -0200, Arnaldo Carvalho de Melo wrote:
> > > >
> > > > Working on that, implementing type__most_aligned_member(), that will
> > > > recursively find the member that is most aligned, but then how to deal
> > > > with packed structs?
packed structs _always_ have alignment = 1 afaik.
> Looks OK:
I updated tree and recompiled - retested and all looks ok to me ....
> [acme@doppio examples]$ file align
> [acme@doppio examples]$ ../build/pahole align
> struct foo {
> char l; /* 0 1 */
>
> /* XXX 3 bytes hole, try to pack */
>
> struct {
> unsigned int b; /* 4 4 */
> struct {
> long unsigned int c; /* 8 4 */
> }; /* 8 4 */
> }; /* 4 8 */
> char a; /* 12 1 */
>
> /* size: 16, cachelines: 1 */
> /* sum members: 10, holes: 1, sum holes: 3 */
> /* padding: 3 */
> /* last cacheline: 16 bytes */
> };
>
> [acme@doppio examples]$ ../build/pahole -w8 align
> struct foo {
> char l; /* 0 1 */
>
> /* XXX 3 bytes hole, try to pack */
>
> struct {
> unsigned int b; /* 4 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> struct {
> long unsigned int c; /* 12 8 */
> }; /* 12 8 */
> }; /* 4 16 */
>
> /* Bitfield combined with next fields */
>
> char a; /* 16 1 */
>
> /* size: 24, cachelines: 1 */
> /* sum members: 14, holes: 1, sum holes: 3 */
> /* padding: 7 */
> /* last cacheline: 24 bytes */
> };
>
> But not when going from 32-bit to 64-bit, sigh :-\
> And there is another bug, the bitfield combining code got confused,
> because the offset for 'a' is not at 20 as it should even when not
> correctly aligning the outernmost unnamed struct.
got same results here. Other than that annoyance the results look
correct.
Note: So far what you have seems to work well (sans the little bug
above) for say x86 32<->64. The bizare part imo is the alignment
difference with different archs (eg -w 4 for ppc vs ia32 would result in
different holes/paddings).
Q: Wouldnt it be better to just build arrays/tables of all the rules as
per eabi? i.e you have a sizeof and alignment rows and then you can do
table lookup of arch/type where key could infact be a dwarf tag. What
that would mean is to have cli interface for --arch ppc32 or --arch
mips64 etc. If you do that, then allow users to also add new archs for
you.
> Will fix.
Ok, let me know.
cheers,
jamal
-
To unsubscribe from this list: send the line "unsubscribe dwarves" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-01-13 19:13 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-10 12:42 eat your own dog food? jamal
2008-01-10 13:39 ` Arnaldo Carvalho de Melo
[not found] ` <20080110133926.GF22437-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-10 13:55 ` jamal
2008-01-10 14:06 ` Arnaldo Carvalho de Melo
[not found] ` <20080110140635.GG22437-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-10 16:39 ` Arnaldo Carvalho de Melo
[not found] ` <20080110163959.GJ22437-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-10 21:37 ` jamal
2008-01-10 21:44 ` Arnaldo Carvalho de Melo
[not found] ` <20080110214438.GT22437-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-11 0:45 ` jamal
2008-01-11 1:04 ` jamal
2008-01-10 21:39 ` Arnaldo Carvalho de Melo
[not found] ` <20080110213909.GS22437-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-10 21:41 ` jamal
2008-01-12 15:21 ` Arnaldo Carvalho de Melo
[not found] ` <20080112152109.GA23567-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-12 15:54 ` Changing the word-size was: " Arnaldo Carvalho de Melo
[not found] ` <20080112155404.GB23567-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-12 16:28 ` Arnaldo Carvalho de Melo
[not found] ` <20080112162808.GC23567-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-12 17:28 ` Arnaldo Carvalho de Melo
[not found] ` <20080112172856.GD23567-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-12 18:08 ` jamal
2008-01-12 18:42 ` Arnaldo Carvalho de Melo
[not found] ` <20080112184211.GA17675-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-13 0:42 ` jamal
2008-01-13 1:15 ` jamal
[not found] ` <20080113163106.GE17675@ghostprotocols.net>
[not found] ` <20080113163106.GE17675-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-13 18:07 ` Arnaldo Carvalho de Melo
[not found] ` <20080113180730.GG17675-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-13 18:19 ` Arnaldo Carvalho de Melo
[not found] ` <20080113181901.GH17675-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-13 18:26 ` Arnaldo Carvalho de Melo
[not found] ` <20080113182657.GI17675-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-13 19:13 ` jamal [this message]
2008-01-12 21:36 ` Arnaldo Carvalho de Melo
[not found] ` <20080112213635.GC17675-f8uhVLnGfZaxAyOMLChx1axOck334EZe@public.gmane.org>
2008-01-12 22:08 ` Arnaldo Carvalho de Melo
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=1200251582.4427.15.camel@localhost \
--to=hadi-faaogvwan2kw5lpnmra/2q@public.gmane.org \
--cc=acme-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=dwarves-u79uwXL29TY76Z2rM5mHXA@public.gmane.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.