Commit Graph

4179 Commits

Author SHA1 Message Date
Nilstrieb
1cae70145c Rename adjustment::PointerCast and variants using it to PointerCoercion
It makes it sound like the `ExprKind` and `Rvalue` are supposed to represent all pointer related
casts, when in reality their just used to share a some enum variants. Make it clear there these
are only coercion to make it clear why only some pointer related "casts" are in the enum.
2023-07-07 18:17:16 +02:00
Boxy
40de0c2765 Move TyCtxt::mk_x to Ty::new_x where applicable 2023-07-05 20:27:07 +01:00
Boxy
b5b1c0eddc Deal with fallout 2023-07-05 09:46:30 +01:00
bors
b51f778846 Auto merge of #113116 - nnethercote:codegen-opts, r=oli-obk
A mish-mash of micro-optimizations

These were aimed at speeding up LLVM codegen, but ended up affecting other places as well.

r? `@bjorn3`
2023-06-30 00:35:19 +00:00
Nicholas Nethercote
9db001dfbb Avoid unnecessary line lookup.
`lookup_debug_loc` calls `SourceMap::lookup_line`, which does a binary
search over the files, and then a binary search over the lines within
the found file. It then calls `SourceFile::line_begin_pos`, which redoes
the binary search over the lines within the found file.

This commit removes the second binary search over the lines, instead
getting the line starting pos directly using the result of the first
binary search over the lines.

(And likewise for `get_span_loc`, in the cranelift backend.)
2023-06-29 11:26:39 +10:00
bjorn3
d3e9e424a1 Update setup_rust_fork.sh for cg_clif build layout changes 2023-06-28 16:52:02 +00:00
bjorn3
ab12203187 Rustup to rustc 1.72.0-nightly (5ea666864 2023-06-27) 2023-06-28 16:45:15 +00:00
许杰友 Jieyou Xu (Joe)
2cdf8a4c3f Provide more context for rustc +nightly -Zunstable-options on stable 2023-06-27 23:23:33 +08:00
bjorn3
85b5253806
Merge pull request #1382 from cuviper/indexmap-2
Upgrade to indexmap v2
2023-06-25 14:13:43 +02:00
Josh Stone
814f46c39d Minor cleanup around IndexSet 2023-06-24 17:43:35 -07:00
Josh Stone
ff10c0f037 Upgrade to indexmap v2 2023-06-24 17:42:48 -07:00
bjorn3
e44f47adf7
Merge pull request #1380 from bjorn3/more_vendor_intrinsics
Implement a whole bunch more x86 vendor intrinsics
2023-06-23 14:17:35 +02:00
bjorn3
aee30c5ddc Implement _mm_abs_epi* 2023-06-23 10:37:57 +00:00
bjorn3
92a4093850 Implement _mm_storeu_pd 2023-06-23 10:31:52 +00:00
bjorn3
d957015234 Implement _mm_slli_epi64 2023-06-23 10:28:27 +00:00
bjorn3
cb0a9b9550 Implement _addcarryx_{u32,u64} 2023-06-23 10:23:20 +00:00
bjorn3
8cad29a529 Implement _xgetbv 2023-06-23 10:05:18 +00:00
bjorn3
aef31cb2f3 Implement _mm_srli_epi64 2023-06-23 09:35:39 +00:00
bjorn3
bbf45081b7 Implement _mm_srai_epi* and _mm256_srai_epi* 2023-06-23 09:32:52 +00:00
bjorn3
71cb045c7d Fix _mm_cmp*_ps 2023-06-23 09:27:15 +00:00
bjorn3
7cbc8bcb4b Implement nontemporal_store using a regular store 2023-06-23 09:19:11 +00:00
bjorn3
41af17a9d1 Implement more _mm_cmp*_{ps,pd} intrinsics 2023-06-23 09:18:56 +00:00
bjorn3
0311202fd4 Implement _addcarry_u32 and _subborrow_u32 2023-06-23 09:17:02 +00:00
bjorn3
6b141f39d2 Rustup to rustc 1.72.0-nightly (065a1f5df 2023-06-21) 2023-06-22 18:45:21 +00:00
bjorn3
ee1793432d Sync from rust 065a1f5df9 2023-06-22 18:40:02 +00:00
bjorn3
c8620a3cbf Nicer error when implementation limits are exceeded
Fixes #1370
2023-06-20 15:48:00 +00:00
bjorn3
e5268804a2 Update Cranelift to 0.97 2023-06-20 15:32:44 +00:00
bjorn3
aebbeceb88 Handle rust-call abi without self argument
Fixes #1236
2023-06-20 10:05:23 +00:00
Michael Goulet
7ba31b9938 Rollup merge of #112232 - fee1-dead-contrib:match-eq-const-msg, r=b-naber
Better error for non const `PartialEq` call generated by `match`

