new should lower to a template function call

Walter Bright newshound2 at digitalmars.com
Thu Jul 23 10:08:08 UTC 2020


On 7/22/2020 11:13 PM, Petar Kirov [ZombineDev] wrote:
>> The compiler already does this if the variable being new`d is `scope`.
> 
> LDC has an optimization pass [1] which promotes heap allocations to stack 
> allocations, without  the user having to manually use the `scope` storage class 
> for function-local variables.
> Do you think we could formalize this optimization and move it up the pipeline 
> into the front-end, so that it's guaranteed to be performed by all 3 compilers?
> 
> [1]: 
> https://github.com/ldc-developers/ldc/blob/v1.23.0-beta1/gen/passes/GarbageCollect2Stack.cpp 

It's a good idea, but I'd consider it a low priority since it is so easy to add 
scope.

As for guaranteeing stack placement in the language spec, it's usually regarded 
as being in the QoI (Quality of Implementation) domain.


More information about the Digitalmars-d mailing list