[PATCH] Redirect call within specific target attribute among MV clones (PR ipa/82625).

Renlin Li renlin.li@foss.arm.com
Mon Oct 8 09:16:00 GMT 2018


Hi Martin,

pr82625.C failed on compiler builds which don't support "default" and "avx" target.
For example, arm/aarch64 native linux gcc compiler.


As I found in this gcc wiki: https://gcc.gnu.org/wiki/FunctionMultiVersioning
'''
This support is available in GCC 4.8 and later. Support is only available in C++ for i386 targets.
'''

Should the test be guarded with a target selector or require function multi-versioning instead of ifunc?

Regards,
Renlin


On 10/04/2018 02:56 PM, Martin Liška wrote:
> Hi.
> 
> When having a pair of target clones where foo calls bar, if the target
> attribute are equal we can redirect the call and not use ifunc dispatcher.
> 
> Patch survives regression tests on x86_64-linux-gnu.
> Ready for trunk?
> 
> Martin
> 
> gcc/ChangeLog:
> 
> 2018-10-04  Martin Liska  <mliska@suse.cz>
> 
> 	PR ipa/82625
> 	* multiple_target.c (redirect_to_specific_clone): New function.
> 	(ipa_target_clone): Use it.
> 	* tree-inline.c: Fix comment.
> 
> gcc/testsuite/ChangeLog:
> 
> 2018-10-04  Martin Liska  <mliska@suse.cz>
> 
> 	PR ipa/82625
> 	* g++.dg/ext/pr82625.C: New test.
> ---
>   gcc/multiple_target.c              | 51 ++++++++++++++++++++++++++++++
>   gcc/testsuite/g++.dg/ext/pr82625.C | 36 +++++++++++++++++++++
>   gcc/tree-inline.c                  |  2 +-
>   3 files changed, 88 insertions(+), 1 deletion(-)
>   create mode 100644 gcc/testsuite/g++.dg/ext/pr82625.C
> 
> 



More information about the Gcc-patches mailing list