Resolves #90237
2023-06-19 17:53:33 -07:00
bjorn3
daf79b5685 Avoid the stack in a couple more cases in write_cvalue_maybe_transmute 2023-06-19 20:56:21 +00:00
bjorn3
ab836ca5e3 Fix transmuting fat pointers to integers
Fixes #1325
2023-06-19 20:55:55 +00:00
bjorn3
ece98a4b41 Simplify CPlaceInner::Addr branch of write_cvalue_maybe_transmute 2023-06-19 20:26:07 +00:00
bjorn3
d169ee3457 Recurse into function signatures in assert_assignable
Fixes #1311
2023-06-19 19:30:44 +00:00
bjorn3
43064b005d Update portable-simd 2023-06-19 17:39:38 +00:00
bjorn3
932645473c Fix warning about the cargo resolver to use 2023-06-19 17:36:32 +00:00
bjorn3
0b3060138b Use -Zinline-mir instead of -Zmir-opt-level=3
Except for mir inlining all mir opts that are beneficial for cg_clif now
run on -Zmir-opt-level=2. -Zmir-opt-level=3 enables some more expensive
optimizations.
2023-06-19 17:21:30 +00:00
bjorn3
8b23094ade Fix some outdated references to y.rs 2023-06-19 16:21:11 +00:00
bjorn3
87374d89e0 Rustup to rustc 1.72.0-nightly (2d0aa5768 2023-06-18) 2023-06-19 14:03:36 +00:00
bjorn3
361a1ea39b Sync from rust 2d0aa57684 2023-06-19 13:55:47 +00:00
Scott McMurray
0c3e15283f Remove unchecked_add/sub/mul/shl/shr from CTFE/cg_ssa/cg_clif 2023-06-19 01:47:03 -07:00
Scott McMurray
9efe5e746a Promote unchecked_add/sub/mul/shl/shr to mir::BinOp 2023-06-19 01:47:03 -07:00
Deadbeef
c96f17c51f Better error for non const PartialEq call generated by match 2023-06-18 05:24:38 +00:00
DrMeepster
f429b3e67f remove box_free and replace with drop impl 2023-06-16 13:41:06 -07:00
bjorn3
9c8c14fba2 Merge branch 'sync_from_rust' 2023-06-15 17:58:56 +00:00
bjorn3
81ea0b29ea Merge commit '8830dccd1d4c74f1f69b0d3bd982a3f1fcde5807' into sync_cg_clif-2023-06-15 2023-06-15 17:56:01 +00:00
bjorn3
8830dccd1d Rustup to rustc 1.72.0-nightly (8c74a5d27 2023-06-14) 2023-06-15 17:45:30 +00:00
bjorn3
c1fa3cf6c4 Sync from rust 8c74a5d27c 2023-06-15 17:40:32 +00:00
bjorn3
f2895f3143
Merge pull request #1357 from bjorn3/build_system_rework6
Support testing of cg_clif in rust's CI
2023-06-15 19:37:23 +02:00
bjorn3
e9bd63af3c Ignore -Clink-arg=-import-instr-limit 2023-06-15 17:14:49 +00:00
bors
2445d740f7 Auto merge of #112314 - ferrocene:pa-core-alloc-abort, r=bjorn3
Ignore `core`, `alloc` and `test` tests that require unwinding on `-C panic=abort`

Some of the tests for `core` and `alloc` require unwinding through their use of `catch_unwind`. These tests fail when testing using `-C panic=abort` (in my case through a target without unwinding support, and `-Z panic-abort-tests`), while they should be ignored as they don't indicate a failure.

This PR marks all of these tests with this attribute:

```rust
#[cfg_attr(not(panic = "unwind"), ignore = "test requires unwinding support")]
```

I'm not aware of a way to test this on rust-lang/rust's CI, as we don't test any target with `-C panic=abort`, but I tested this locally on a Ferrocene target and it does indeed make the test suite pass.
2023-06-13 19:03:27 +00:00