Commit Graph

3879 Commits

Author SHA1 Message Date
bjorn3
ed2f5baba6 Reuse determine_cgu_reuse from cg_ssa in cg_clif 2023-10-09 18:38:50 +00:00
bjorn3
269917bc77 Merge branch 'sync_from_rust' 2023-10-09 08:58:24 +00:00
bjorn3
5d85a24442 Merge commit '81dc066758ec150b43822d4a0c84aae20fe10f40' into sync_cg_clif-2023-10-09 2023-10-09 08:52:46 +00:00
bjorn3
81dc066758 Rustup to rustc 1.75.0-nightly (bf9a1c8a1 2023-10-08) 2023-10-09 08:33:47 +00:00
bjorn3
88198c70e4 Sync from rust bf9a1c8a19 2023-10-09 08:26:09 +00:00
bjorn3
cc5db2c1c8
Merge pull request #1397 from bjorn3/inline_asm_tweaks
Test inline asm support on CI
2023-10-08 13:21:53 +02:00
bjorn3
2672876b63 Run inline asm rustc tests on CI 2023-10-08 09:50:20 +00:00
bjorn3
91e5bd87e6 Skip cpuid shim when inline asm support is enabled
cg_clif should support enough simd intrinsics now to not need almost all
cpu features to be force disabled. In addition they can't be disabled
anyway when using a sysroot compiled by LLVM.
2023-10-08 09:50:20 +00:00
bjorn3
07147f34d0 Fix inline asm on macOS 2023-10-08 09:50:20 +00:00
bjorn3
81093441c1 Rustup to rustc 1.75.0-nightly (97c81e1b5 2023-10-07) 2023-10-08 09:30:32 +00:00
bjorn3
1906ec56fc Sync from rust 97c81e1b53 2023-10-08 09:22:39 +00:00
bors
fea943debf Auto merge of #116487 - tamird:avoid-unwrap-absolute, r=bjorn3
compiler: env/path handling fixes

Please see individual commits. r? `@bjorn3` cf. #116426
2023-10-08 05:24:16 +00:00
bjorn3
e759603da1 Consistently use eprintln inside the build system 2023-10-07 11:10:30 +00:00
Jubilee
c9f6ac45d9 Rollup merge of #116277 - RalfJung:post-mono, r=oli-obk
dont call mir.post_mono_checks in codegen

It seems like all tests are still passing when I remove this... let's see what CI says.
2023-10-06 16:37:46 -07:00
Tamir Duberstein
2753052adf compiler: always use var_os("RUST_BACKTRACE")
There are 3 instances of var(...) and 3 instances of var_os(...); the
latter avoids an appearance of unhandled error, so use it everywhere.
2023-10-06 08:53:23 -04:00
bjorn3
e825497b7d
Merge pull request #1396 from bjorn3/aarch64_asm
Support inline asm on AArch64
2023-10-05 21:47:15 +02:00
bjorn3
4577c1dc05 Temporarily remove riscv64 inline asm support
Riscv support is not currently being tested so it is likely broken.
Removing it may avoid confusion in the future.
2023-10-05 19:23:40 +00:00
bjorn3
b1421dea1d Support inline asm on AArch64
Also stop changing the frame pointer on x86_64. This confuses unwinders.
2023-10-05 19:06:08 +00:00
bjorn3
a47b9fd2e6 Remove stub support for 32bit inline assembly
Cranelift doesn't support any 32bit target yet and this helps with
keeping everything in sync.
2023-10-05 18:55:18 +00:00
Jubilee
ed900871cf Rollup merge of #116223 - catandcoder:master, r=cjgillot
Fix misuses of a vs an

Fixes the misuse of "a" vs "an", according to English grammatical
expectations and using https://www.a-or-an.com/
2023-10-05 00:56:29 -07:00
cui fliter
f61b14dfc2 Fix misuses of a vs an
Signed-off-by: cui fliter <imcusg@gmail.com>
2023-10-04 08:01:11 +08:00
bors
673f447353 Auto merge of #115025 - ouz-a:ouz_testing, r=lcnr
Make subtyping explicit in MIR

This adds new mir-opt that pushes new `ProjectionElem` called `ProjectionElem::Subtype(T)` to `Rvalue` of a subtyped assignment so we can unsoundness issues like https://github.com/rust-lang/rust/issues/107205

Addresses https://github.com/rust-lang/rust/issues/112651

r? `@lcnr`
2023-10-03 10:02:52 +00:00
ouz-a
27f88ee273 have better explanation for relate_types 2023-10-02 23:39:45 +03:00
ouz-a
646d8d9822 change is_subtype to relate_types 2023-10-02 23:39:45 +03:00
ouz-a
8c3406f8bc Add docs, remove code, change subtyper code 2023-10-02 23:39:44 +03:00
ouz-a
4e9e0aae33 subtyping_projections 2023-10-02 23:37:49 +03:00
bjorn3
f1ede97b14 Update portable-simd test and implement new simd_* platform intrinsics 2023-10-02 14:44:10 +00:00
bjorn3
9536ec32bf Temporarily ignore regex test which gets miscompiled when using an LLVM sysroot
cc #1395
2023-10-02 14:01:23 +00:00
bjorn3
c974bc89b8 Update regex and implement necessary AArch64 vendor intrinsics
Upstream has removed the shootout-regex-dna example.
2023-10-02 13:45:48 +00:00
bjorn3
cf36f4e0dc Update rand test 2023-10-02 13:45:48 +00:00
bjorn3
b49adfeea5 Compile cg_clif with -Zallow-features=rustc_private
Fixes #1218
2023-10-02 13:26:42 +00:00
bjorn3
654bc614dd Fix simd_shuffle_generic intrinsic 2023-10-02 13:06:07 +00:00
bjorn3
5aeae0524e Rustup to rustc 1.75.0-nightly (e0d7ed1f4 2023-10-01) 2023-10-02 12:57:45 +00:00
bjorn3
aeeed8a683 Sync from rust e0d7ed1f45 2023-10-02 12:52:42 +00:00
bors
f04620a508 Auto merge of #115898 - onur-ozkan:config-change-tracking, r=Mark-Simulacrum
bootstrap major change detection implementation

The use of `changelog-seen` and `bootstrap/CHANGELOG.md` has not been functional in any way for many years. We often do major/breaking changes but never update the changelog file or the `changelog-seen`. This is an alternative method for tracking major or breaking changes and informing developers when such changes occur.

Example output when bootstrap detects a major change:
![image](https://github.com/rust-lang/rust/assets/39852038/ee802dfa-a02b-488b-a433-f853ce079b8a)
2023-10-02 07:41:52 +00:00
onur-ozkan
2860a89cb1 implement major change tracking for the bootstrap configuration
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-10-01 16:54:52 +03:00
Ralf Jung
ffa2d3ab63 dont call mir.post_mono_checks in codegen 2023-09-30 07:38:08 +02:00
bors
81d219a27d Auto merge of #115933 - oli-obk:simd_shuffle_const, r=workingjubilee
Prototype using const generic for simd_shuffle IDX array

cc https://github.com/rust-lang/rust/issues/85229

r? `@workingjubilee` on the design

TLDR: there is now a `fn simd_shuffle_generic<T, U, const IDX: &'static [u32]>(x: T, y: T) -> U;` intrinsic that allows replacing

```rust
simd_shuffle(a, b, const { stuff })
```

with

```rust
simd_shuffle_generic::<_, _, {&stuff}>(a, b)
```

which makes the compiler implementations much simpler, if we manage to at some point eliminate `simd_shuffle`.

There are some issues with this today though (can't do math without bubbling it up in the generic arguments). With this change, we can start porting the simple cases and get better data on the others.
2023-09-30 04:05:26 +00:00
Oli Scherer
809cd20618 Skip reinterning if nothing changed 2023-09-28 16:13:38 +00:00
Oli Scherer
17d7821a2a Strip OpaqueCast during RevealAll. 2023-09-28 16:13:38 +00:00
bjorn3
cb55ce11dc Fix potential crash on large constant ZST slice 2023-09-26 16:52:08 +00:00
bjorn3
ca18301dfe Fix rustc test suite 2023-09-26 16:51:46 +00:00
bjorn3
74e9f2657a Rustup to rustc 1.74.0-nightly (0288f2e19 2023-09-25) 2023-09-26 16:35:18 +00:00
bjorn3
b03d0b8512 Sync from rust 0288f2e195 2023-09-26 15:12:11 +00:00
lcnr
159293cdbf subst -> instantiate 2023-09-26 09:37:55 +02:00
bjorn3
8071ec78ea Always explicitly set the preserve_frame_pointers value 2023-09-21 15:03:46 +00:00
bjorn3
02dec62de5 Update to Cranelift 0.100
This skips Cranelift 0.99 as it depends on an object version that is broken on
macOS.
2023-09-21 13:33:30 +00:00
Guillaume Gomez
1351de36ee Rollup merge of #115972 - RalfJung:const-consistency, r=oli-obk
rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const

Also, be more consistent with the `to/eval_bits` methods... we had some that take a type and some that take a size, and then sometimes the one that takes a type is called `bits_for_ty`.

Turns out that `ty::Const`/`mir::ConstKind` carry their type with them, so we don't need to even pass the type to those `eval_bits` functions at all.

However this is not properly consistent yet: in `ty` we have most of the methods on `ty::Const`, but in `mir` we have them on `mir::ConstKind`. And indeed those two types are the ones that correspond to each other. So `mir::ConstantKind` should actually be renamed to `mir::Const`. But what to do with `mir::Constant`? It carries around a span, that's really more like a constant operand that appears as a MIR operand... it's more suited for `syntax.rs` than `consts.rs`, but the bigger question is, which name should it get if we want to align the `mir` and `ty` types? `ConstOperand`? `ConstOp`? `Literal`? It's not a literal but it has a field called `literal` so it would at least be consistently wrong-ish...

``@oli-obk`` any ideas?
2023-09-21 13:25:39 +02:00
Ralf Jung
0e02cab8ba rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
Ralf Jung
dd48b5e393 adjust constValue::Slice to work for arbitrary slice types 2023-09-19 20:17:43 +02:00