Re: Phobos and LTO

2017-03-08 Thread Johan Engelen via Digitalmars-d

On Wednesday, 8 March 2017 at 17:16:58 UTC, Johan Engelen wrote:


Does LLVM trunk automatically build an LLD LTO plugin on 
Windows? If not, we should ask about it on the LLVM mailing 
list.


Er... stop me before doing something stupid :)
LTO is of course a native feature of LLD.


Re: Phobos and LTO

2017-03-08 Thread Johan Engelen via Digitalmars-d

On Tuesday, 7 March 2017 at 22:38:33 UTC, kinke wrote:


Yep, I gave LLD 3.9 a try on Win64 some weeks ago. Works out of 
the box as drop-in replacement for Microsoft's link.exe, incl. 
usage of environment variables.


Niiice. Awesome indeed!

Does LLVM trunk automatically build an LLD LTO plugin on Windows? 
If not, we should ask about it on the LLVM mailing list.


cheers,
  Johan



Re: Phobos and LTO

2017-03-07 Thread kinke via Digitalmars-d

On Tuesday, 7 March 2017 at 18:46:15 UTC, Johan Engelen wrote:

On Tuesday, 7 March 2017 at 18:42:40 UTC, Johan Engelen wrote:


It works on OS X too.
And OS X is the only platform for which we package the LTO 
linker binaries in the release.


Has anybody tried LLD on Windows for D already?
https://lld.llvm.org/windows_support.html

If LLD works (or another linker that can use the LLVM plugin), 
then LTO is also available on Windows.


-Johan


Yep, I gave LLD 3.9 a try on Win64 some weeks ago. Works out of 
the box as drop-in replacement for Microsoft's link.exe, incl. 
usage of environment variables. What's apparently still lacking 
is debuginfos (.pdb) generation, so our CDB debugging tests 
failed (all others worked IIRC).
LLD is supposed to be significantly faster than Microsoft's 
linker; I haven't done any measurements yet. Besides offering 
nice stuff like LTO, integrating LLD should allow LDC to directly 
cross-compile *and* cross-link. So you'll only need the target 
system libs to produce objects, libraries and executables for 
'any' target. Which is pretty awesome.


Re: Phobos and LTO

2017-03-07 Thread Daniel Kozak via Digitalmars-d

Dne 7.3.2017 v 19:42 Johan Engelen via Digitalmars-d napsal(a):


On Tuesday, 7 March 2017 at 18:15:52 UTC, Temtaime wrote:

On Sunday, 5 March 2017 at 19:52:12 UTC, Daniel Kozak wrote:

Dne 5.3.2017 v 20:31 Temtaime via Digitalmars-d napsal(a):


On Sunday, 5 March 2017 at 17:17:13 UTC, Las wrote:

Is Phobos compiled with LTO enabled?


There is no LTO with D.

Yes it is
https://johanengelen.github.io/ldc/2016/11/10/Link-Time-Optimization-LDC.html 



Being specific only for LDC and only on linux - it's a lie to say 
simple « yes ».


Cheer up, you wrote "there is no LTO with D", which there clearly is. :-)

It works on OS X too.
And OS X is the only platform for which we package the LTO linker 
binaries in the release.


-Johan


OTOH he maybe has dmd in mind when he speaking about D. It is a really 
common pattern (problem) I am challenging every time (unfortunately) 
when I am speaking about D.


Re: Phobos and LTO

2017-03-07 Thread Johan Engelen via Digitalmars-d

On Tuesday, 7 March 2017 at 18:42:40 UTC, Johan Engelen wrote:


It works on OS X too.
And OS X is the only platform for which we package the LTO 
linker binaries in the release.


Has anybody tried LLD on Windows for D already?
https://lld.llvm.org/windows_support.html

If LLD works (or another linker that can use the LLVM plugin), 
then LTO is also available on Windows.


-Johan




Re: Phobos and LTO

2017-03-07 Thread Johan Engelen via Digitalmars-d

On Tuesday, 7 March 2017 at 18:15:52 UTC, Temtaime wrote:

On Sunday, 5 March 2017 at 19:52:12 UTC, Daniel Kozak wrote:

Dne 5.3.2017 v 20:31 Temtaime via Digitalmars-d napsal(a):


