Jump to page: 1 2
Thread overview
LDC 1.5.0-beta1
Oct 22, 2017
kinke
Oct 22, 2017
Ilya Yaroshenko
Oct 22, 2017
Nordlöw
Oct 22, 2017
Guillaume Piolat
Oct 23, 2017
Johan
Oct 23, 2017
Guillaume Piolat
Oct 23, 2017
Johan Engelen
Oct 23, 2017
Guillaume Piolat
Oct 24, 2017
kinke
Oct 23, 2017
Nicholas Wilson
Oct 24, 2017
Guillaume Piolat
October 22, 2017
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!
October 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!
October 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!
October 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!
October 23, 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



October 23, 2017
Some measurements for some audio processing. Output are identical across compilers (30 measures).


### LDC 1.2.0

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

### LDC 1.3.0

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

### LDC 1.4.0

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


### LDC 1.5.0-b1

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).
October 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
October 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,
>   Johan

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.
October 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).
>
>
> ### LDC 1.2.0
>
> 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
>
> ### LDC 1.3.0
>
> 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
>
> ### LDC 1.4.0
>
> 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
>
>
> ### LDC 1.5.0-b1
>
> 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
...


October 24, 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=category

Perhaps, but the sheer amount of customizability makes you wish for a superoptimizer for compiler flags (hard to do this generically though).
« First   ‹ Prev
1 2