Yet another strike against the current AA implementation

Frits van Bommel fvbommel at REMwOVExCAPSs.nl
Mon Apr 27 05:50:24 PDT 2009


Michel Fortin wrote:
> On 2009-04-27 00:50:23 -0400, dsimcha <dsimcha at yahoo.com> said:
> 
>> Output:
>> Direct:  2343
>> Virtual:  5695
>> opApply:  3014
> 
> Nice.
> 
> Isn't there room for optimisation on the compiler side though? I mean, 
> the compiler could inline opApply, and while doing so it could notice 
> that the delegate is constant and inline it too.

For non-virtual opApply this is exactly what LDC does[1] at the higher 
optimization levels :).
(Assuming both opApply and the foreach body are deemed inline-worthy by the inliner)

[1]: Since trunk r1219, which was about 11 days ago.


 > I suspect that adding
 > this optimisation would put opApply at the same performance level than
 > ranges.

I haven't actually measured to see if this is true, but there should indeed be 
very little difference since this optimization essentially turns opApply into a 
regular loop (and LDC does this before any loop optimizations run).



More information about the Digitalmars-d mailing list