On 10/8/18 10:46 AM, Renlin Li wrote:
> 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?

Hi.

Sure, sorry for the breakage. I'm going to install following tested patch.

Martin

> 
> 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  <mli...@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  <mli...@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
>>
>>

>From e3053abe58eba832262db0af77980012010a642c Mon Sep 17 00:00:00 2001
From: marxin <mli...@suse.cz>
Date: Mon, 8 Oct 2018 11:07:29 +0200
Subject: [PATCH] Limit a MV test just for x86 target.

gcc/testsuite/ChangeLog:

2018-10-08  Martin Liska  <mli...@suse.cz>

	* g++.dg/ext/pr82625.C: Add dg-compile filter.
---
 gcc/testsuite/g++.dg/ext/pr82625.C | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gcc/testsuite/g++.dg/ext/pr82625.C b/gcc/testsuite/g++.dg/ext/pr82625.C
index 47bd2df1104..59b174f8c51 100644
--- a/gcc/testsuite/g++.dg/ext/pr82625.C
+++ b/gcc/testsuite/g++.dg/ext/pr82625.C
@@ -1,6 +1,7 @@
 /* { dg-do compile } */
 /* { dg-require-ifunc "" } */
 /* { dg-options "-O2 -fdump-tree-optimized" } */
+/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 
 __attribute__ ((target ("default")))
 static unsigned foo(const char *buf, unsigned size) {
-- 
2.19.0

Reply via email to