Uh oh!
There was an error while loading. Please reload this page.
Test setting a lower import limit for ThinLTO. - #66625
Conversation
michaelwoerister
commented
Nov 22, 2019
@bors try @rust-timer queue |
rust-timer
commented
Nov 22, 2019
Awaiting bors try build completion |
bors
commented
Nov 22, 2019
…it, r=<try> Test setting a lower import limit for ThinLTO. The Firefox build system [sets a lower ThinLTO import limit](https://searchfox.org/mozilla-central/search?q=-import-instr-limit&path=) since recently but because they discovered that that can significantly lower build times without really affecting runtime performance too much. Let's see how this would affect our benchmarks. r? @ghost
bors
commented
Nov 22, 2019
☀️ Try build successful - checks-azure |
rust-timer
commented
Nov 22, 2019
Queued 3972c8d with parent bd816fd, future comparison URL. |
rust-timer
commented
Nov 22, 2019
Finished benchmarking try commit 3972c8d, comparison URL. |
michaelwoerister
commented
Nov 25, 2019
OK, if I'm interpreting this correctly these results show two things:
I think it's a good idea to investigate further and see if there is a setting that still provides wins without impacting performance. Medium term I'd like us to make more use of the different optimization levels we offer. Then |
michaelwoerister
commented
Nov 25, 2019
@bors try @rust-timer queue |
rust-timer
commented
Nov 25, 2019
Awaiting bors try build completion |
bors
commented
Nov 25, 2019
…it, r=<try> Test setting a lower import limit for ThinLTO. The Firefox build system [sets a lower ThinLTO import limit](https://searchfox.org/mozilla-central/search?q=-import-instr-limit&path=) since recently but because they discovered that that can significantly lower build times without really affecting runtime performance too much. Let's see how this would affect our benchmarks. r? @ghost
bors
commented
Nov 25, 2019
☀️ Try build successful - checks-azure |
rust-timer
commented
Nov 25, 2019
Queued 3683e14 with parent 4eee955, future comparison URL. |
rust-timer
commented
Nov 25, 2019
Finished benchmarking try commit 3683e14, comparison URL. |
michaelwoerister
commented
Nov 26, 2019
The results are expected: Compile improvements go down as runtime performance goes up. Let's see if we can find a setting the still gives improvements without the losses. @bors try @rust-timer queue |
rust-timer
commented
Nov 26, 2019
Awaiting bors try build completion |
bors
commented
Nov 26, 2019
⌛ Trying commit 18dcb29 with merge 8d916b6441f6dc09860687842f23feced42d2404... |
bors
commented
Nov 26, 2019
☀️ Try build successful - checks-azure |
michaelwoerister
commented
Nov 26, 2019
@rust-timer build 8d916b6441f6dc09860687842f23feced42d2404 |
rust-timer
commented
Nov 26, 2019
Queued 8d916b6441f6dc09860687842f23feced42d2404 with parent 0f6f66f, future comparison URL. |
Mark-Simulacrum
commented
Nov 26, 2019
@bors retry try @rust-timer queue (master was broken for a time) |
rust-timer
commented
Nov 26, 2019
Awaiting bors try build completion |
bors
commented
Nov 26, 2019
…it, r=<try> Test setting a lower import limit for ThinLTO. The Firefox build system [sets a lower ThinLTO import limit](https://searchfox.org/mozilla-central/search?q=-import-instr-limit&path=) since recently but because they discovered that that can significantly lower build times without really affecting runtime performance too much. Let's see how this would affect our benchmarks. r? @ghost
bors
commented
Nov 26, 2019
☀️ Try build successful - checks-azure |
rust-timer
commented
Nov 26, 2019
Queued a2cd298 with parent 797fd92, future comparison URL. |
rust-timer
commented
Nov 27, 2019
Finished benchmarking try commit a2cd298, comparison URL. |
michaelwoerister
commented
Nov 29, 2019
It looks like there are no substantial compile time wins to be had without also introducing runtime regressions, so we can't lower the limit by default, at least not for cc @nnethercote in case you are interested. |
michaelwoerister
commented
Dec 3, 2019
I've been doing some performance measurements for bootstrapping the compiler and the numbers look pretty good. The tests were done on a 4C/8T Core i7 machine and only for the when compiling the compiler with
So that looks like a nice speedup when mostly compiling the compiler and no slowdown when running lots of tests with that slightly less optimized compiler. |
michaelwoerister
commented
Dec 3, 2019
@rust-lang/infra: The above might also be interesting for non-dist CI builds. |
michaelwoerister
commented
Dec 24, 2019
This PR was only ever meant to help gather numbers. Follow up in #67450. |
…k-Simulacrum Allow for setting a ThinLTO import limit during bootstrap The benchmarks in #66625 have shown that a lower ThinLTO import limit can be a net win for bootstrap times. This PR: - exposes the setting to `config.toml`, - defaults to a lower limit if `incremental = true` in `config.toml`, and - sets a lower limit for `x86_64-gnu-llvm-7` CI image in order to make the jobs complete more quickly (which remains to be tested). This setting will affect how the compiler and it's tools are compiled. It will not affect the settings the compiler uses when compiling user code. r? @pietroalbini cc @rust-lang/infra
…imit, r=Mark-Simulacrum Allow for setting a ThinLTO import limit during bootstrap The benchmarks in rust-lang#66625 have shown that a lower ThinLTO import limit can be a net win for bootstrap times. This PR: - exposes the setting to `config.toml`, - defaults to a lower limit if `incremental = true` in `config.toml`, and - sets a lower limit for `x86_64-gnu-llvm-7` CI image in order to make the jobs complete more quickly (which remains to be tested). This setting will affect how the compiler and it's tools are compiled. It will not affect the settings the compiler uses when compiling user code. r? @pietroalbini cc @rust-lang/infra
The Firefox build system sets a lower ThinLTO import limit since recently but because they discovered that that can significantly lower build times without really affecting runtime performance too much. Let's see how this would affect our benchmarks.
r? @ghost