Rollup of 10 pull requests - #162853
Rollup of 10 pull requests#162853
Conversation
It makes sense to put the top-level item first, before the use tree within the item. And it makes sense to have a single function-level comment explaining this rather than inline comments at the definition and every call site.
`is_public` is not relevant here.
changes in later commits need this case out of the way
Originally introduced in the Enzyme build and coppied around since, but without effect for a few years by now.
Replace the opaque representation of `PassMode::Cast` with a structured `CastTarget` type that exposes the register layout used by the platform ABI. Add `Uniform`, `Reg`, and `RegKind` types so tools can inspect how arguments are mapped to registers. Add `CastTarget::size()` and `Uniform::reg_count()` helpers. Add a test covering cast on args, returns, mixed register kinds, multiple arguments, and register exhaustion causing stack spill.
Expose argument ABI attributes through a structured type instead of opaque debug strings. ArgAttributes provides accessors for the extension mode (zero/sign-extend) and pointee alignment, which are needed by tools doing their own code generation. This removes all uses of Opaque from the abi module.
BREAKING CHANGE: `ValueAbi` is renamed to `ValueRepr` and the `LayoutShape::abi` field is renamed to `LayoutShape::value_repr`. The old name was misleading: this type does not describe how values are passed in function calls (that is `PassMode`), it is a hint for how backends should represent values (as scalars, vectors, or aggregates). This aligns with the internal rename from `Abi` to `BackendRepr`. Also fixes several doc comments that incorrectly claimed layout fields define calling behavior.
For !needs_drop types, this should allow decoding directly into the arena-allocated slice. For needs_drop types, the arena already collects into a SmallVec<T>, so this avoids an intermediate conversion from Vec<T> to SmallVec<T>.
These impls all match the impl provided by the into-arena macro.
The existing `codec` module contains a sea of impls that is hard to navigate. Extracting the RefDecodable parts into another file should make it easier to keep track of what is where. This commit tries to move everything as-is, so that `git diff --color-moved` can verify that nothing was changed. Subsequent commits will modify the moved code.
- Added and expanded comments - Renamed and clarified the impl-decodable macro - Sorted the macro list of Decodable impls
This commit replaces the existing boilerplate impls and the existing macro with a less confusing macro. Some unused impls have been removed.
It's simpler to make the `decode` method generic over `impl TyDecoder`.
Currently a `NodeId` is stored in a pair with each nested use tree. This commit changes the pair to a named type `UseTreeAndId`. In most places this doesn't make much difference but in the AST visitor it gets rid of several weird special cases.
|
Rollup of everything. @bors r+ rollup=never p=5 |
|
Trying commonly failed jobs |
This comment has been minimized.
This comment has been minimized.
Rollup of 10 pull requests try-job: dist-various-1 try-job: test-various try-job: test-x86_64-gnu-aux try-job: test-x86_64-gnu-llvm-21-3 try-job: test-x86_64-msvc-1 try-job: test-aarch64-apple-1 try-job: test-aarch64-apple-2 try-job: test-x86_64-mingw-1 try-job: test-i686-msvc try-job: test-armhf-gnu
|
??? |
This comment has been minimized.
This comment has been minimized.
|
The job Click to see the possible cause of the failure (guessed by this bot)Important For more information how to resolve CI failures of this job, visit this link. |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing e15cecc (parent) -> 92801ed (this PR) Test differencesShow 604 test diffsStage 1
Stage 2
Additionally, 595 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard 92801ede88f6c10e34df6976a4cfde40142585f2 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (92801ed): comparison URL. Overall result: ❌ regressions - no action needed@rustbot label: -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 0.3%, secondary -1.8%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary -2.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary 0.1%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 494.504s -> 496.571s (0.42%) |
|
📌 Perf builds for each rolled up PR:
parent commit: e15ceccfc6 In the case of a perf regression, run the following command for each PR you suspect might be the cause: |
|
@rust-timer triage 22a7d45 e15a3f8 |
Running triage with 2 benchmarksTriage only executes the benchmarks on rollup members, that were changed significantly on the rollup.
#162794 22a7d45 Simplify
|
| mean | range | count | |
|---|---|---|---|
| Regressions ❌ (primary) |
0.4% | [0.4%, 0.4%] | 1 |
| Regressions ❌ (secondary) |
- | - | 0 |
| Improvements ✅ (primary) |
- | - | 0 |
| Improvements ✅ (secondary) |
- | - | 0 |
| All ❌✅ (primary) | 0.4% | [0.4%, 0.4%] | 1 |
Max RSS (memory usage)
This perf run didn't have relevant results for this metric.
Cycles
This perf run didn't have relevant results for this metric.
Binary size
This perf run didn't have relevant results for this metric.
Rollup of 10 pull requests Successful merges: - rust-lang#156216 (implement const Iterator for Range) - rust-lang#160697 (rustc: Tweak the effect of `--jobs` on frontend parallelism) - rust-lang#162748 (Enable LLVM Thin LTO for LoongArch64) - rust-lang#162769 (Yeet the `DeepRegionResolver` (earlier called `OpportunisticRegionResolver`)) - rust-lang#162794 (Simplify `ast::UseTreeKind`) - rust-lang#162800 (Cleanups related to RefDecodable) - rust-lang#162826 (wasm: fix ABI for enums with integer layout and ZST fields) - rust-lang#159359 ([rustc_public] Enhance PassMode API) - rust-lang#162196 (Offload cmake cleanups) - rust-lang#162818 (Add regression test for malformed RPITIT bound ICE with the new solver)
Successful merges:
--jobson frontend parallelism #160697 (rustc: Tweak the effect of--jobson frontend parallelism)DeepRegionResolver(earlier calledOpportunisticRegionResolver) #162769 (Yeet theDeepRegionResolver(earlier calledOpportunisticRegionResolver))ast::UseTreeKind#162794 (Simplifyast::UseTreeKind)r? @ghost
Create a similar rollup