Some tests in the patch already updated (ifunc require condition
added) by Uros commit: ac39b078992c27934ea53cb580dbd79f75b6c727
I'll ask to commit attached patch.
x86 bootstrap and make check passed.
2015-11-03 Evgeny Stupachenko
gcc/
* multiple_target.c
Yes, that is exactly what should fix the tests.
Unfortunately I don't have access to darwin machine right now.
Can you please test if the patch (attached) fixes the tests?
gcc/
* multiple_target.c (create_dispatcher_calls): Add target check
on ifunc.
(create_target_clone):
Evgeny,
I have already checked that the addition of
+/* { dg-require-ifunc "" } */
fixes the failures. I’ll test your full patch later today (currently chasing
regression with gfortran).
Thanks,
Dominique
> Le 2 nov. 2015 à 15:50, Evgeny Stupachenko a écrit :
>
> Yes,
On 11/02/2015 07:50 AM, Evgeny Stupachenko wrote:
Yes, that is exactly what should fix the tests.
Unfortunately I don't have access to darwin machine right now.
Can you please test if the patch (attached) fixes the tests?
gcc/
* multiple_target.c (create_dispatcher_calls): Add target
Evgeny,
On darwin I see the following failures
FAIL: g++.dg/ext/mvc1.C -std=c++11 (test for excess errors)
UNRESOLVED: g++.dg/ext/mvc1.C -std=c++11 compilation failed to produce
executable
FAIL: g++.dg/ext/mvc1.C -std=c++14 (test for excess errors)
UNRESOLVED: g++.dg/ext/mvc1.C -std=c++14
I've fixed the misprint and vertical spaces.
I'll ask to commit the patch when x86 bootstrap and make check finished.
Thanks,
Evgeny
Updated ChangeLog:
2015-10-30 Evgeny Stupachenko
gcc/
* Makefile.in (OBJS): Add multiple_target.o.
* attrib.c
On Mon, Oct 26, 2015 at 6:50 PM, Jeff Law wrote:
> On 10/12/2015 05:35 PM, Evgeny Stupachenko wrote:
>>
>> Hi All,
>>
>> Here is a new version of patch (attached).
>> Bootstrap and make check are in progress (all new tests passed).
>>
>> New test case g++.dg/ext/mvc4.C fails with
> Yes. This is not necessary. However that way we'll have the following
> code in dispatcher:
> cmpl$6, __cpu_model+4(%rip)
> sete%al
> movzbl %al, %eax
> testl %eax, %eax
> jle .L16
> movl$foo.target_clone.1, %eax
> I think it is
On Thu, Oct 29, 2015 at 8:02 PM, Jan Hubicka wrote:
>> Yes. This is not necessary. However that way we'll have the following
>> code in dispatcher:
>> cmpl$6, __cpu_model+4(%rip)
>> sete%al
>> movzbl %al, %eax
>> testl %eax, %eax
>>
On 10/29/2015 12:13 PM, Evgeny Stupachenko wrote:
On Thu, Oct 29, 2015 at 8:02 PM, Jan Hubicka wrote:
>>Yes. This is not necessary. However that way we'll have the following
>>code in dispatcher:
>> cmpl$6, __cpu_model+4(%rip)
>> sete%al
>>
> Ok. I've modified the patch correspondingly.
Thanks,
the IPA/callgarph parts of the patch looks fine to me except for a typo:
+/* Create sting with attributes separated by comma.
+ Return number of attributes. */
and a fact that sometimes you skip vertical whitespace after variable
On 10/12/2015 05:35 PM, Evgeny Stupachenko wrote:
Hi All,
Here is a new version of patch (attached).
Bootstrap and make check are in progress (all new tests passed).
New test case g++.dg/ext/mvc4.C fails with ICE, when options lower
than "-mavx" are passed.
However it has the same behavior if
PING.
On Thu, Oct 15, 2015 at 12:32 AM, Evgeny Stupachenko wrote:
> Bootstrap and make check for x86 passed. No new fails.
> Please ignore an empty line added to omp-low.c in the patch, the
> misprint will be removed prior to a commit.
>
> Thanks,
> Evgeny
>
> On Tue, Oct 13,
Bootstrap and make check for x86 passed. No new fails.
Please ignore an empty line added to omp-low.c in the patch, the
misprint will be removed prior to a commit.
Thanks,
Evgeny
On Tue, Oct 13, 2015 at 2:35 AM, Evgeny Stupachenko wrote:
> Hi All,
>
> Here is a new version
Hi All,
Here is a new version of patch (attached).
Bootstrap and make check are in progress (all new tests passed).
New test case g++.dg/ext/mvc4.C fails with ICE, when options lower
than "-mavx" are passed.
However it has the same behavior if "target_clones" attribute is
replaced by 2
On Fri, Oct 9, 2015 at 11:04 PM, Jan Hubicka wrote:
>> On Fri, Oct 9, 2015 at 9:27 PM, Jan Hubicka wrote:
>> >> >Of course it also depends what you inline into function. You can have
>> >> >
>> >> >bar() target(-mavx) {fancy avx code}
>> >> >foobar() { .. if
On 10/08/2015 03:36 PM, Jan Hubicka wrote:
Yes, here you have different names for different variants of the function
body. Basically this pass takes ctarget attribute and creates bunch of verisons
of the functions and assigns them the proper target attributes, right?
Right. Given a single
> >Of course it also depends what you inline into function. You can have
> >
> >bar() target(-mavx) {fancy avx code}
> >foobar() { .. if (avx) bar();}
> >foo() ctarget(-mavx,-mno-avx) {foobar();}
> >
> >Now if you compile with -mavx and because ctarget takes effect only after
>
On Fri, Oct 9, 2015 at 9:27 PM, Jan Hubicka wrote:
>> >Of course it also depends what you inline into function. You can have
>> >
>> >bar() target(-mavx) {fancy avx code}
>> >foobar() { .. if (avx) bar();}
>> >foo() ctarget(-mavx,-mno-avx) {foobar();}
"no-" targets
> On Fri, Oct 9, 2015 at 9:27 PM, Jan Hubicka wrote:
> >> >Of course it also depends what you inline into function. You can have
> >> >
> >> >bar() target(-mavx) {fancy avx code}
> >> >foobar() { .. if (avx) bar();}
> >> >foo() ctarget(-mavx,-mno-avx) {foobar();}
>
>
On 09/22/2015 03:09 PM, Bernd Schmidt wrote:
On 09/22/2015 09:41 PM, Jeff Law wrote:
Essentially it allows us to more easily support
per-microarchitecture-optimized versions of functions. You list just
have to list the microarchitectures and the compiler handles the rest.
Very simple, very
On 09/24/2015 04:28 PM, Evgeny Stupachenko wrote:
I've fixed ICE and review issues.
x86 make check and bootstrap passed.
Thanks,
Evgeny
ChangeLog
2015-09-25 Evgeny Stupachenko
gcc/
* Makefile.in (OBJS): Add multiple_target.o.
* multiple_target.c
> Sorry this has taken so long to come back to... As I mentioned a
> couple months ago, I'd hoped Jan would chime in on the IPA/symtab
> requirements. But that didn't happen.
Sorry for that. I had bit too many real life things this summer
and I am still trying to catch up.
>
>
> SO I went
> >
> >Yes, here you have different names for different variants of the function
> >body. Basically this pass takes ctarget attribute and creates bunch of
> >verisons
> >of the functions and assigns them the proper target attributes, right?
> Right. Given a single function in the source tree
On 10/08/2015 02:01 PM, Evgeny Stupachenko wrote:
On Thu, Oct 8, 2015 at 10:00 PM, Jeff Law wrote:
On 09/24/2015 04:28 PM, Evgeny Stupachenko wrote:
I've fixed ICE and review issues.
x86 make check and bootstrap passed.
Thanks,
Evgeny
ChangeLog
2015-09-25 Evgeny
On 10/08/2015 01:23 PM, Jan Hubicka wrote:
Sorry this has taken so long to come back to... As I mentioned a
couple months ago, I'd hoped Jan would chime in on the IPA/symtab
requirements. But that didn't happen.
Sorry for that. I had bit too many real life things this summer
and I am still
On Thu, Oct 8, 2015 at 10:00 PM, Jeff Law wrote:
> On 09/24/2015 04:28 PM, Evgeny Stupachenko wrote:
>>
>> I've fixed ICE and review issues.
>> x86 make check and bootstrap passed.
>>
>> Thanks,
>> Evgeny
>>
>> ChangeLog
>>
>> 2015-09-25 Evgeny Stupachenko
>>
PING.
On Fri, Sep 25, 2015 at 1:28 AM, Evgeny Stupachenko wrote:
> I've fixed ICE and review issues.
> x86 make check and bootstrap passed.
>
> Thanks,
> Evgeny
>
> ChangeLog
>
> 2015-09-25 Evgeny Stupachenko
>
> gcc/
> * Makefile.in (OBJS): Add
I've fixed ICE and review issues.
x86 make check and bootstrap passed.
Thanks,
Evgeny
ChangeLog
2015-09-25 Evgeny Stupachenko
gcc/
* Makefile.in (OBJS): Add multiple_target.o.
* multiple_target.c (make_attribute): New.
(create_dispatcher_calls):
On 09/21/2015 07:25 AM, Bernd Schmidt wrote:
On 08/27/2015 01:18 PM, Evgeny Stupachenko wrote:
Based on RFC:
https://gcc.gnu.org/ml/gcc-patches/2015-08/msg01322.html
The patch implement an extension to Function Multiversioning that
allows to clone a function for multiple targets.
On 09/22/2015 09:41 PM, Jeff Law wrote:
Essentially it allows us to more easily support
per-microarchitecture-optimized versions of functions. You list just
have to list the microarchitectures and the compiler handles the rest.
Very simple, very easy. I'd think it'd be particularly helpful
Thank you for the review.
The patch still works with gcc 5, but the fail reproduced on trunk
(looks like it appeared while patch was at review). I'll debug it and
fix.
As a workaround to test the feature...
Removing
"gimple_call_set_fndecl (call, idecl);" from multiple_target.c
should resolve the
On 08/27/2015 01:18 PM, Evgeny Stupachenko wrote:
Based on RFC:
https://gcc.gnu.org/ml/gcc-patches/2015-08/msg01322.html
The patch implement an extension to Function Multiversioning that
allows to clone a function for multiple targets.
__attribute__((target_clones("avx","arch=slm","default")))
PING 2.
On Tue, Sep 8, 2015 at 2:27 PM, Evgeny Stupachenko wrote:
> Ping.
>
> On Thu, Aug 27, 2015 at 2:18 PM, Evgeny Stupachenko
> wrote:
>> Hi All,
>>
>> Based on RFC:
>> https://gcc.gnu.org/ml/gcc-patches/2015-08/msg01322.html
>>
>> The patch
Ping.
On Thu, Aug 27, 2015 at 2:18 PM, Evgeny Stupachenko wrote:
> Hi All,
>
> Based on RFC:
> https://gcc.gnu.org/ml/gcc-patches/2015-08/msg01322.html
>
> The patch implement an extension to Function Multiversioning that
> allows to clone a function for multiple targets.
>
Hi All,
Based on RFC:
https://gcc.gnu.org/ml/gcc-patches/2015-08/msg01322.html
The patch implement an extension to Function Multiversioning that
allows to clone a function for multiple targets.
__attribute__((target_clones(avx,arch=slm,default)))
int foo ()
...
Will create 3 clones of foo().
On 08/20/2015 05:38 PM, Evgeny Stupachenko wrote:
On Mon, Aug 3, 2015 at 9:43 PM, Jeff Law l...@redhat.com wrote:
On 07/30/2015 04:19 PM, Evgeny Stupachenko wrote:
Hi All,
The patch enables new attribute 'ctarget',
The attribute force compiler to create clones of a function with the
On Mon, Aug 3, 2015 at 9:43 PM, Jeff Law l...@redhat.com wrote:
On 07/30/2015 04:19 PM, Evgeny Stupachenko wrote:
Hi All,
The patch enables new attribute 'ctarget',
The attribute force compiler to create clones of a function with the
attribute.
For example:
On 07/30/2015 04:19 PM, Evgeny Stupachenko wrote:
Hi All,
The patch enables new attribute 'ctarget',
The attribute force compiler to create clones of a function with the attribute.
For example:
__attribute__((ctarget(avx,arch=slm,arch=core-avx2,default)))
So presumably we're allowing both
On 07/31/2015 05:50 AM, Evgeny wrote:
New ctarget attribute automatically clone function and optimize for
corresponding target. For target attribute if you specify avx,sse4 you
will get only 1 function optimized for the target with higher priority,
while ctarget will generate 2 functions: one
Hi All,
The patch enables new attribute 'ctarget',
The attribute force compiler to create clones of a function with the attribute.
For example:
__attribute__((ctarget(avx,arch=slm,arch=core-avx2,default)))
int
foo ()
will create 3 clones of foo() optimized for corresponding targets and
replace
You can't apply both 'ctarget' and 'target' attributes to a function.
The patch uses same target specific methods to create dispatcher and
target clones.
On Fri, Jul 31, 2015 at 1:30 AM, Andrew Pinski pins...@gmail.com wrote:
On Thu, Jul 30, 2015 at 3:19 PM, Evgeny Stupachenko evstu...@gmail.com
On Fri, 31 Jul 2015, Evgeny Stupachenko wrote:
The patch enables new attribute 'ctarget',
Attributes should be documented in extend.texi.
--
Joseph S. Myers
jos...@codesourcery.com
On Thu, Jul 30, 2015 at 3:19 PM, Evgeny Stupachenko evstu...@gmail.com wrote:
Hi All,
The patch enables new attribute 'ctarget',
The attribute force compiler to create clones of a function with the
attribute.
For example:
__attribute__((ctarget(avx,arch=slm,arch=core-avx2,default)))
int
On 07/30/2015 04:19 PM, Evgeny Stupachenko wrote:
Hi All,
The patch enables new attribute 'ctarget',
The attribute force compiler to create clones of a function with the attribute.
For example:
__attribute__((ctarget(avx,arch=slm,arch=core-avx2,default)))
int
foo ()
will create 3 clones of
Forget C++ tests.
On Fri, Jul 31, 2015 at 1:19 AM, Evgeny Stupachenko evstu...@gmail.com wrote:
Hi All,
The patch enables new attribute 'ctarget',
The attribute force compiler to create clones of a function with the
attribute.
For example:
46 matches
Mail list logo