Setting alignment to TY will change all this type data.
But sometimes, we just want to change one data of this type.
PS: this case works well for SL target.
在 2011年8月26日 下午1:19,Jian-Xin Lai <laij...@gmail.com>写道:
> Understand. We'll make a new change and keep this info in TY_IDX, instead
> of in ST.
>
> 在 2011年8月25日 下午4:01,Sun Chan <sun.c...@gmail.com>写道:
>
> I have problem having one attribute that have annotation in 2
>> different places. Also, the reason it is in TYPE is that symbols of
>> the same declaration but of different alignment should really be of
>> different type.
>> Sun
>>
>> 2011/8/25 Jian-Xin Lai <laij...@gmail.com>:
>> > The TY has "packed" flag and it's detected in Adjust_Alignment:
>> > 125 align= TY_align(ty_idx);
>> > 126
>> > 127 if (Is_Structure_Type(ty) && TY_is_packed(ty))
>> > 128 {
>> > 129 return align;
>> > 130 }
>> >
>> > If the TY is packed, the BE don't change its alignment. We did the
>> similar
>> > thing. The different is our change is applied on ST instead of TY
>> because
>> > this is a GNU extension on variable.
>> >
>> > 在 2011年8月25日 下午3:05,Sun Chan <sun.c...@gmail.com>写道:
>> >>
>> >> How would you classify "pack" data?
>> >> Sun
>> >>
>> >> 2011/8/25 Jian-Xin Lai <laij...@gmail.com>:
>> >> > The reason we introduce the "user align" is to separate this kind of
>> >> > case
>> >> > from the generic aggregate. So that we can do the two things well:
>> >> > If user specifies an alignment, we follow the size. Otherwise, the
>> >> > compiler
>> >> > can decide what's the proper alignment.
>> >> >
>> >> > 在 2011年8月25日 下午1:57,Mike Murphy <mmur...@nvidia.com>写道:
>> >> >>
>> >> >> So Aggregate_Alignment is a settable option (defaults to 16 in some
>> >> >> targets). What if you compile with -TENV:align_aggregates=8, or
>> don't
>> >> >> default it to 16?
>> >> >>
>> >> >> -----Original Message-----
>> >> >> From: 朱庆 [mailto:zqing1...@gmail.com]
>> >> >> Sent: Wednesday, August 24, 2011 10:53 PM
>> >> >> To: Mike Murphy
>> >> >> Cc: Sun Chan; open64-devel@lists.sourceforge.net
>> >> >> Subject: Re: [Open64-devel] Code Review request for bug832[wgen]
>> >> >>
>> >> >> The alignment is correct in .B file, but in Adjusted_Alignment there
>> >> >> are following code to modify the align. In our case we do not want
>> >> >> this happen.
>> >> >> else {
>> >> >> align = MAX(align, Aggregate_Alignment);
>> >> >> }
>> >> >>
>> >> >> Best wishes
>> >> >> zhuqing
>> >> >> 在 2011年8月25日 下午12:28,Mike Murphy <mmur...@nvidia.com> 写道:
>> >> >> > The alignment is stored in the ty_idx (see TY_align), and then
>> there
>> >> >> > are
>> >> >> > routines like Adjusted_Alignment in stblock that can modify it. I
>> >> >> > suspect
>> >> >> > the problem here is that the alignment is being put on the object
>> >> >> > rather
>> >> >> > than the type, and then is lost (but should still be possible,
>> >> >> > because the
>> >> >> > TY_align is like qualifiers that can vary from the base type).
>> Does
>> >> >> > the
>> >> >> > alignment show up properly in the intermediate .B file?
>> >> >> >
>> >> >> > -----Original Message-----
>> >> >> > From: Sun Chan [mailto:sun.c...@gmail.com]
>> >> >> > Sent: Wednesday, August 24, 2011 7:51 PM
>> >> >> > To: 朱庆
>> >> >> > Cc: open64-devel@lists.sourceforge.net
>> >> >> > Subject: Re: [Open64-devel] Code Review request for bug832[wgen]
>> >> >> >
>> >> >> > The reason I asked for the file is that I think there has to be
>> some
>> >> >> > alignment attribute somewhere. I am sure data alignment has been
>> >> >> > dealt
>> >> >> > with in the compiler. That it is due to user, or just language
>> >> >> > attribute might be irrelevant from compiler point of view.
>> >> >> >
>> >> >> > Mike or Murthy,
>> >> >> > Do you remember where alignment is handled? I only found Alignment
>> >> >> > field in BLK of the symtab_defs.h
>> >> >> >
>> >> >> > Sun
>> >> >> >
>> >> >> > 2011/8/25 朱庆 <zqing1...@gmail.com>:
>> >> >> >> Hi Sun,
>> >> >> >>
>> >> >> >> Attached symtab_defs.h.
>> >> >> >>
>> >> >> >> Thanks
>> >> >> >> zhuqing
>> >> >> >> 2011/8/24 Sun Chan <sun.c...@gmail.com>:
>> >> >> >>> can you send me the full symtab_defs.h?
>> >> >> >>> Sun
>> >> >> >>>
>> >> >> >>> On Wed, Aug 24, 2011 at 4:56 PM, 朱庆 <zqing1...@gmail.com>
>> wrote:
>> >> >> >>>> Hi all,
>> >> >> >>>>
>> >> >> >>>> Can gatekeeper help review following fix for bug832?
>> >> >> >>>> https://bugs.open64.net/show_bug.cgi?id=832
>> >> >> >>>>
>> >> >> >>>> small case, a.c:
>> >> >> >>>> struct obs_kernel_param {
>> >> >> >>>> const char *str;
>> >> >> >>>> };
>> >> >> >>>>
>> >> >> >>>> const char str1[] = "acpi_parse_apic_instance=";
>> >> >> >>>> const char str2[] = "acpi_os_name";
>> >> >> >>>> struct obs_kernel_param var1
>> >> >> >>>> __attribute__ ((aligned ((sizeof (long))))) =
>> >> >> >>>> {str1};
>> >> >> >>>>
>> >> >> >>>> struct obs_kernel_param var2
>> >> >> >>>> __attribute__ ((aligned ((sizeof (long))))) =
>> >> >> >>>> {str2};
>> >> >> >>>>
>> >> >> >>>> when compile with opencc, nm a.o
>> >> >> >>>> 0000000000000000 D var1
>> >> >> >>>> 0000000000000010 D var2
>> >> >> >>>> compile with gcc, nm a.o
>> >> >> >>>> 0000000000000000 D var1
>> >> >> >>>> 0000000000000008 D var2
>> >> >> >>>> the offset of var1 and var2 are different, the problem with
>> opencc
>> >> >> >>>> is
>> >> >> >>>> :fixed align attribute does not work, this may cause some
>> problems
>> >> >> >>>> when mix link two files with opencc and gcc.
>> >> >> >>>>
>> >> >> >>>> The fix is to add a new ST flag to record user_defined_align.
>> >> >> >>>>
>> >> >> >>>> Thanks
>> >> >> >>>> zhuqing
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> ------------------------------------------------------------------------------
>> >> >> >>>> EMC VNX: the world's simplest storage, starting under $10K
>> >> >> >>>> The only unified storage solution that offers unified
>> management
>> >> >> >>>> Up to 160% more powerful than alternatives and 25% more
>> efficient.
>> >> >> >>>> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
>> >> >> >>>> _______________________________________________
>> >> >> >>>> Open64-devel mailing list
>> >> >> >>>> Open64-devel@lists.sourceforge.net
>> >> >> >>>> https://lists.sourceforge.net/lists/listinfo/open64-devel
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>
>> >> >> >>
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> ------------------------------------------------------------------------------
>> >> >> > EMC VNX: the world's simplest storage, starting under $10K
>> >> >> > The only unified storage solution that offers unified management
>> >> >> > Up to 160% more powerful than alternatives and 25% more efficient.
>> >> >> > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
>> >> >> > _______________________________________________
>> >> >> > Open64-devel mailing list
>> >> >> > Open64-devel@lists.sourceforge.net
>> >> >> > https://lists.sourceforge.net/lists/listinfo/open64-devel
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> -----------------------------------------------------------------------------------
>> >> >> > This email message is for the sole use of the intended
>> recipient(s)
>> >> >> > and
>> >> >> > may contain
>> >> >> > confidential information. Any unauthorized review, use,
>> disclosure
>> >> >> > or
>> >> >> > distribution
>> >> >> > is prohibited. If you are not the intended recipient, please
>> contact
>> >> >> > the sender by
>> >> >> > reply email and destroy all copies of the original message.
>> >> >> >
>> >> >> >
>> >> >> >
>> -----------------------------------------------------------------------------------
>> >> >> >
>> >> >>
>> >> >>
>> >> >>
>> ------------------------------------------------------------------------------
>> >> >> EMC VNX: the world's simplest storage, starting under $10K
>> >> >> The only unified storage solution that offers unified management
>> >> >> Up to 160% more powerful than alternatives and 25% more efficient.
>> >> >> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
>> >> >> _______________________________________________
>> >> >> Open64-devel mailing list
>> >> >> Open64-devel@lists.sourceforge.net
>> >> >> https://lists.sourceforge.net/lists/listinfo/open64-devel
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Regards,
>> >> > Lai Jian-Xin
>> >> >
>> >> >
>> >> >
>> ------------------------------------------------------------------------------
>> >> > EMC VNX: the world's simplest storage, starting under $10K
>> >> > The only unified storage solution that offers unified management
>> >> > Up to 160% more powerful than alternatives and 25% more efficient.
>> >> > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
>> >> > _______________________________________________
>> >> > Open64-devel mailing list
>> >> > Open64-devel@lists.sourceforge.net
>> >> > https://lists.sourceforge.net/lists/listinfo/open64-devel
>> >> >
>> >> >
>> >
>> >
>> >
>> > --
>> > Regards,
>> > Lai Jian-Xin
>> >
>>
>
>
>
> --
> Regards,
> Lai Jian-Xin
>
>
> ------------------------------------------------------------------------------
> EMC VNX: the world's simplest storage, starting under $10K
> The only unified storage solution that offers unified management
> Up to 160% more powerful than alternatives and 25% more efficient.
> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
> _______________________________________________
> Open64-devel mailing list
> Open64-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/open64-devel
>
>
--
Best Regards.
Shen Ruifen
tel: 010-51266989-226
------------------------------------------------------------------------------
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management
Up to 160% more powerful than alternatives and 25% more efficient.
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
_______________________________________________
Open64-devel mailing list
Open64-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/open64-devel