-
Notifications
You must be signed in to change notification settings - Fork 13.1k
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
Rollup of 10 pull requests #57094
Rollup of 10 pull requests #57094
Conversation
When building a distributed compiler on Linux where we use ThinLTO to create the LLVM shared object this commit switches the compiler to dynamically linking that LLVM artifact instead of statically linking to LLVM. The primary goal here is to reduce CI compile times, avoiding two+ ThinLTO builds of all of LLVM. By linking dynamically to LLVM we'll reuse the one ThinLTO step done by LLVM's build itself. Lots of discussion about this change can be found [here] and down. A perf run will show whether this is worth it or not! [here]: rust-lang#53245 (comment)
This reverts commit 1346619.
This commit moves jemalloc to just the rustc binary rather than the rustc_driver shared library, enusring that it's only used for binaries that opt-in to it like rustc rather than other binaries using librustc_driver like rustdoc/rls/etc. This will hopefully address rust-lang#56980
I was assuming that rust-lang#56792 would have resulted in compiletest tests being executed in CI. However, I couldn't find any mentions of the unit test names in any CI logs. This adds the compiletest test execution to the checktools.sh script.
This way, checktools.sh continues to be used only for tools that are published later on.
Instead disable creation of assumptions during inlining using an LLVM opt flag. The -Z arg-align-attributes option which previously controlled this behavior is removed.
…x-sparc64 This is in accordance with the SPARC Compliance Definition 2.4.1, Page 3P-12. It says that structs of up to 8 bytes (which applies to empty structs as well) are to be passed in one register.
box: Add documentation for `From` impls This is a part of rust-lang#51430. A brief description of the behaviour and examples are added to the documentation. I am not sure what sort of examples to put for the `From` for `Pin` as my [code](https://play.rust-lang.org/?version=nightly&mode=debug&edition=2015&gist=97c908f44e41c9faeffec5b61d72a03e) doesn't even manage to compile using the nightly build. Somehow I feel that I missed out something so do let me know if more information is needed in the documentation or any of the examples require change.
…k, r=Centril Add missing link in docs r? @steveklabnik
…oerister bootstrap: Link LLVM as a dylib with ThinLTO When building a distributed compiler on Linux where we use ThinLTO to create the LLVM shared object this commit switches the compiler to dynamically linking that LLVM artifact instead of statically linking to LLVM. The primary goal here is to reduce CI compile times, avoiding two+ ThinLTO builds of all of LLVM. By linking dynamically to LLVM we'll reuse the one ThinLTO step done by LLVM's build itself. Lots of discussion about this change can be found [here] and down. A perf run will show whether this is worth it or not! [here]: rust-lang#53245 (comment)
Add `std::os::fortanix_sgx` module This PR adds the `std::os::sgx` module to expose platform-specific APIs behind the `sgx_platform` feature gate. Depends on rust-lang#56972 to be able to meaningfully build `std::os` documentation for non-standard targets. Tracking issue: rust-lang#56975
Allow testing pointers for inboundedness while forbidding dangling pointers r? @RalfJung
…Simulacrum rustc: Move jemalloc from rustc_driver to rustc This commit moves jemalloc to just the rustc binary rather than the rustc_driver shared library, enusring that it's only used for binaries that opt-in to it like rustc rather than other binaries using librustc_driver like rustdoc/rls/etc. This will hopefully address rust-lang#56980
…, r=kennytm Actually run compiletest tests on CI I was assuming that rust-lang#56792 would have resulted in compiletest tests being executed on CI. However, I couldn't find any mentions of the unit test names in any CI logs. This adds the compiletest test execution to the checktools.sh script.
Enable emission of alignment attrs for pointer params Instead disable creation of assumptions during inlining using an LLVM opt flag. For non-inlined functions, this gives us alignment information, while not inserting any assumes that kill other optimizations. The `-Z arg-align-attributes` option which previously controlled this behavior is removed. Fixes rust-lang#54982. r? @nagisa cc @eddyb who added the current behavior, and @scottmcm, who added the `-Z arg-align-attributes` flag.
Fix recursion limits r? @michaelwoerister
librustc_codegen_llvm: Don't eliminate empty structs in C ABI on linux-sparc64 This is in accordance with the SPARC Compliance Definition 2.4.1, Page 3P-12. It says that structs of up to 8 bytes (which applies to empty structs as well) are to be passed in one register.
@bors r+ p=10 |
📌 Commit 6ce748a has been approved by |
Rollup of 10 pull requests Successful merges: - #55470 (box: Add documentation for `From` impls) - #56242 (Add missing link in docs) - #56944 (bootstrap: Link LLVM as a dylib with ThinLTO) - #56978 (Add `std::os::fortanix_sgx` module) - #56985 (Allow testing pointers for inboundedness while forbidding dangling pointers) - #56986 (rustc: Move jemalloc from rustc_driver to rustc) - #57010 (Actually run compiletest tests on CI) - #57021 (Enable emission of alignment attrs for pointer params) - #57074 (Fix recursion limits) - #57085 (librustc_codegen_llvm: Don't eliminate empty structs in C ABI on linux-sparc64) Failed merges: r? @ghost
☀️ Test successful - status-appveyor, status-travis |
Something in this rollup caused a perf regression: https://perf.rust-lang.org/compare.html?start=94bf2c15eb3d072e92855a605783a29920df9e46&end=50f3d6eccb85a24a02b7c1daf5e242768dddf3b5&stat=instructions:u |
And also a big improvement in memory usage: https://perf.rust-lang.org/compare.html?start=94bf2c15eb3d072e92855a605783a29920df9e46&end=50f3d6eccb85a24a02b7c1daf5e242768dddf3b5&stat=max-rss That makes me wonder if possibly #56986 might have disabled jemalloc in rustc as well? cc @alexcrichton |
True! I'm on holiday until 2019, so I've filed #57115 to follow up on this later. |
Successful merges:
From
impls #55470 (box: Add documentation forFrom
impls)std::os::fortanix_sgx
module #56978 (Addstd::os::fortanix_sgx
module)Failed merges:
r? @ghost