much better. Thx!
Sun

2011/8/29 朱庆 <zqing1...@gmail.com>:
> no, only orignal _align field less by one bit, the total does not
> change(32 bit).
>
> 在 2011年8月29日 下午2:44,Sun Chan <sun.c...@gmail.com> 写道:
>> does this means index field is less by one bit?
>> Sun
>>
>> 2011/8/29 朱庆 <zqing1...@gmail.com>:
>>> Hi all,
>>> I made a new patch to keep user defined align info in TY_IDX, please
>>> have a review.
>>> the structure of TY_IDX is:
>>> // struct TY_IDX {
>>> //     UINT index : 24;
>>> //     UINT _restrict : 1;
>>> //     UINT _volatile : 1;
>>> //     UINT _const : 1;
>>> //     UINT _user_align : 1;
>>> //     UINT _align : 4;
>>> // };
>>> extract 1 bit from _align to mark user defined align. and now the
>>> maximum  align is 2^15, the same as the gcc behavior.
>>>
>>> Thanks
>>> zhuqing
>>>
>>> 在 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
>>>>
>>>>
>>>
>>
>

------------------------------------------------------------------------------
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

Reply via email to