small improvement for fill and fill_n
Martin Sebor
sebor@roguewave.com
Thu Jun 17 19:12:00 GMT 2004
Paolo Carlini wrote:
> Hi Dan,
>
>> Note that the memory location pointed to by __value is accessed in
>> each loop iteration, the compiler cannot prove that __first and
>> __value do not alias. One solution would be to use a temporary like
>> so:
>
>
> First, thanks for the analysis: in order to seriously pursue performance
> improvements we really need this kind of work.
>
> Coming to the point, however, I wonder whether there are hopes that the
> alias analysis will be improved in a not-to-far future... It would be
> so sad to add those temporaries: I suspect *many* would be needed in
> the whole libraries... .-(
>
> Is an optimization PR in order?
IMO, this sounds more like a library issue than a simple matter of
QoI. It's easily detectable whether the algorithm actually "Assigns
value through all the iterators..." as the standard specifies or not.
There are places in the library where the interface goes to extra
trouble (of using by-value arguments) to avoid this side-effect of
aliasing.
Martin
More information about the Libstdc++
mailing list