This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: small improvement for fill and fill_n


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]