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 ICE

I'll fix the patch for trunk and send an update.

Thanks,
Evgeny


On Wed, Sep 23, 2015 at 12:09 AM, Bernd Schmidt <bschm...@redhat.com> 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 easy.  I'd think it'd be particularly helpful for
>> vectorization.
>>
>> You could emulate this with compiling the same source multiple times
>> with different flags/defines and wire up on ifunc by hand.  But Evgeny's
>> approach is vastly simpler.
>
>
> As far as I can tell the ifunc is generated automatically (and the
> functionality is documented as such), so the new target_clone doesn't buy
> much. But one thing I didn't was that the existing support is only available
> in C++, while Evgeny's patch works for C. That is probably an argument that
> could be made for its inclusion.
>
> Or at least, it's supposed to work. As I said, I get verify_ssa failures on
> the included testcases, and for a simpler one I just tried I get the clones
> of the function, but not the resolver that ought to be generated.
>
>
> Bernd

Reply via email to