https://issues.dlang.org/show_bug.cgi?id=14436
Marc Schütz <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED CC| |[email protected] Resolution|FIXED |--- --- Comment #3 from Marc Schütz <[email protected]> --- Comparing with an empty array or string literal still generates suboptimal code: bool isEmpty(string s) { return s == ""; } # dmd -c -O -inline -release xx.d 0000000000000000 <_D2xx7isEmptyFAyaZb>: 0: 55 push %rbp 1: 48 8b ec mov %rsp,%rbp 4: 48 83 ec 10 sub $0x10,%rsp 8: 48 89 7d f0 mov %rdi,-0x10(%rbp) c: 48 89 75 f8 mov %rsi,-0x8(%rbp) 10: 48 3b 3d 00 00 00 00 cmp 0x0(%rip),%rdi # 17 <_D2xx7isEmptyFAyaZb+0x17> 17: 75 15 jne 2e <_D2xx7isEmptyFAyaZb+0x2e> 19: 48 8b 75 f8 mov -0x8(%rbp),%rsi 1d: 48 8b 3d 00 00 00 00 mov 0x0(%rip),%rdi # 24 <_D2xx7isEmptyFAyaZb+0x24> 24: 48 8b 4d f0 mov -0x10(%rbp),%rcx 28: 33 c0 xor %eax,%eax 2a: f3 a6 repz cmpsb %es:(%rdi),%ds:(%rsi) 2c: 74 04 je 32 <_D2xx7isEmptyFAyaZb+0x32> 2e: 31 c0 xor %eax,%eax 30: eb 05 jmp 37 <_D2xx7isEmptyFAyaZb+0x37> 32: b8 01 00 00 00 mov $0x1,%eax 37: 48 8b e5 mov %rbp,%rsp 3a: 5d pop %rbp 3b: c3 retq Reopening, as it is a closely related enhancement (though strictly speaking not identical). --
