Commit Graph

3768 Commits

Author SHA1 Message Date
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
bjorn3
9b855a9f61 Add missing with_no_trimmed_paths to CommentWriter::new() 2023-09-19 12:44:31 +00:00
bjorn3
baee5ce1fc Rustup to rustc 1.74.0-nightly (65ea825f4 2023-09-18) 2023-09-19 12:34:26 +00:00
bjorn3
5f3b867831 Sync from rust 65ea825f40 2023-09-19 12:25:47 +00:00
Ralf Jung
247d38d174 move ConstValue into mir
this way we have mir::ConstValue and ty::ValTree as reasonably parallel
2023-09-19 11:11:02 +02:00
bors
46b55ae176 Auto merge of #115748 - RalfJung:post-mono, r=oli-obk
move required_consts check to general post-mono-check function

This factors some code that is common between the interpreter and the codegen backends into shared helper functions. Also as a side-effect the interpreter now uses the same `eval` functions as everyone else to get the evaluated MIR constants.

Also this is in preparation for another post-mono check that will be needed for (the current hackfix for) https://github.com/rust-lang/rust/issues/115709: ensuring that all locals are dynamically sized.

I didn't expect this to change diagnostics, but it's just cycle errors that change.

r? `@oli-obk`
2023-09-18 19:41:21 +00:00
Oli Scherer
6fd5dc8860 Prototype using const generic for simd_shuffle IDX array 2023-09-18 15:10:28 +00:00
bjorn3
fbb276e933 Update some dependencies 2023-09-16 10:12:33 +00:00
Ralf Jung
f9f8bffaec fix gcc, cranelift build 2023-09-15 10:43:44 +02:00
Ralf Jung
89f0d18bc8 clarify PassMode::Indirect as well 2023-09-15 10:43:44 +02:00
Ralf Jung
b7cc765b60 don't point at const usage site for resolution-time errors
also share the code that emits the actual error
2023-09-14 22:34:05 +02:00
Ralf Jung
3113fef3a3 move required_consts check to general post-mono-check function 2023-09-14 22:30:42 +02:00