The current logic seems to be comparing the whole attribute tree between the 
callee
and caller (or at least the tree starting from the target attribute).
This is unnecessary and causes strange dependency of the indirection
elimination on unrelated properties like `noinline`(PR95780) and 
`visibility`(PR95778).

This changes the comparison to be only on the `target` attribute which should be
the intent of the code.

This fixes PR95778 and partially PR95780 (no inlining).
I wonder what is the preferred way to deal with this
(i.e. should I open a new issue tracking inlining of target_clones functions?)

Additionally, I believe there are still more tweaks necessary on this since
it is currently statically dispatching functions with default visibility that 
isn't
done if target_clones attribute isn't specified.
However, that's already the case before this patch.

Reply via email to