This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] regcprop fix for PR rtl-optimization/54300
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Richard Earnshaw <rearnsha at arm dot com>
- Cc: Jeff Law <law at redhat dot com>, Steven Bosscher <stevenb dot gcc at gmail dot com>, Eric Botcazou <ebotcazou at adacore dot com>, gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 09 Jan 2014 15:25:02 +0000
- Subject: Re: [patch] regcprop fix for PR rtl-optimization/54300
- Authentication-results: sourceware.org; auth=none
- References: <528B9527 dot 2050800 at arm dot com> <CABu31nOddrxBhG3EyPxi=2scYm8xVLbC12NkSvJ8OmDDGOOvBA at mail dot gmail dot com> <528B9F65 dot 6070702 at redhat dot com> <CABu31nMksJFePumou_X=cbdhr3nUJOdDQq6fKrQEq8KrzcJL+w at mail dot gmail dot com> <528BA464 dot 3030800 at redhat dot com> <528CBFB1 dot 7020407 at arm dot com>
On 20/11/13 13:57, Richard Earnshaw wrote:
> On 19/11/13 17:48, Jeff Law wrote:
>> On 11/19/13 10:32, Steven Bosscher wrote:
>>>
>>> Yes. In the GCC3 days it was important for sincos on i386, and on mk68
>>> it used to be important for some of the funnier patterns. Not sure if
>>> it's still useful today, though. Might be worth looking into, just to
>>> avoid the confusion in the future.
>> I doubt it's changed all that much :-)
>>
>>>
>>> There's been confusion about this before, where people assumed
>>> single_set really means "just one SET in this pattern". (ISTR fixing
>>> gcse.c's hash_scan_rtx for this at some point...?). But that's not the
>>> semantics of single_set.
>> Yes. And I'd expect confusion to continue :( Not sure if creating
>> renaming to capture the actual semantics would help here.
>>
>>>
>>> The proper test for "just one SET" is (!multiple_sets && single_set).
>>> At least, that's how I've always coded it...
>> Seems reasonable for those cases where you have to ensure there really
>> is just one set.
>>
>>
>> jeff
>>
>
> Provided we correctly note the other values that are killed, we can
> handle multiple sets safely. The one restriction we have to watch is
> where the dead set operations kill input values to the live set operation.
>
> I've committed my patch to trunk.
>
> I'll leave it to gestate a couple of days, but this is also needed on
> the active release branches as well.
>
Well, a bit more than a few days...
4.8 backport has now been applied. 4.7 should follow shortly.
R.