-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Test setting a lower import limit for ThinLTO. #66625
Test setting a lower import limit for ThinLTO. #66625
Conversation
@bors try @rust-timer queue |
Awaiting bors try build completion |
…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
☀️ Try build successful - checks-azure |
Queued 3972c8d with parent bd816fd, future comparison URL. |
Finished benchmarking try commit 3972c8d, comparison URL. |
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 |
@bors try @rust-timer queue |
Awaiting bors try build completion |
…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
☀️ Try build successful - checks-azure |
Queued 3683e14 with parent 4eee955, future comparison URL. |
Finished benchmarking try commit 3683e14, comparison URL. |
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 |
Awaiting bors try build completion |
⌛ Trying commit 18dcb29 with merge 8d916b6441f6dc09860687842f23feced42d2404... |
☀️ Try build successful - checks-azure |
@rust-timer build 8d916b6441f6dc09860687842f23feced42d2404 |
Queued 8d916b6441f6dc09860687842f23feced42d2404 with parent 0f6f66f, future comparison URL. |
@bors retry try @rust-timer queue (master was broken for a time) |
Awaiting bors try build completion |
…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
☀️ Try build successful - checks-azure |
Queued a2cd298 with parent 797fd92, future comparison URL. |
Finished benchmarking try commit a2cd298, comparison URL. |
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. |
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. |
@rust-lang/infra: The above might also be interesting for non-dist CI builds. |
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