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.