Thanks for the hard work getting this over the line! Can you confirm which types of builds enable this? Does --enable-release turn it on?
On Mon, Jul 22, 2019 at 6:56 AM Nathan Froyd <nfr...@mozilla.com> wrote: > Hi all, > > We now have link-time optimization (LTO) between Rust and C++ code > enabled on Nightly for all platforms (bug 1486042 [1]). There have > been some concerns about potential slowdowns when crossing the C++ <=> > Rust boundary due to non-inlineable function calls, and Stylo needed > to implement some gnarly code copying between C++ and Rust to obtain > good performance. With cross-language LTO enabled, such concerns and > hacks should become a thing of the past. > > It is worth explicitly noting that enabling this feature does not seem > to have made much difference on our performance tests: if you are > doing performance work, you should *not* need to enable this feature. > (Which is a good thing, as it massively increases the amount of time > needed to link libxul...) The primary benefit at the moment is not > having to implement code on both the C++ and Rust side as Stylo did > and to eliminate concerns that crossing the language boundary induces > a performance issue. > > Please note that if you attempt to build your own cross-language > LTO-enabled binary on OS X, your binary will be broken in interesting > ways due to bugs in Xcode. Work to error out much earlier in that > configuration is happening in bug 1563204 [2]. > > There were a number of people involved in this effort: Michael > Woerister did the Rust-side work [3]. David Major did the initial > landing for Win64 only [4]. Michael fixed some issues in bindgen that > prevented Win32 from working correctly [5]. And Mike Hommey tied up > loose ends and pushed things over the line while I was away for the > last two weeks. Thanks to all involved! > > -Nathan > > [1] https://bugzilla.mozilla.org/show_bug.cgi?id=1486042 > [2] https://bugzilla.mozilla.org/show_bug.cgi?id=1563204 > [3] https://github.com/rust-lang/rust/issues/49879 > [4] https://bugzilla.mozilla.org/show_bug.cgi?id=1512723 > [5] https://github.com/rust-lang/rust-bindgen/pull/1558 > _______________________________________________ > dev-platform mailing list > dev-platform@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-platform > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform