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 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 index Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-01-10 12:42 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
Dwarves Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/dwarves/0 dwarves/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dwarves dwarves/ https://lore.kernel.org/dwarves \ dwarves@vger.kernel.org public-inbox-index dwarves Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.dwarves AGPL code for this site: git clone https://public-inbox.org/public-inbox.git