Inherent code performance advantages of D over C?

Jacob Carlborg doob at me.com
Mon Dec 9 00:05:35 PST 2013


On 2013-12-07 00:56, Walter Bright wrote:

>>> 2. D knows when functions are pure. C has to make worst case
>>> assumptions.
>>
>> Does the compiler currently take advantage of this?
>
> dmd does.

Compiling the following code:

pure int foo (immutable int a, immutable int b)
{
     return a + b;
}

void main ()
{
     auto a = foo(1, 2);
     auto b = foo(1, 2);
     auto c = a + b;
}

With DMD 2.064.2 produce the exact same assembly code for "foo" and 
"main" with our without "pure". I compiled with "dmd -O -release foo.d", 
am I doing something wrong?

> This is about inherent language opportunities, not whether current
> implementations fall short or not.

I think most people will care about what's working right now. Not what 
could possibly work sometime in the future.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list