Skip to content

Conversation

@jhpratt
Copy link
Member

@jhpratt jhpratt commented Jan 21, 2026

Successful merges:

Failed merges:

r? @ghost

Create a similar rollup

chenyukang and others added 14 commits January 19, 2026 11:15
LLVM 23 will mark the stack as aligned for more efficient code:

llvm/llvm-project#176041
…fJung

`c_variadic`: impl `va_copy` and `va_end` as Rust intrinsics

tracking issue: rust-lang#44930

Implement `va_copy` as (the rust equivalent of) `memcpy`, which is the behavior of all current LLVM targets. By providing our own implementation, we can guarantee its behavior. These guarantees are important for implementing c-variadics in e.g. const-eval.

Discussed in [#t-compiler/const-eval > c-variadics in const-eval](https://rust-lang.zulipchat.com/#narrow/channel/146212-t-compiler.2Fconst-eval/topic/c-variadics.20in.20const-eval/with/565509704).

I've also updated the comment for `Drop` a bit. The background here is that the C standard requires that `va_end` is used in the same function (and really, in the same scope) as the corresponding `va_start` or `va_copy`. That is because historically `va_start` would start a scope, which `va_end` would then close. e.g.

https://softwarepreservation.computerhistory.org/c_plus_plus/cfront/release_3.0.3/source/incl-master/proto-headers/stdarg.sol

```c
#define         va_start(ap, parmN)     {\
        va_buf  _va;\
        _vastart(ap = (va_list)_va, (char *)&parmN + sizeof parmN)
#define         va_end(ap)      }
#define         va_arg(ap, mode)        *((mode *)_vaarg(ap, sizeof (mode)))
```

The C standard still has to consider such implementations, but for Rust they are irrelevant. Hence we can use `Clone` for `va_copy` and `Drop` for `va_end`.
…onathanBrouwer

Port `#[patchable_function_entry]` to attr parser

This is the last codegen attr (see rust-lang#151335 and rust-lang#151336)!

Tracking issue: rust-lang#131229

currently this PR is rebased on rust-lang#151336 to make CI pass for the last commit

to see the actual changes in this PR you can look [here](https://github.com/rust-lang/rust/pull/151340/changes/3e731f7e84301a898a36e46ee5e4845ff9bda98a..55111fb468808b733e97170a841217a67666ac33)
…t-trait-supertraits, r=Kivooeo

Deduplicate diagnostics for const trait supertraits

Fixes rust-lang#150052
missing colon after the compile-flags directive

This is a trivial issue as the title suggests. All tests in the `ui` test suite have a colon after the `compile-flags` directive except for this one.
Port variance attrs to attr parser.

Tracking issue: rust-lang#131229

Ports rustc_variance and rustc_variance_of_opaques to be parsed attributes.

Info: https://rustc-dev-guide.rust-lang.org/variance.html
s390x: Support aligned stack datalayout

LLVM 23 will mark the stack as aligned for more efficient code:

llvm/llvm-project#176041

r? durin42

@rustbot label llvm-main
@rust-bors rust-bors bot added the rollup A PR which is a rollup label Jan 21, 2026
@rustbot rustbot added A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Jan 21, 2026
@jhpratt
Copy link
Member Author

jhpratt commented Jan 21, 2026

@bors r+ rollup=never p=5

@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 21, 2026

📌 Commit db9ff0d has been approved by jhpratt

It is now in the queue for this repository.

@rust-bors rust-bors bot added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jan 21, 2026
@rust-bors

This comment has been minimized.

@rust-bors rust-bors bot added merged-by-bors This PR was explicitly merged by bors. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jan 21, 2026
@rust-bors
Copy link
Contributor

rust-bors bot commented Jan 21, 2026

☀️ Test successful - CI
Approved by: jhpratt
Duration: 3h 31m 44s
Pushing 88ad3d4 to main...

@rust-bors rust-bors bot merged commit 88ad3d4 into rust-lang:main Jan 21, 2026
12 checks passed
@rustbot rustbot added this to the 1.95.0 milestone Jan 21, 2026
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#150436 c_variadic: impl va_copy and va_end as Rust intrinsics 3ba930437d266002625829f3b4183ad08121ca41 (link)
#151340 Port #[patchable_function_entry] to attr parser 18b9e1787ecd9998d1ba40c9e6f627b26621c5bb (link)
#151351 Deduplicate diagnostics for const trait supertraits c715f57b28c095d97e499e0cf7b6af05175b67b8 (link)
#151424 missing colon after the compile-flags directive 231a68bf018773a0d017c880aacfc98aee37d676 (link)
#151428 Port variance attrs to attr parser. a474025c8392ab431807ed0aedd5eb18e892b320 (link)
#151429 s390x: Support aligned stack datalayout f469fc6fdbc9d695b1eca1f0c5e930dabccf968a (link)

previous master: d276646872

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@github-actions
Copy link
Contributor

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 d276646 (parent) -> 88ad3d4 (this PR)

Test differences

Show 461 test diffs

Stage 0

  • errors::verify_codegen_ssa_aarch64_softfloat_neon_120: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_aix_strip_not_used_120: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_archive_build_failure_68: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_binary_output_to_tty_20: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_bpf_staticlib_not_supported_66: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_bpf_staticlib_not_supported_70: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_copy_path_19: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_copy_path_buf_22: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_dynamic_linking_with_lto_128: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_error_writing_def_file_111: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_extract_bundled_libs_mmap_file_59: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_extract_bundled_libs_open_file_54: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_extract_bundled_libs_read_entry_61: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_extract_bundled_libs_write_file_65: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_ignoring_output_26: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_insufficient_vs_code_product_44: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_literal_value_20: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_basic_integer_type_69: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_cannot_return_96: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_expected_usize_106: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_expected_vector_element_type_105: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_floating_point_vector_73: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_inserted_type_91: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_integer_type_90: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_length_88: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_return_length_input_type_83: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_argument_76: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_index_out_of_bounds_90: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_index_out_of_bounds_94: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_third_84: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_invalid_monomorphization_unsupported_symbol_103: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_link_exe_unexpected_error_30: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_linker_file_stem_46: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_lto_dylib_126: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_lto_dylib_130: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_multiple_external_func_decl_25: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_multiple_external_func_decl_29: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_out_of_range_integer_21: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_rlib_archive_build_failure_53: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_self_contained_linker_missing_42: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_static_library_native_artifacts_to_file_48: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_static_library_native_artifacts_to_file_52: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_stripping_debug_info_failed_44: [missing] -> pass (J0)
  • errors::verify_codegen_ssa_unable_to_run_dsymutil_47: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_unexpected_parameter_name_19: pass -> [missing] (J0)
  • errors::verify_codegen_ssa_visual_studio_not_installed_38: pass -> [missing] (J0)

Stage 1

  • errors::verify_codegen_ssa_aix_strip_not_used_120: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_binary_output_to_tty_24: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_copy_path_23: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_create_temp_dir_27: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_error_calling_dlltool_112: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_error_writing_def_file_111: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_extract_bundled_libs_convert_name_59: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_extract_bundled_libs_mmap_file_55: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_extract_bundled_libs_open_file_54: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_extract_bundled_libs_read_entry_61: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_extract_bundled_libs_write_file_65: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_failed_to_write_55: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_feature_not_valid_124: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_forbidden_ctarget_feature_127: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_forbidden_target_feature_attr_112: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_ignoring_output_22: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_ignoring_output_26: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_invalid_literal_value_20: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_floating_point_type_78: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_floating_point_vector_73: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_inserted_type_91: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_inserted_type_95: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_mask_wrong_element_type_99: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_mismatched_lengths_94: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_mismatched_lengths_98: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_input_77: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_return_81: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_shuffle_87: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_third_80: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_simd_third_84: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_third_argument_length_85: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_third_argument_length_89: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_invalid_monomorphization_unrecognized_intrinsic_75: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_link_exe_unexpected_error_30: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_linker_not_found_35: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_linker_not_found_39: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_lto_dylib_126: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_lto_dylib_130: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_missing_cpp_build_tool_component_32: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_msvc_missing_linker_37: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_msvc_missing_linker_41: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_multiple_main_functions_67: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_read_file_62: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_rlib_archive_build_failure_57: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_rlib_incompatible_dependency_formats_29: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_rlib_missing_format_30: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_rlib_only_rmeta_found_27: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_shuffle_indices_evaluation_68: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_target_feature_safe_trait_111: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_unable_to_exe_linker_40: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_unexpected_parameter_name_19: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_unknown_ctarget_feature_prefix_125: pass -> [missing] (J1)
  • errors::verify_codegen_ssa_unsupported_link_self_contained_63: [missing] -> pass (J1)
  • errors::verify_codegen_ssa_xcrun_unsuccessful_122: pass -> [missing] (J1)

(and 357 additional test diffs)

Additionally, 4 doctest diffs were found. These are ignored, as they are noisy.

Job group index

Test dashboard

Run

cargo run --manifest-path src/ci/citool/Cargo.toml -- \
    test-dashboard 88ad3d44ca811d988cb4df35f7ab8ac9d4fca451 --output-dir test-dashboard

And then open test-dashboard/index.html in your browser to see an overview of all executed tests.

Job duration changes

  1. aarch64-apple: 7973.9s -> 12268.3s (+53.9%)
  2. x86_64-gnu-debug: 7399.4s -> 6681.8s (-9.7%)
  3. i686-msvc-2: 8060.4s -> 7343.6s (-8.9%)
  4. dist-apple-various: 4394.1s -> 4028.3s (-8.3%)
  5. dist-armv7-linux: 5222.9s -> 4808.4s (-7.9%)
  6. dist-aarch64-msvc: 5934.5s -> 5485.1s (-7.6%)
  7. dist-sparcv9-solaris: 5106.8s -> 5490.7s (+7.5%)
  8. x86_64-gnu-stable: 8533.0s -> 7965.6s (-6.6%)
  9. dist-x86_64-apple: 8428.0s -> 7906.3s (-6.2%)
  10. x86_64-gnu-llvm-20: 4747.6s -> 4468.7s (-5.9%)
How to interpret the job duration changes?

Job durations can vary a lot, based on the actual runner instance
that executed the job, system noise, invalidated caches, etc. The table above is provided
mostly for t-infra members, for simpler debugging of potential CI slow-downs.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (88ad3d4): comparison URL.

Overall result: ❌✅ regressions and improvements - no action needed

@rustbot label: -perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.2% [0.1%, 0.2%] 2
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.1% [-0.1%, -0.1%] 1
All ❌✅ (primary) 0.2% [0.1%, 0.2%] 2

Max RSS (memory usage)

Results (secondary -2.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.1% [2.1%, 2.1%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.8% [-5.2%, -1.5%] 7
All ❌✅ (primary) - - 0

Cycles

Results (primary 3.2%, secondary 4.0%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
3.2% [3.2%, 3.2%] 1
Regressions ❌
(secondary)
4.0% [3.0%, 5.0%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 3.2% [3.2%, 3.2%] 1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 472.604s -> 472.964s (0.08%)
Artifact size: 383.23 MiB -> 383.27 MiB (0.01%)

@jhpratt jhpratt deleted the rollup-Rp5KtGe branch January 21, 2026 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-attributes Area: Attributes (`#[…]`, `#![…]`) A-LLVM Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues. merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants