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.