[PATCH] Fix rs6000 predicates.md use of decl_replaceable_p
David Edelsohn
dje.gcc@gmail.com
Thu Nov 18 19:13:29 GMT 2021
On Thu, Nov 18, 2021 at 2:07 PM Jan Hubicka <hubicka@kam.mff.cuni.cz> wrote:
>
> > --- a/gcc/config/rs6000/predicates.md
> > +++ b/gcc/config/rs6000/predicates.md
> > @@ -1086,7 +1086,9 @@ (define_predicate "current_file_function_operand"
> > (match_test "(DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P (op))
> > && (SYMBOL_REF_LOCAL_P (op)
> > || (op == XEXP (DECL_RTL (current_function_decl), 0)
> > - && !decl_replaceable_p (current_function_decl)))
> > + && !decl_replaceable_p (current_function_decl,
> > + opt_for_fn
> > (current_function_decl,
> > +
> > flag_semantic_interposition))))
>
> Thanks, missed the use of the predicate here.
> However it is not clear to me why one would care about semantic
> interposition at this level. It seems to me that one more cares whether
> the symbol must be always resolved locally. In this case
> cgraph_node::get (current_function_decl)->binds_to_current_def_p (cgraph_node::get (current_function_decl))
> would give right answer (and work for cases like functions in comdat groups)
Hi, Honza
I was trying to fix bootstrap as quickly as possible and used the best
example that I could find. It definitely can be refined.
Thanks for suggesting a better design. I'll test it.
Thanks, David
>
> Honza
> > && !((DEFAULT_ABI == ABI_AIX
> > || DEFAULT_ABI == ABI_ELFv2)
> > && (SYMBOL_REF_EXTERNAL_P (op)
More information about the Gcc-patches
mailing list