Do you think if statement as expression would be nice to have in D?
deadalnix
deadalnix at gmail.com
Mon Jun 6 20:31:06 UTC 2022
On Monday, 6 June 2022 at 17:43:47 UTC, H. S. Teoh wrote:
> On Mon, Jun 06, 2022 at 05:07:30PM +0000, deadalnix via
> Digitalmars-d wrote:
>> [...]
>>
>> LDC is able to inline the lambda and then optimize away the
>> allocation. DMD is not.
>>
>> https://godbolt.org/z/5vMcz4s14
>
> Yeah, when in doubt, trust LDC to do the "right thing". :-P
> Well, that, and take a look at the generated assembly to see
> what it actually does. For questions of performance or codegen
> quality, I usually don't even bother looking at DMD output.
>
>
> T
I mean:
```
int example.foo(immutable(char)[]):
cmp rdi, 5
jne .LBB0_3
mov eax, 1764586337
xor eax, dword ptr [rsi]
movzx ecx, byte ptr [rsi + 4]
xor ecx, 115
or ecx, eax
je .LBB0_2
.LBB0_3:
mov eax, 100
ret
.LBB0_2:
mov eax, 200
ret
```
It's amazing.
More information about the Digitalmars-d
mailing list