mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-01-17 13:23:14 +01:00
e7b3f5415f73008be82c8669d6cd9b0208718070
aa[key]" use the same runtime call as "key in aa". The runtime calls
these were using were different, but with equivalent definitions.
With `ldc -O3`, the following functions now all compile to the exact same code:
{{{
int[int] y;
void foo(int x) {
if (x in y) {
auto z = x in y;
sink(*z);
}
}
void bar(int x) {
if (x in y) {
sink(y[x]);
}
}
void baz(int x) {
if (auto p = x in y) {
sink(*p);
}
}
}}}
LLVM D Compiler (LDC) This compiler is based on the Digital Mars D (DMD) compiler frontend, and the LLVM compiler toolkit. See LICENSE for licensing information. For more information, including build instructions, visit the LDC website: http://www.dsource.org/projects/llvmdc
Description
Languages
C
75.2%
C++
23.2%
D
0.7%
CMake
0.6%
Shell
0.2%