Does 'D' language supports 'C' like VLA?

deadalnix via Digitalmars-d digitalmars-d at puremagic.com
Tue Apr 14 00:41:04 PDT 2015


On Tuesday, 14 April 2015 at 07:06:24 UTC, John Colvin wrote:
> On Monday, 13 April 2015 at 19:45:37 UTC, deadalnix wrote:
>> On Monday, 13 April 2015 at 17:04:51 UTC, John Colvin wrote:
>>> Eww.
>>>
>>> auto arr = new int[3];
>>>
>>> Also, I think he's referring to something slightly different.
>>
>> IMO, that shouldn't be too difficult to promote that on stack 
>> if the reference do not escape in most cases.
>
> The problem is that the size isn't necessarily known. I guess 
> the compiler could put in a branch, but at that point you'd 
> probably want to give the programmer control and have a way of 
> making it explicit.

The branch being way cheaper than an allocation anyway, and 
likely to be very predictable, I'd go for it anyway.

You can always add a compiler flag --max-stack-promotion-size=XXX 
to configure the thing, with a sensible default.

This approach is far preferable as the compiler can do it AFTER 
inlining take place, so can promote stuff on the stack that don't 
like you'd be able to looking at the code.


More information about the Digitalmars-d mailing list