inline functions

Jonathan M Davis jmdavisProg at gmx.com
Fri Mar 25 20:49:18 PDT 2011


On 2011-03-25 19:04, Caligo wrote:
> T[3] data;
> 
> T dot(const ref Vector o){
>     return data[0] * o.data[0] + data[1] * o.data[1] + data[2] * o.data[2];
> }
> 
> T LengthSquared_Fast(){ return data[0] * data[0] + data[1] * data[1] +
> data[2] * data[2]; }
> T LengthSquared_Slow(){ return dot(this); }
> 
> 
> The faster LengthSquared() is twice as fast, and I've test with GDC
> and DMD.  Is it because the compilers don't inline-expand the dot()
> function call?  I need the performance, but the faster version is too
> verbose.

It sure sounds like it didn't inline it. Did you compile with -inline? If you 
didn't then it definitely won't inline it.

- Jonathan M Davis


More information about the Digitalmars-d-learn mailing list