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