digitalmars.D.announce - LDC 1.5.0-beta1
- kinke (11/11) Oct 22 2017 Hi everyone,
- Ilya Yaroshenko (2/13) Oct 22 2017 Thanks!
- =?UTF-8?B?Tm9yZGzDtnc=?= (2/5) Oct 22 2017 Thanks!
- Guillaume Piolat (2/13) Oct 22 2017 Wow, sounds interesting!
- Johan (4/7) Oct 23 2017 Jon Degenhardt did some nice LTO testing, see:
- Guillaume Piolat (28/28) Oct 23 2017 Some measurements for some audio processing. Output are identical
- Johan Engelen (16/18) Oct 23 2017 Guillaume, can you try with building your own LTO version of the
- Guillaume Piolat (4/18) Oct 23 2017 So far my benchmark scripts are Windows-only so no LTO is
- kinke (6/9) Oct 24 2017 I performed an extremely rudimentary -flto=full test on Win64 for
- Nicholas Wilson (19/47) Oct 23 2017 would it help to have them grouped/filterable by category?
- Guillaume Piolat (4/7) Oct 24 2017 Perhaps, but the sheer amount of customizability makes you wish
Hi everyone, on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. The highlights of version 1.5 in a nutshell: * Based on D 2.075.1. * Polished LLVM 5.0 support (now also used for the prebuilt release packages). * ~25 new advanced command-line options for codegen fine-tuning. * Bugfixes, as always. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1 Thanks to everybody contributing!
Oct 22 2017
On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote:Hi everyone, on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. The highlights of version 1.5 in a nutshell: * Based on D 2.075.1. * Polished LLVM 5.0 support (now also used for the prebuilt release packages). * ~25 new advanced command-line options for codegen fine-tuning. * Bugfixes, as always. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1 Thanks to everybody contributing!Thanks!
Oct 22 2017
On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote:Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1 Thanks to everybody contributing!Thanks!
Oct 22 2017
On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote:Hi everyone, on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0. The highlights of version 1.5 in a nutshell: * Based on D 2.075.1. * Polished LLVM 5.0 support (now also used for the prebuilt release packages). * ~25 new advanced command-line options for codegen fine-tuning. * Bugfixes, as always. Full release log and downloads: https://github.com/ldc-developers/ldc/releases/tag/v1.5.0-beta1 Thanks to everybody contributing!Wow, sounds interesting!
Oct 22 2017
On Sunday, 22 October 2017 at 09:34:56 UTC, kinke wrote:Hi everyone, on behalf of the LDC team, I'm glad to announce the first beta for LDC 1.5.0.Jon Degenhardt did some nice LTO testing, see: https://github.com/ldc-developers/ldc/issues/2380 -Johan
Oct 23 2017
Some measurements for some audio processing. Output are identical across compilers (30 measures). Results: * minimum time: 440 ms => 48.024 x real-time * median time: 443 ms => 47.6987 x real-time * average time: 444.233 ms => 47.5663 x real-time Results: * minimum time: 439 ms => 48.1334 x real-time * median time: 442 ms => 47.8067 x real-time * average time: 442.6 ms => 47.7419 x real-time Results: * minimum time: 436 ms => 48.4646 x real-time * median time: 439 ms => 48.1334 x real-time * average time: 439.767 ms => 48.0494 x real-time Results: * minimum time: 429 ms => 49.2553 x real-time * median time: 432 ms => 48.9133 x real-time * average time: 433.3 ms => 48.7665 x real-time Results are only precise up to the ~0.5% range. So approx. +2.5% relative improvement in LDC 1.5.0-b1 vs LDC 1.2, free lunch is always good. The number of flags in -help-hidden seems very large, I haven't tried any yet (apart from -enable-unsafe-fp-math which seems to lose speed like -ffast-math, for this benchmark).
Oct 23 2017
On Monday, 23 October 2017 at 21:26:46 UTC, Guillaume Piolat wrote:Some measurements for some audio processing. Output are identical across compilers (30 measures).Guillaume, can you try with building your own LTO version of the standard library and do new measurements? Something like this should work: ``` ldc-build-runtime --reset --dFlags="-flto=full" BUILD_SHARED_LIBS=OFF ldc2 -your-normal-compile-flags -flto=full -L-L./ldc-build-runtime.tmp/lib ``` Use `--dFlags="-flto=full;-ar="` for now if you are using macOS (will not be needed with the next beta). (you can try with `-flto=thin` too for much faster link times) Cheers, Johan
Oct 23 2017
On Monday, 23 October 2017 at 22:06:43 UTC, Johan Engelen wrote:Guillaume, can you try with building your own LTO version of the standard library and do new measurements? Something like this should work: ``` ldc-build-runtime --reset --dFlags="-flto=full" BUILD_SHARED_LIBS=OFF ldc2 -your-normal-compile-flags -flto=full -L-L./ldc-build-runtime.tmp/lib ``` Use `--dFlags="-flto=full;-ar="` for now if you are using macOS (will not be needed with the next beta). (you can try with `-flto=thin` too for much faster link times) Cheers, JohanSo far my benchmark scripts are Windows-only so no LTO is available AFAIK. I can work on providing such measures (or any flags you want) on OSX in the future.
Oct 23 2017
On Monday, 23 October 2017 at 22:43:15 UTC, Guillaume Piolat wrote:So far my benchmark scripts are Windows-only so no LTO is available AFAIK. I can work on providing such measures (or any flags you want) on OSX in the future.I performed an extremely rudimentary -flto=full test on Win64 for a hello-world program yesterday, linking manually via LLD 5.0 (lld-link.exe), which worked (and saved 1 KB for the executable ;)).
Oct 24 2017
On Monday, 23 October 2017 at 21:26:46 UTC, Guillaume Piolat wrote:Some measurements for some audio processing. Output are identical across compilers (30 measures). Results: * minimum time: 440 ms => 48.024 x real-time * median time: 443 ms => 47.6987 x real-time * average time: 444.233 ms => 47.5663 x real-time Results: * minimum time: 439 ms => 48.1334 x real-time * median time: 442 ms => 47.8067 x real-time * average time: 442.6 ms => 47.7419 x real-time Results: * minimum time: 436 ms => 48.4646 x real-time * median time: 439 ms => 48.1334 x real-time * average time: 439.767 ms => 48.0494 x real-time Results: * minimum time: 429 ms => 49.2553 x real-time * median time: 432 ms => 48.9133 x real-time * average time: 433.3 ms => 48.7665 x real-time Results are only precise up to the ~0.5% range. So approx. +2.5% relative improvement in LDC 1.5.0-b1 vs LDC 1.2, free lunch is always good. The number of flags in -help-hidden seems very large, I haven't tried any yet (apart from -enable-unsafe-fp-math which seems to lose speed like -ffast-math, for this benchmark).would it help to have them grouped/filterable by category? e.g. $ldc2 -help-hidden=category common sanitiser asan tsan cache disable enable debug optimisation compiler-diaganostics ... $ldc2 -help-hidden=asan -asan-always-slow-path ...
Oct 23 2017
On Monday, 23 October 2017 at 22:57:00 UTC, Nicholas Wilson wrote:would it help to have them grouped/filterable by category? e.g. $ldc2 -help-hidden=categoryPerhaps, but the sheer amount of customizability makes you wish for a superoptimizer for compiler flags (hard to do this generically though).
Oct 24 2017