forked from rust-lang/rust
-
Couldn't load subscription status.
- Fork 0
Rustc dev guide sync #15
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This was renamed by rust-lang#116791.
* Fix some broken links under bootstrapping. * Fix more broken links for bootstrapping.
rust-lang#1960) * compiletest: specify which special env var and which particular CI job * compiletest: fix grammar and add link to Dockerfile
Signed-off-by: needsure <[email protected]>
The `-Z verbose` option has been renamed to `-Z verbose-internals` in commit b5d8361 [1] (PR rust-lang#119129 [2]). This commit updates the remaining `-Z verbose` to `-Z verbose-internals`. [1]: rust-lang@b5d8361 [2]: rust-lang#119129
Co-authored-by: Tshepang Mbambo <[email protected]>
Signed-off-by: onur-ozkan <[email protected]>
"Query-field" should be "Query-fied" - three instances.
* region-outlives propagation * woops * gamer
* Add a couple of linkcheck exceptions: Addresses: ``` Server returned 500 Internal Server Error for https://github.com/rust-lang/rust/pulls?q=is%3Apr+label%3AS-inactive+is%3Aclosed Server returned 401 Unauthorized for https://objects.githubusercontent.com/github-production-release-asset-2e65be/343907537/60cd5880-7b81-11eb-9502-68d5f473ebe2?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20241103%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241103T085906Z&X-Amz-Expires=300&X-Amz-Signature=e532fd7d2bd271f12988982bc8e5a47a0f966b40452b55d444bbb74292ac1fb1&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3Drustc.generic.wpaProfile&response-content-type=application%2Foctet-stream Server returned 500 Internal Server Error for https://github.com/rust-lang/rust/pulls?q=is%3Apr+label%3AS-inactive ``` * Skip only github.com/rust-lang/rust/pulls?q=
… skipping of link-checking (rust-lang#2023) * Remove properly tracked config file from .gitignore The file is part of the git history and is a configuration file. Fixes: rust-lang#2018 * Add env. variable support * Refactoring * Really skip linkcheck if requested
…-lang#2179) This level of detail in the dev guide is a maintenance burden; better to leave this sort of thing to in-tree comments.
This makes it less of a hassle to render the book locally.
Kobzol
pushed a commit
that referenced
this pull request
Sep 15, 2025
match clang's `va_arg` assembly on arm targets tracking issue: rust-lang#44930 For this example ```rust #![feature(c_variadic)] #[unsafe(no_mangle)] unsafe extern "C" fn variadic(a: f64, mut args: ...) -> f64 { let b = args.arg::<f64>(); let c = args.arg::<f64>(); a + b + c } ``` We currently generate (via llvm): ```asm variadic: sub sp, sp, #12 stmib sp, {r2, r3} vmov d0, r0, r1 add r0, sp, #4 vldr d1, [sp, #4] add r0, r0, #15 bic r0, r0, #7 vadd.f64 d0, d0, d1 add r1, r0, #8 str r1, [sp] vldr d1, [r0] vadd.f64 d0, d0, d1 vmov r0, r1, d0 add sp, sp, #12 bx lr ``` LLVM is not doing a good job. In fact, it's well-known that LLVM's implementation of `va_arg` is kind of bad, and we implement it ourselves (based on clang) for many targets already. For arm, our own `emit_ptr_va_arg` saves 3 instructions. Next, it turns out it's important for LLVM to explicitly start and end the lifetime of the `va_list`. In rust-lang#146059 I already end the lifetime, but when looking at this again, I noticed that it is important to also start it, see https://godbolt.org/z/EGqvKTTsK: failing to explicitly start the lifetime uses an extra register. So, the combination of `emit_ptr_va_arg` with starting/ending the lifetime makes rustc emit exactly the instructions that clang generates:: ```asm variadic: sub sp, sp, #12 stmib sp, {r2, r3} vmov d16, r0, r1 vldr d17, [sp, #4] vadd.f64 d16, d16, d17 vldr d17, [sp, #12] vadd.f64 d16, d16, d17 vmov r0, r1, d16 add sp, sp, #12 bx lr ``` The arguments to `emit_ptr_va_arg` are based on [the clang implementation](https://github.com/llvm/llvm-project/blob/03dc2a41f3d9a500e47b513de5c5008c06860d65/clang/lib/CodeGen/Targets/ARM.cpp#L798-L844). r? ``@workingjubilee`` (I can re-roll if your queue is too full, but you do seem like the right person here) try-job: armhf-gnu
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
push sync