Commit Graph

3704 Commits

Author SHA1 Message Date
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
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 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
bjorn3 5c7a87c9ba Merge pull request #1393 from onur-ozkan/rustfmt-group-imports
organize import sections with rustfmt `group_imports`
2023-09-14 21:05:03 +02:00
onur-ozkan e048674ea5 organize import sections with rustfmt group_imports
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-09-14 18:45:33 +00:00
bjorn3 02e5f387fa Add debug tracing for failed commands 2023-09-14 18:42:55 +00:00
bjorn3 d8c1393557 Avoid mir_operand_get_const_val for simd_shuffle and cmpps and cmppd 2023-09-14 18:35:34 +00:00
bjorn3 aab17ccd19 Fix rustc test suite 2023-09-14 17:58:00 +00:00
bjorn3 b67a1c4ea7 Rustup to rustc 1.74.0-nightly (8142a319e 2023-09-13) 2023-09-14 16:51:24 +00:00
bjorn3 214d474a85 Sync from rust 8142a319ed 2023-09-14 16:48:54 +00:00
Ralf Jung 90d894e122 make it more clear which functions create fresh AllocId 2023-09-14 07:27:31 +02:00
Ralf Jung a5b81faef0 cleanup op_to_const a bit; rename ConstValue::ByRef → Indirect 2023-09-14 07:27:30 +02:00
Ralf Jung d1ea6997e8 use AllocId instead of Allocation in ConstValue::ByRef 2023-09-14 07:26:24 +02:00
Matthias Krüger 1956fb84f3 Rollup merge of #115798 - RalfJung:non_1zst_field, r=wesleywiser
add helper method for finding the one non-1-ZST field
2023-09-13 18:37:42 +02:00
Matthias Krüger 9475cdb02d Rollup merge of #115736 - Zoxc:time-cleanup, r=wesleywiser
Remove `verbose_generic_activity_with_arg`

This removes `verbose_generic_activity_with_arg` and changes users to `generic_activity_with_arg`. This keeps the output of `-Z time` readable while these repeated events are still available with the self profiling mechanism.
2023-09-13 18:37:41 +02:00
Ralf Jung 8e6f68be39 make the eval() functions on our const types return the resulting value 2023-09-13 07:29:34 +02:00
Ralf Jung 72fb4b8f31 add helper method for finding the one non-1-ZST field 2023-09-12 20:52:05 +02:00