Commit graph

298901 commits

Author SHA1 Message Date
Nicholas Nethercote
ac33068f9f Avoid over-counting of UsePath in the HIR stats. 2025-05-28 17:02:39 +10:00
Nicholas Nethercote
7fff1141f2 Filter percentages out of tests/ui/stats/input-stats.rs output.
This will make future diffs to this file much easier to read.
2025-05-28 16:58:51 +10:00
Trevor Gross
4c264c96ae Update CmpResult to use a pointer-sized return type
As seen at [1], LLVM uses `long long` on LLP64 (to get a 64-bit integer
matching pointer size) and `long` on everything else, with exceptions
for AArch64 and AVR. Our current logic always uses an `i32`. This
happens to work because LLVM uses 32-bit instructions to check the
output on x86-64, but the GCC checks the full 64-bit register so garbage
in the upper half leads to incorrect results.

Update our return type to be `isize`, with exceptions for AArch64 and
AVR.

Fixes: https://github.com/rust-lang/compiler-builtins/issues/919

[1]: 0cf3c437c1/compiler-rt/lib/builtins/fp_compare_impl.inc (L11-L27)
2025-05-28 02:58:42 -04:00
Trevor Gross
19fd098446 float: Disable total_cmp sNaN tests for f16
There is an LLVM bug with lowering of basic `f16` operations that mean a
round trip via `__extendhfsf2` and `__truncsfhf2` may happen for simple
`abs` calls or bitcasts [1]. This is problematic because the round trip
quiets signaling NaNs. For most operations this is acceptable, but it is
causing `total_cmp` tests to fail unless optimizations are enabled.

Disable `total_cmp` tests involving signaling NaNs until this issue is
resolved.

Fixes: https://github.com/rust-lang/rustc_codegen_cranelift/issues/1578
Fixes: https://github.com/rust-lang/rust/issues/141503

[1]: https://github.com/llvm/llvm-project/issues/104915
2025-05-28 06:49:04 +00:00
Ralf Jung
bb976bc43b
Merge pull request #4353 from rust-lang/rustup-2025-05-28
Automatic Rustup
2025-05-28 06:45:44 +00:00
Ralf Jung
98485a89f8
Merge pull request #4351 from RalfJung/squash-win
attempt to fix squash on Windows
2025-05-28 06:33:28 +00:00
Ralf Jung
e0ff77aea5 coretests: add abs() and copysign() tests, and remove now-unnecessary ui test 2025-05-28 08:32:08 +02:00
Ralf Jung
2a9363e593 coretests: simplify test_float macro to derive more things from the type name 2025-05-28 08:30:14 +02:00
bors
cb678b94c3 Auto merge of #141375 - kraj:kraj/aarch64-musl, r=Mark-Simulacrum
Disable libunwind cross-architecture unwinding

Building with _LIBUNWIND_IS_NATIVE_ONLY disables code for cross-architecture unwinding It also enables some additional code that handles PAC-specific unwind info it helps compiling with the -mbranch-protection=pac or -mbranch-protection=standard flags

This fixes build with clang/musl on aarch64
2025-05-28 05:49:08 +00:00
Nicholas Nethercote
cb27c8af94 Reorder ast::ItemKind::{Struct,Enum,Union} fields.
So they match the order of the parts in the source code, e.g.:
```
struct Foo<T, U> { t: T, u: U }
       <-><----> <------------>
       /   |       \
   ident generics  variant_data
```
2025-05-28 15:48:45 +10:00
Nicholas Nethercote
4c4a40f6df Reorder ast::ItemKind::{Struct,Enum,Union} fields.
So they match the order of the parts in the source code, e.g.:
```
struct Foo<T, U> { t: T, u: U }
       <-><----> <------------>
       /   |       \
   ident generics  variant_data
```
2025-05-28 15:48:45 +10:00
Lukas Wirth
7840bc0ea1
Merge pull request #19879 from Veykril/push-mqykxnqtktuw
fix: Fix IDE layer not resolving some macro calls
2025-05-28 05:20:02 +00:00
Shoyu Vanilla
636495cdec feat: Render padding information when hovering on structs 2025-05-28 14:18:50 +09:00
Lukas Wirth
7ec351ec7c Back out "Fix IDE resolution of item macros"
This backs out commit 3e0ab7219a5464999652beca22698cd46e1e48e8.
2025-05-28 07:09:21 +02:00
Lukas Wirth
711546a329 Drop unnecessay code 2025-05-28 07:05:55 +02:00
The Miri Cronjob Bot
15f0fb03bb Merge from rustc 2025-05-28 05:00:57 +00:00
Lukas Wirth
cfe488c7a0 fix: Fix IDE layer not resolving some macro calls 2025-05-28 06:58:40 +02:00
The Miri Cronjob Bot
9d9206c398 Preparing for merge from rustc 2025-05-28 04:53:47 +00:00
Lukas Wirth
f67ee9c7de
Merge pull request #19877 from tgross35/remove-concat-idents
chore: Remove support for `concat_idents!`
2025-05-28 04:17:42 +00:00
Trevor Gross
9f94b13d7a chore: Remove support for concat_idents!
`concat_idents!` was deprecated in [1] and will be removed in the near
future. rust-analyzer's support is independent of rustc's, so drop RA
support now to make syncing easier.

