that is fine. It should be anyway Sun On Thu, May 26, 2011 at 6:58 PM, Jian-Xin Lai <laij...@gmail.com> wrote: > Hi Sun, > > The CG_p2align is defined in cg_flags.cxx and only available on x86_64 and > loongson. I made the following patch to make it available for all target: > Index: cg_flags.cxx > =================================================================== > --- cg_flags.cxx (revision 3628) > +++ cg_flags.cxx (working copy) > @@ -531,6 +531,8 @@ > BOOL CG_compute_to = FALSE; > BOOL CG_valgrind_friendly = TRUE; > BOOL CG_Movext_ICMP = TRUE; > +#else > +INT32 CG_p2align = 0; > #endif > #ifdef TARG_LOONGSON > BOOL CGEXP_float_use_madd = FALSE; > > Could you please review this patch? Thank you very much. > > 2011/5/25 Sun Chan <sun.c...@gmail.com> >> >> thx David. This is a lot better. >> Please check in. >> Sun >> >> On Wed, May 25, 2011 at 12:09 AM, David Coakley <dcoak...@gmail.com> >> wrote: >> > I would like to propose a different fix for the CG_p2align problem >> > that also fixes the build for the SL target (broken in r3614). With >> > this change, the change to cgemit.cxx should not be needed on IA-64. >> > >> > The change is to make the declaration of CG_p2align visible for all >> > targets. It is already being defined and set to 0 for non-x86 >> > targets, so there is no need to add the ifdefs in cgemit.cxx. >> > >> > -David Coakley / AMD Open Source Compiler Engineering >> > >> > Index: osprey/be/cg/cg_flags.h >> > =================================================================== >> > --- osprey/be/cg/cg_flags.h (revision 3618) >> > +++ osprey/be/cg/cg_flags.h (working copy) >> > @@ -860,6 +860,7 @@ >> > extern BOOL LOCS_Reduce_Prefetch; >> > extern BOOL LOCS_Reduce_Prefetch_set; >> > #endif >> > +extern INT32 CG_p2align; >> > #if defined(TARG_X8664) || defined(TARG_LOONGSON) >> > extern INT32 CG_sse_load_execute; >> > extern INT32 CG_load_execute; >> > @@ -868,7 +869,6 @@ >> > extern BOOL CG_use_short_form; >> > extern BOOL CG_loadbw_execute; >> > extern BOOL CG_Movext_ICMP; >> > -extern INT32 CG_p2align; >> > extern BOOL CG_loop32; >> > extern BOOL CG_compute_to; >> > extern UINT64 CG_p2align_freq; >> > >> > >> > >> > On Tue, May 24, 2011 at 5:10 AM, Sun Chan <sun.c...@gmail.com> wrote: >> >> this makes no sense. That it is 16 byte aligned does not mean it >> >> should always be. Taking away an align pseudo does not make the >> >> program any more correct. And it certainly will be wrong if for some >> >> reason the code wants to be more than 16 byte aligned. Say, I want >> >> that to be cacheline aligned, and the cacheline is 32 bytes (again, >> >> this is hyperthetical) >> >> sun >> >> >> >> On Tue, May 24, 2011 at 6:56 PM, Jian-Xin Lai <laij...@gmail.com> >> >> wrote: >> >>> Since IA-64 instructions are already aligned to 16-byte boundary, I'm >> >>> sure >> >>> the code alignment on IA-64 is not as important as x86. >> >>> Considering the similar code in other places in CG is only applied to >> >>> TARG_X8664 and TARG_LOONGSON, I think it's OK to disable the p2align >> >>> on >> >>> IA-64. >> >>> >> >>> 2011/5/24 Sun Chan <sun.c...@gmail.com> >> >>>> >> >>>> if the alignment is 256, you still need it. >> >>>> Sun >> >>>> >> >>>> On Tue, May 24, 2011 at 5:12 PM, Wu Yongchong <wuyongch...@gmail.com> >> >>>> wrote: >> >>>> > EPIC is at least128bit aligned, no need for an "align" pseudo . >> >>>> > >> >>>> > On Tue, May 24, 2011 at 5:09 PM, Sun Chan <sun.c...@gmail.com> >> >>>> > wrote: >> >>>> >> I don't understand why an "align" pseudo is not needed in IA64 >> >>>> >> Sun >> >>>> >> >> >>>> >> On Tue, May 24, 2011 at 4:49 PM, Wu Yongchong >> >>>> >> <wuyongch...@gmail.com> >> >>>> >> wrote: >> >>>> >>> Here is the patch, >> >>>> >>> 1. the first one used #if defined to remove some code that >> >>>> >>> specific in >> >>>> >>> X8664 and loogson, not in IA64. >> >>>> >>> 2. the second one , in IA64, >> >>>> >>> _wn_to_val_num_map->Get_val((POINTER) >> >>>> >>> wn_cond) return a *void type, it must convert to a type INTPTR >> >>>> >>> before >> >>>> >>> convert to IF_CMP_VAL(actually UINT32) >> >>>> >>> >> >>>> >>> Index: osprey/be/cg/cgemit.cxx >> >>>> >>> >> >>>> >>> =================================================================== >> >>>> >>> --- osprey/be/cg/cgemit.cxx (revision 3624) >> >>>> >>> +++ osprey/be/cg/cgemit.cxx (working copy) >> >>>> >>> @@ -4864,8 +4864,10 @@ >> >>>> >>> // alt-entry >> >>>> >>> if ( Assembly ) { >> >>>> >>> fprintf ( Asm_File, "\t%s\t%s\n", AS_AENT, >> >>>> >>> ST_name(entry_sym)); // KEY >> >>>> >>> +#if defined(TARG_X8664) || defined(TARG_LOONGSON) >> >>>> >>> if (CG_p2align != 0) >> >>>> >>> fputs ("\t.p2align 5,,\n", >> >>>> >>> Asm_File); >> >>>> >>> +#endif >> >>>> >>> Print_Label (Asm_File, entry_sym, 0 ); >> >>>> >>> } >> >>>> >>> EMT_Put_Elf_Symbol (entry_sym); >> >>>> >>> Index: osprey/be/opt/opt_proactive.cxx >> >>>> >>> >> >>>> >>> =================================================================== >> >>>> >>> --- osprey/be/opt/opt_proactive.cxx (revision 3624) >> >>>> >>> +++ osprey/be/opt/opt_proactive.cxx (working copy) >> >>>> >>> @@ -10357,7 +10357,7 @@ >> >>>> >>> UINT32 key; >> >>>> >>> STACK<WN *> * stk; >> >>>> >>> >> >>>> >>> - IF_CMP_VAL ret_val = (IF_CMP_VAL) >> >>>> >>> _wn_to_val_num_map->Get_val((POINTER) wn_cond); >> >>>> >>> + IF_CMP_VAL ret_val = (IF_CMP_VAL)(INTPTR) >> >>>> >>> _wn_to_val_num_map->Get_val((POINTER) wn_cond); >> >>>> >>> if (ret_val) { >> >>>> >>> *val = ((*val) << MAX_IF_CMP_BITS) + ret_val; >> >>>> >>> return; >> >>>> >>> @@ -10373,7 +10373,7 @@ >> >>>> >>> for (int i = 0; i < stk->Elements(); i++) { >> >>>> >>> WN * wn_iter = stk->Top_nth(i); >> >>>> >>> if ((wn_cond == wn_iter) || >> >>>> >>> (WN_Simp_Compare_Trees(wn_cond, >> >>>> >>> wn_iter) == 0)) { >> >>>> >>> - ret_val = (IF_CMP_VAL) >> >>>> >>> _wn_to_val_num_map->Get_val((POINTER) >> >>>> >>> wn_iter); >> >>>> >>> + ret_val = (IF_CMP_VAL)(INTPTR) >> >>>> >>> _wn_to_val_num_map->Get_val((POINTER) wn_iter); >> >>>> >>> break; >> >>>> >>> } >> >>>> >>> } >> >>>> >>> >> >>>> >>> >> >>>> >>> -- >> >>>> >>> yongchong >> >>>> >>> >> >>>> >>> >> >>>> >>> >> >>>> >>> ------------------------------------------------------------------------------ >> >>>> >>> vRanger cuts backup time in half-while increasing security. >> >>>> >>> With the market-leading solution for virtual backup and recovery, >> >>>> >>> you get blazing-fast, flexible, and affordable data protection. >> >>>> >>> Download your free trial now. >> >>>> >>> http://p.sf.net/sfu/quest-d2dcopy1 >> >>>> >>> _______________________________________________ >> >>>> >>> Open64-devel mailing list >> >>>> >>> Open64-devel@lists.sourceforge.net >> >>>> >>> https://lists.sourceforge.net/lists/listinfo/open64-devel >> >>>> >>> >> >>>> >> >> >>>> > >> >>>> > >> >>>> > >> >>>> > -- >> >>>> > yongchong >> >>>> > >> >>>> >> >>>> >> >>>> >> >>>> ------------------------------------------------------------------------------ >> >>>> vRanger cuts backup time in half-while increasing security. >> >>>> With the market-leading solution for virtual backup and recovery, >> >>>> you get blazing-fast, flexible, and affordable data protection. >> >>>> Download your free trial now. >> >>>> http://p.sf.net/sfu/quest-d2dcopy1 >> >>>> _______________________________________________ >> >>>> Open64-devel mailing list >> >>>> Open64-devel@lists.sourceforge.net >> >>>> https://lists.sourceforge.net/lists/listinfo/open64-devel >> >>> >> >>> >> >>> >> >>> -- >> >>> Regards, >> >>> Lai Jian-Xin >> >>> >> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> vRanger cuts backup time in half-while increasing security. >> >> With the market-leading solution for virtual backup and recovery, >> >> you get blazing-fast, flexible, and affordable data protection. >> >> Download your free trial now. >> >> http://p.sf.net/sfu/quest-d2dcopy1 >> >> _______________________________________________ >> >> Open64-devel mailing list >> >> Open64-devel@lists.sourceforge.net >> >> https://lists.sourceforge.net/lists/listinfo/open64-devel >> >> >> > > > > > -- > Regards, > Lai Jian-Xin >
------------------------------------------------------------------------------ vRanger cuts backup time in half-while increasing security. With the market-leading solution for virtual backup and recovery, you get blazing-fast, flexible, and affordable data protection. Download your free trial now. http://p.sf.net/sfu/quest-d2dcopy1 _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel