Commit Graph

3862 Commits

Author SHA1 Message Date
bjorn3
3ff8e7bd7c Fix rustc test suite 2023-12-07 18:23:39 +00:00
bjorn3
1095e0165c Fix testing of portable-simd 2023-12-07 16:49:01 +00:00
bjorn3
3e81adeb12 Rustup to rustc 1.76.0-nightly (1fdfe1234 2023-12-06) 2023-12-07 14:29:06 +00:00
bjorn3
2559532a35 Sync from rust 1fdfe12347 2023-12-07 14:19:46 +00:00
Nicholas Nethercote
0657c1b932 Give Handler::fatal and Session::fatal the same return type.
Currently, `Handler::fatal` returns `FatalError`. But `Session::fatal`
returns `!`, because it calls `Handler::fatal` and then calls `raise` on
the result. This inconsistency is unfortunate.

This commit changes `Handler::fatal` to do the `raise` itself, changing
its return type to `!`. This is safe because there are only two calls to
`Handler::fatal`, one in `rustc_session` and one in
`rustc_codegen_cranelift`, and they both call `raise` on the result.

`HandlerInner::fatal` still returns `FatalError`, so I renamed it
`fatal_no_raise` to emphasise the return type difference.
2023-12-04 15:42:06 +11:00
bjorn3
db91a41537
Merge pull request #1432 from simonbuchan/windows-y-wrappers
Add Windows wrappers for ./y
2023-11-29 13:43:39 +01:00
bjorn3
f5a74dc9d0 Add missing trailing newline in y.cmd 2023-11-29 13:42:08 +01:00
Simon Buchan
62dbc19425 Add Windows wrappers for ./y 2023-11-27 21:41:13 +13:00
bors
400cd47c28 Auto merge of #118279 - bjorn3:sync_cg_clif-2023-11-25, r=bjorn3
Subtree sync for rustc_codegen_cranelift

The main highlights this time are implementing a bunch of new vendor intrinsics and fixing some existing ones. And fixing polymorphization for coroutines.

r? `@ghost`

`@rustbot` label +A-codegen +A-cranelift +T-compiler
2023-11-25 13:08:29 +00:00
bjorn3
6b82fe231d Merge branch 'sync_from_rust' 2023-11-25 10:08:42 +00:00
bjorn3
1988cf4a18 Merge commit '710c67909d034e1c663174a016ca82b95c2d6c12' into sync_cg_clif-2023-11-25 2023-11-25 10:05:52 +00:00
bjorn3
710c67909d
Merge pull request #1431 from rust-lang/even_more_simd_intrinsics
Implement another batch of vendor intrinsics
2023-11-25 10:57:11 +01:00
bjorn3
86fc533a71 Re-enable rustc test that was disabled due to a rustc bug 2023-11-25 09:40:02 +00:00
bjorn3
da3782a0b4 Rustup to rustc 1.76.0-nightly (37b2813a7 2023-11-24) 2023-11-25 09:32:50 +00:00
bjorn3
85c708132f Sync from rust 37b2813a7b 2023-11-25 09:24:52 +00:00
bjorn3
e6e2f00d21 Fix incorrect implementation of several vendor intrinsics 2023-11-25 09:14:37 +00:00
bjorn3
3b49b9efd5 Implement the int part of the gather family vendor intrinsics 2023-11-24 20:45:22 +01:00
bjorn3
d5a7ae7976 Implement the float part of the gather family vendor intrinsics 2023-11-24 20:45:22 +01:00
bjorn3
c8729e9216 Implement _mm256_zeroupper vendor intrinsic 2023-11-24 20:45:22 +01:00
bjorn3
65da671694 Implement *fmaddsub_p*, *fmsubadd_p* and *fnmadd_p* vendor intrinsics 2023-11-24 20:45:22 +01:00
bjorn3
705031d017 Implement _mm_cvttps_epi32 2023-11-24 20:45:22 +01:00
David Tolnay
abf08329bb Replace option.map(cond) == Some(true) with option.is_some_and(cond) 2023-11-24 09:14:09 -08:00
bjorn3
3ec8d7aa4a Implement _mm_cmpestri and _mm_cmpestrm using inline asm 2023-11-24 13:39:51 +00:00
bjorn3
9c958196e7 Fix polymorphization for coroutines
Fixes rust-lang/rustc_codegen_cranelift#1429
2023-11-24 10:46:22 +01:00
bjorn3
430ab4e923 Allow function pointers in CValue::const_val
Fixes rust-lang/rustc_codegen_cranelift#1430
2023-11-24 10:22:59 +01:00
bjorn3
4ae658683f Fix fn_sig_for_fn_abi and the coroutine transform for generators
There were three issues previously:
* The self argument was pinned, despite Iterator::next taking an
  unpinned mutable reference.
* A resume argument was passed, despite Iterator::next not having one.
* The return value was CoroutineState<Item, ()> rather than Option<Item>

While these things just so happened to work with the LLVM backend,
cg_clif does much stricter checks when trying to assign a value to a
place. In addition it can't handle the mismatch between the amount of
arguments specified by the FnAbi and the FnSig.
2023-11-23 20:17:19 +00:00
bjorn3
a5fcfad890 Fix _mm_sad_epu8 implementation
Fixes rust-lang/rustc_codegen_cranelift#1426
2023-11-21 17:00:43 +01:00
bjorn3
cd7218aa9f Update Cranelift to 0.102 2023-11-21 12:10:37 +01:00
bjorn3
97ca520c44 check-cfg needs -Zunstable-options 2023-11-16 21:24:33 +00:00
bjorn3
db12abf5e1 Merge branch 'sync_from_rust' 2023-11-16 21:16:53 +00:00
bjorn3
dfc669b74c Merge commit 'def04540a4e2541b995195c752c751295606a388' into sync_cg_clif-2023-11-16 2023-11-16 21:15:07 +00:00
bjorn3
def04540a4 Rustup to rustc 1.76.0-nightly (6b771f6b5 2023-11-15) 2023-11-16 21:06:08 +00:00
bjorn3
d9122c7565 Update reference to bjorn3/rustc_codegen_cranelift 2023-11-16 20:55:49 +00:00
Mark Rousskov
497c17a390 Add check-cfg to cranelift 2023-11-15 21:45:48 -05:00
bjorn3
cc59a427c9 Use git clone --filter=tree:0 to speed up rust clones in CI 2023-11-12 17:35:58 +00:00
bjorn3
dd256865f9
Merge pull request #1425 from rust-lang/crypto_intrinsics_inline_asm
Implement AES-NI and SHA256 crypto intrinsics using inline asm
2023-11-12 18:33:57 +01:00
bjorn3
ca85cc3c7b Implement SHA256 intrinsics using inline asm 2023-11-12 17:17:57 +00:00
bjorn3
813f8b4fd0 Use inline asm for _mm_clmulepi64_si128
This is a lot more compact and significantly faster
2023-11-12 17:10:46 +00:00
bjorn3
dc60334777 Implement AES-NI intrinsics using inline asm 2023-11-12 17:10:46 +00:00
bjorn3
6ef877c8c2 Support narrowing casts in mir_operand_get_const_val 2023-11-12 17:10:46 +00:00
bjorn3
2769ac03ba Inline codegen_xgetbv into llvm_x86.rs 2023-11-12 17:10:46 +00:00
bjorn3
9205667c0d Extract codegen_inline_asm_inner function and use in codegen_xgetbv 2023-11-12 17:10:46 +00:00
bjorn3
7947070789 Minor changes to codegen_inline_asm_terminator 2023-11-12 17:10:46 +00:00
bjorn3
ede3269ed8 Print /proc/cpuinfo for the CI runner where relevant 2023-11-12 16:59:15 +00:00
bjorn3
bf85e182d0
Merge pull request #1421 from Kobzol/patch-1
Add Rustup installation instructions to README
2023-11-12 15:45:43 +01:00
Jakub Beránek
d8445b1cf2
Add Rustup installation instructions to README
Now that cranelift is distributed with Rustup, I find myself constantly searching for the https://github.com/rust-lang/rust/pull/81746 PR. I think that it would be useful to also describe the Rustup installation/usage instructions here in README.
2023-11-11 22:49:27 +01:00
bjorn3
cdae1c939f Set CG_CLIF_FORCE_GNU_AS for all rustc tests 2023-11-11 13:19:49 +00:00
bjorn3
c59226c3df Merge branch 'sync_from_rust' 2023-11-10 11:33:22 +00:00
bjorn3
d49fd9f877 Merge commit 'c84d1871dc4456539b7b578830268ab3539915d0' into sync_cg_clif-2023-11-10 2023-11-10 11:30:51 +00:00
bjorn3
c84d1871dc Rustup to rustc 1.75.0-nightly (0f44eb32f 2023-11-09) 2023-11-10 11:27:03 +00:00