"Experimental" features in releases

Dale Johannesen dalej@apple.com
Mon Apr 17 20:07:00 GMT 2006


On Apr 17, 2006, at 11:52 AM, Mark Mitchell wrote:
> Dan Berlin and I exchanged some email about PR 26435, which concerns a
> bug in -ftree-loop-linear, and we now think it would make sense to  
> have
> a broader discussion.
>
> The PR in question is about an ice-on-valid regression in 4.1, when
> using -O1 -ftree-loop-linear.  Dan notes that this optimization option
> is "experimental", but I didn't see that reflected in the  
> documentation,
> which says:
>
>> @item -ftree-loop-linear
>> Perform linear loop transformations on tree.  This flag can  
>> improve cache
>> performance and allow further loop optimizations to take place.

I wasn't aware that it was supposed to be experimental either, and it  
wasn't explained that way when it went in (Sep 2004).  (Incomplete or  
buggy would not be surprising, but it sounds now like we're talking  
about fatally flawed design, which is different.)

> In any case, the broader question is: to what extent should we have
> experimental options in releases, and how should we warn users of  
> their
> experimental nature?

In general I would agree in principle with Diego that such features  
don't belong in releases, but this isn't the first time features have  
been found to be buggy after they've gone in.  -frename-registers  
comes to mind; in that case, the bugginess was documented for several  
releases, and that warning has recently been removed as the bugs are  
believed to be fixed.

This optimization is worth about a 5x speedup on one of the SPECmarks  
(see discussion in archives), so IMO we should consider carefully  
before removing it.  It was in 4.0 and 4.1 releases.

> My suggestion is that features that are clearly experimental (like  
> this
> one) should be (a) documented as such, and (b) should generate a
> warning, like:
>
>   warning: -ftree-loop-linear is an experimental feature and is not
> recommended for production use

Looks good to me.



More information about the Gcc mailing list