But Jian-Xin Lai proposed to change TY_IDX, not TY. The TY_IDX value for a symbol is in the ST, and is not shared with other symbols.
Steve. ruifen Shen wrote: > > 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 > <mailto: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 > <mailto: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 > <mailto: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 > <mailto:sun.c...@gmail.com>>写道: > >> > >> How would you classify "pack" data? > >> Sun > >> > >> 2011/8/25 Jian-Xin Lai <laij...@gmail.com > <mailto: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 > <mailto: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 > <mailto:zqing1...@gmail.com>] > >> >> Sent: Wednesday, August 24, 2011 10:53 PM > >> >> To: Mike Murphy > >> >> Cc: Sun Chan; open64-devel@lists.sourceforge.net > <mailto: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 <mailto: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 > <mailto:sun.c...@gmail.com>] > >> >> > Sent: Wednesday, August 24, 2011 7:51 PM > >> >> > To: 朱庆 > >> >> > Cc: open64-devel@lists.sourceforge.net > <mailto: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 > <mailto:zqing1...@gmail.com>>: > >> >> >> Hi Sun, > >> >> >> > >> >> >> Attached symtab_defs.h. > >> >> >> > >> >> >> Thanks > >> >> >> zhuqing > >> >> >> 2011/8/24 Sun Chan <sun.c...@gmail.com > <mailto: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 <mailto: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 > <mailto: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 > <mailto: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 > <mailto: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 > <mailto: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 > <mailto: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