On Sunday, 5 March 2017 at 17:17:13 UTC, Las wrote:

Is Phobos compiled with LTO enabled?


There is no LTO with D.

Yes it is
https://johanengelen.github.io/ldc/2016/11/10/Link-Time-Optimization-LDC.html


Being specific only for LDC and only on linux - it's a lie to 
say simple « yes ».


Cheer up, you wrote "there is no LTO with D", which there clearly 
is. :-)


It works on OS X too.
And OS X is the only platform for which we package the LTO linker 
binaries in the release.


-Johan


Re: Phobos and LTO

2017-03-07 Thread Temtaime via Digitalmars-d

On Sunday, 5 March 2017 at 19:52:12 UTC, Daniel Kozak wrote:

Dne 5.3.2017 v 20:31 Temtaime via Digitalmars-d napsal(a):


On Sunday, 5 March 2017 at 17:17:13 UTC, Las wrote:

Is Phobos compiled with LTO enabled?


There is no LTO with D.

Yes it is
https://johanengelen.github.io/ldc/2016/11/10/Link-Time-Optimization-LDC.html


Being specific only for LDC and only on linux - it's a lie to say 
simple « yes ».


Re: Phobos and LTO

2017-03-05 Thread Johan Engelen via Digitalmars-d

On Sunday, 5 March 2017 at 19:52:12 UTC, Daniel Kozak wrote:

Dne 5.3.2017 v 20:31 Temtaime via Digitalmars-d napsal(a):


On Sunday, 5 March 2017 at 17:17:13 UTC, Las wrote:

Is Phobos compiled with LTO enabled?


There is no LTO with D.

Yes it is
https://johanengelen.github.io/ldc/2016/11/10/Link-Time-Optimization-LDC.html


And it appeared first in the recent LDC 1.1 release.

-Johan


Re: Phobos and LTO

2017-03-05 Thread Johan Engelen via Digitalmars-d

On Sunday, 5 March 2017 at 21:00:32 UTC, Dmitry Olshansky wrote:

On 3/5/17 6:17 PM, Las wrote:

Is Phobos compiled with LTO enabled?


LTO is *link* time optimization so I'd say it makes no sense 
for libraries, as they are not linked.


Static libraries _are_ linked into your executable and LTO is 
very relevant for libraries.
Having druntime and/or Phobos compiled with LTO enabled can 
provide massive speedups.
I have not worked on it yet, but it'd be awesome if we could ship 
LDC with LTO versions of druntime and Phobos. PRs with additions 
to our CMake files are very welcome! :-)


cheers,
  Johan



Re: Phobos and LTO

2017-03-05 Thread John Colvin via Digitalmars-d

On Sunday, 5 March 2017 at 21:00:32 UTC, Dmitry Olshansky wrote:

On 3/5/17 6:17 PM, Las wrote:

Is Phobos compiled with LTO enabled?


LTO is *link* time optimization so I'd say it makes no sense 
for libraries, as they are not linked.


---
Dmitry Olshansky


Shared libraries are linked.


Re: Phobos and LTO

2017-03-05 Thread Dmitry Olshansky via Digitalmars-d

On 3/5/17 6:17 PM, Las wrote:

Is Phobos compiled with LTO enabled?


LTO is *link* time optimization so I'd say it makes no sense for 
libraries, as they are not linked.


---
Dmitry Olshansky


Re: Phobos and LTO

2017-03-05 Thread Daniel Kozak via Digitalmars-d

Dne 5.3.2017 v 20:31 Temtaime via Digitalmars-d napsal(a):


On Sunday, 5 March 2017 at 17:17:13 UTC, Las wrote:

Is Phobos compiled with LTO enabled?


There is no LTO with D.

Yes it is
https://johanengelen.github.io/ldc/2016/11/10/Link-Time-Optimization-LDC.html


Re: Phobos and LTO

2017-03-05 Thread Temtaime via Digitalmars-d

On Sunday, 5 March 2017 at 17:17:13 UTC, Las wrote:

Is Phobos compiled with LTO enabled?


There is no LTO with D.


Phobos and LTO

2017-03-05 Thread Las via Digitalmars-d

Is Phobos compiled with LTO enabled?