LDC 1.5-1.6 huge degradation of optimization

kinke noone at nowhere.com
Mon Nov 27 13:21:04 UTC 2017


On Monday, 27 November 2017 at 10:41:44 UTC, Igor Shirkalin wrote:
> Hello!
>
> I have found that LDC1.5-1.6 generate unoptimized code in 
> contrast to LDC1.3-1.4 in some cases. I tried to extract the 
> example and make it as short as possible. The goal is to get 
> the compiled code with avx(2) instructions.

LDC 1.5 and 1.6 both come with LLVM 5.0.0, so it looks as if this 
is an LLVM regression.
This can be shown by compiling to unoptimized textual LLVM IR 
(that's the LLVM IR LDC generates, before LLVM optimizations) and 
comparing it across LDC versions. I did that for LDC 1.4 and 1.6, 
and the relevant IR is identical:

ldc2-1.4.0-win64-msvc\bin\ldc2 -release -output-ll perf.d 
-of=perf_1.4.ll
ldc2-1.6.0-win64-msvc\bin\ldc2 -release -output-ll perf.d 
-of=perf_1.6.ll
<compare files perf_1.4.ll and perf_1.6.ll>


More information about the digitalmars-d-ldc mailing list