This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: ppc64 __attribute__((visibility ("hidden"))) and multiple TOCs


On Mon, Jun 25, 2007 at 12:48:10PM -0400, Mark Mitchell wrote:
> I was suggesting leaving the hook alone, but modifying the test for the
>  sibling call optimization in rs6000_function_ok_for_sibcall to:
> 
>   !DECL_EXTERNAL (decl) && binds_local_p (decl)
> 
> In other words, per Jakub's argument, consider binds_local_p to be
> correct (even on Power), but just note in the back end that
> binds_local_p isn't a sufficient test for being safe for a sibling call.

I guess the right thing to do would be to replace the current
3 uses of SYMBOL_REF_LOCAL_P (x) macro in config/rs6000/*.md
with
SYMBOL_REF_LOCAL_P (x) && (!TARGET_ARCH64 || !SYMBOL_REF_EXTERNAL_P (x))

where TARGET_ARCH64 is replaced by whatever ppc* subarches need multi-toc.

SYMBOL_REF_LOCAL_P is used even in generic code and there the current
definition is ok - SYMBOL_REF_LOCAL_P symbols won't need global relocations.

Similarly other uses of binds_local_p I have checked.

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]