[1]: https://github.com/rust-lang/rust/pull/137653
2025-05-28 03:59:32 +00:00
yukang
adcd0bf5c3 Fix ICE in tokenstream with contracts from parser recovery 2025-05-28 09:35:10 +08:00
bors
04a67d5a05 Auto merge of #141668 - tgross35:rollup-03gg6lf, r=tgross35
Rollup of 8 pull requests

Successful merges:

 - rust-lang/rust#140367 (add `asm_cfg`: `#[cfg(...)]` within `asm!`)
 - rust-lang/rust#140894 (Make check-cfg diagnostics work in `#[doc(cfg(..))]`)
 - rust-lang/rust#141252 (gvn: bail out unavoidable non-ssa locals in repeat)
 - rust-lang/rust#141517 (rustdoc: use descriptive tooltip if doctest is conditionally ignored)
 - rust-lang/rust#141551 (Make two transmute-related MIR lints into HIR lint)
 - rust-lang/rust#141591 (ci: fix llvm test coverage)
 - rust-lang/rust#141647 (Bump master `stage0` compiler)
 - rust-lang/rust#141659 (Add `Result::map_or_default` and `Option::map_or_default`)

r? `@ghost`
`@rustbot` modify labels: rollup
2025-05-28 01:20:50 +00:00
Khem Raj
56b669cd7a
Disable libunwind cross-architecture unwinding
Building with _LIBUNWIND_IS_NATIVE_ONLY disables code for cross-architecture unwinding
it is disabled by default in LLVM [1], replicate the cmake behavior in bootstrap process

It also enables some additional code that handles PAC-specific unwind info
it helps compiling with the -mbranch-protection=pac or -mbranch-protection=standard flags

This fixes build with clang/musl on aarch64

[1] 85624c5de3

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2025-05-27 18:07:20 -07:00
Trevor Gross
da61494400
Rollup merge of #141659 - tkr-sh:map-or-default, r=Amanieu
Add `Result::map_or_default` and `Option::map_or_default`

Closes: https://github.com/rust-lang/rust/pull/138068

