Skip to content

Draft: add copyright notices to COPYRIGHT.md - #4

Closed
jonathanpallant wants to merge 9 commits into
masterfrom
jonathanpallant/add-notices-to-copyright-file
Closed

Draft: add copyright notices to COPYRIGHT.md#4
jonathanpallant wants to merge 9 commits into
masterfrom
jonathanpallant/add-notices-to-copyright-file

Conversation

@jonathanpallant

@jonathanpallantjonathanpallant commented Jul 11, 2024

Copy link
Copy Markdown

Like #3 but it pulls files out of the dependencies and stuffs them into COPYRIGHT.md.

Currently produces a 6.6MB file, which is 57 KiB when compressed with xz. Either way, Markdown renderers hate it.

@jonathanpallantjonathanpallant changed the title DratDraft: add copyright notices to COPYRIGHT.mdJul 11, 2024
@jonathanpallant

Copy link
Copy Markdown
Author

We prefer this. I'll add it to #3.

pvdrz pushed a commit that referenced this pull request Sep 12, 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, rust-lang#12
stmib sp, {r2, r3}
vmov d0, r0, r1
add r0, sp, #4
vldr d1, [sp, #4]
add r0, r0, rust-lang#15
bic r0, r0, rust-lang#7
vadd.f64 d0, d0, d1
add r1, r0, rust-lang#8
str r1, [sp]
vldr d1, [r0]
vadd.f64 d0, d0, d1
vmov r0, r1, d0
add sp, sp, rust-lang#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, rust-lang#12
stmib sp, {r2, r3}
vmov d16, r0, r1
vldr d17, [sp, #4]
vadd.f64 d16, d16, d17
vldr d17, [sp, rust-lang#12]
vadd.f64 d16, d16, d17
vmov r0, r1, d16
add sp, sp, rust-lang#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
pvdrz pushed a commit that referenced this pull request Oct 20, 2025
…r=jieyouxu
Rehome 30 `tests/ui/issues/` tests to other subdirectories under `tests/ui/` [#4 of Batch #2]
Part of rust-lang#133895
Methodology:
1. Refer to the previously written `tests/ui/SUMMARY.md`
2. Find an appropriate category for the test, using the original issue thread and the test contents.
3. Add the issue URL at the bottom (not at the top, as that would mess up stderr line numbers)
4. Rename the tests to make their purpose clearer
Inspired by the methodology that `@Kivooeo` was using.
r? `@jieyouxu`
@jonathanpallant
jonathanpallant deleted the jonathanpallant/add-notices-to-copyright-file branch June 26, 2026 10:24
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@jonathanpallant