Re: Phobos and LTO
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
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
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
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
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
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
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
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
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
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
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
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
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
Is Phobos compiled with LTO enabled?