_This PR has been recreated because of the inactivity of the author (Cf. https://github.com/rust-lang/rust/pull/138068#issuecomment-2912412288)_
2025-05-27 20:28:34 -04:00
Trevor Gross
f953c6dc66
Rollup merge of #141647 - jieyouxu:bump-master-stage0, r=pietroalbini
Bump master `stage0` compiler

To include beta backport of revert rust-lang/rust#141024 which should undo linker warnings during bootstrapping of Windows MSVC targets due to rust-lang/rust#140176.

Closes rust-lang/rust#141395.

r? `@Mark-Simulacrum` (or release)
2025-05-27 20:28:33 -04:00
Trevor Gross
77ddf1ac6b
Rollup merge of #141591 - marcoieni:fix-llvm-test-coverage, r=Kobzol
ci: fix llvm test coverage

try-job: x86_64-gnu-llvm-19-1
try-job: x86_64-gnu-llvm-20-1
2025-05-27 20:28:33 -04:00
Trevor Gross
e0278ed5af
Rollup merge of #141551 - compiler-errors:hir-lints, r=BoxyUwU
Make two transmute-related MIR lints into HIR lint

Make `PTR_TO_INTEGER_TRANSMUTE_IN_CONSTS` (rust-lang/rust#130540) and `UNNECESSARY_TRANSMUTES` (rust-lang/rust#136083) into "normal" HIR-based lints.

Funny enough this came up in the review of the latter (https://github.com/rust-lang/rust/pull/136083#issuecomment-2614301413), but I guess it just was overlooked.

But anywyas, there's no reason for these to be MIR lints; in fact, it makes the suggestions for them a bit more complicated than necessary.

Note that there's probably a few more simplifications and improvements to be done here. Follow-ups can be done in a separate PR, especially if they're about the messaging and suggestions themselves, which I didn't write.
2025-05-27 20:28:32 -04:00
Trevor Gross
a8c7a1e29b
Rollup merge of #141517 - lolbinarycat:rustdoc-doctest-tooltip-ignore-141092, r=notriddle
rustdoc: use descriptive tooltip if doctest is conditionally ignored

fixes https://github.com/rust-lang/rust/issues/141092

here's what it looks like now:
![screenshot](https://github.com/user-attachments/assets/71e679fe-8828-439d-a2ce-b9187ad3aeea)
2025-05-27 20:28:32 -04:00
Trevor Gross
ee4efa1f86
Rollup merge of #141252 - dianqk:gvn-repeat-index, r=saethlin
gvn: bail out unavoidable non-ssa locals in repeat

Fixes #141251.

We cannot transform `*elem` to `array[idx1]` in the following code, as `idx1` has already been modified.

```rust
    mir! {
        let array;
        let elem;
        {
            array = [*val; 5];
            elem = &array[idx1];
            idx1 = idx2;
            RET = *elem;
            Return()
        }
    }
```

Perhaps I could transform it to `array[0]`, but I prefer the conservative approach.

r? mir-opt
2025-05-27 20:28:31 -04:00
Trevor Gross
0c2fbe53a6
Rollup merge of #140894 - Urgau:check-cfg-rustdoc, r=GuillaumeGomez
Make check-cfg diagnostics work in `#[doc(cfg(..))]`

This PR makes it so that the check-cfg `unexpected_cfgs` lint, is correctly emitted in `rustdoc`'s `#[doc(cfg(..))]`.

This is achieved by adding a custom trait to `cfg_matches` (the method that emits the lint) which permits `rustc` and `rustdoc` to each have their way to emitting lints (via buffered lints/AST for `rustc` and via `TyCtxt`/HIR for `rustdoc`).

The reason this is required is because buffered lints operates on the AST but `rustdoc` uses the HIR and by the time `rustdoc` calls `cfg_matches` we are way passed the point where buffered lints have been drain and emitted.

Best reviewed commit by commit.

r? `@jieyouxu` (for the compiler part)
r? `@GuillaumeGomez` (for the rustdoc part)
2025-05-27 20:28:30 -04:00
Trevor Gross
743d2527a2
Rollup merge of #140367 - folkertdev:asm-cfg, r=nnethercote
add `asm_cfg`: `#[cfg(...)]` within `asm!`

tracking issue: https://github.com/rust-lang/rust/issues/140364
blocked on: https://github.com/rust-lang/rust/pull/140490

This feature was discussed in https://github.com/rust-lang/rust/issues/140279. It allows configuring templates and operands in the assembly macros, for example:

```rust
asm!( // or global_asm! or naked_asm!
    "nop",
    #[cfg(target_feature = "sse2")]
    "nop",
    // ...
    #[cfg(target_feature = "sse2")]
    a = const 123, // only used on sse2
);
```

r? `@tgross35`

cc `@traviscross` `@Amanieu`

Now builds on https://github.com/rust-lang/rust/pull/140490, which should be merged first.
2025-05-27 20:28:30 -04:00
Chayim Refael Friedman
2c5d840fb0
Merge pull request #19875 from ShoyuVanilla/issue-19844
fix: Skip pattern analysis on type mismatches
2025-05-27 23:38:38 +00:00
Madhav Madhusoodanan
3e74af11f3 fix: code cleanup and renaming 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
d8469bea64 fix: moved common code (that required no architecture-specific
modifications) outside the IntrinsicDefinition trait
2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
54e277cdd5 fix: moved f16 formatting code to common module 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
57006ad521 Fix: removed BaseIntrinsicTypeDefinition + code cleanup
1. Removed default implementation of traits that are compulsorily
implemented
2. Replaced BaseIntrinsicTypeDefinition with Deref<Target =
IntrinsicType>
2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
6de5b7bef8 feat: merging changes related to f16 formatting 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
2a5e678a84 moved more code generation functionality to common 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
c01c6ceb87 fix: aarch64_be issues wthin compilation 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
9b4768921f feat: made constraint common 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
86f23a6c2a chore: file renaming 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
a416e3ea11 code cleanup 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
8d0141ee19 Added dynamic dispatch for easier management of <arch>ArchitectureTest structs 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
587d8cebda moved the C compilation commands into a struct for easier handling 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
445137ad13 Removed aarch64-be specific execution command for rust test files 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
add7b2e402 renamed a64_only data member in Intrinsic to arch_tags 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
f05ffd4a0b Added a macro to simplify <Arch>IntrinsicType definitions 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
57c357591e introduced generic types and code refactor 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
a993b4427c Updated Argument::from_c to remove ArgPrep specific argument 2025-05-27 23:27:38 +00:00
Madhav Madhusoodanan
9d3c09ed53 added target field within IntrinsicType to perform target level checking cleanly 2025-05-27 23:27:38 +00:00