bjorn3
05677b6bd6
Rustup to rustc 1.56.0-nightly (25b764849 2021-08-04)
2021-08-05 15:32:02 +02:00
bjorn3
20491379c2
Sync from rust 2ddb65c32253872c0e7a02e43ec520877900370e
2021-08-05 14:39:37 +02:00
Charles Lew
6f682236c9
Implement pointer casting.
2021-08-03 01:09:37 +08:00
bjorn3
c6564f814e
Fix float min and max operations in presence of NaN
...
Cranelift's fmin and fmax instructions propagate NaN, while Rust's min
and max don't.
Fixes #1049
2021-07-29 15:21:14 +02:00
bjorn3
e0b9f3b3cc
Support storing return values in register places for all pass modes
2021-07-28 18:54:21 +02:00
bjorn3
b7881bb08d
Remove CPlace::no_place
...
It is never the right function
2021-07-28 18:31:27 +02:00
bjorn3
8704a66922
Allow returning PassMode::Cast directly to an ssa var
2021-07-28 18:27:06 +02:00
bjorn3
bab224d254
Remove outdated FIXME
2021-07-28 18:26:03 +02:00
bjorn3
2e62516496
Remove workarounds for things unimplemented in Cranelift
...
Many are now implemented, so it is much nicer to directly use the
respective Cranelift instructions
2021-07-28 17:30:39 +02:00
bjorn3
8a6ff90a3a
Use __muloti4 instead of __rust_i128_mulo
...
Fixes #1126
2021-07-28 14:54:31 +02:00
bjorn3
641e13e021
Replace pointer_ty() with fx.pointer_type where possible
2021-07-26 19:21:45 +02:00
bjorn3
e387ec9cbf
Fix ABI for Indirect arguments
...
In case of PassMode::Indirect, the ownership of the backing storage is
transfered to the callee. This means that the caller must copy the
argument if it wants to use it again later.
Fixes #691
2021-07-26 18:57:48 +02:00
bjorn3
405642b853
Handle the extra argument for #[track_caller] earlier
2021-07-26 15:01:50 +02:00
bjorn3
3361e349fa
Don't return anything from codegen_with_call_return_arg
2021-07-26 14:55:13 +02:00
bjorn3
83da1e0d5a
Simplify logic around first_arg
2021-07-26 14:49:17 +02:00
bjorn3
050b417a74
Introduce the CallTarget enum
2021-07-26 14:40:27 +02:00
bjorn3
424a8c3a56
Implement "default_alloc_error_handler" feature
...
Fixes #1182
2021-07-26 14:11:19 +02:00
bjorn3
581e38b97c
Add fixme
2021-07-25 19:12:31 +02:00
bjorn3
6d2221d1bb
Fix simd_round implementation
2021-07-25 18:44:42 +02:00
bjorn3
90e4493b98
Implement more simd intrinsics
2021-07-24 15:25:32 +02:00
bjorn3
344cbac150
Fix simd_reduce_* intrinsics
2021-07-24 15:24:06 +02:00
bjorn3
a7b06e81fc
Fix two type mismatch bugs
2021-07-23 18:29:47 +02:00
bjorn3
c42be7975f
Support repr(simd) on ADTs containing a single array field
...
This is the cg_clif half of rust PR 78863
2021-07-23 18:28:33 +02:00
bjorn3
356360836e
Avoid call to pointer_ty
2021-07-19 15:34:33 +02:00
bjorn3
0ebb4839f6
Rustup to rustc 1.55.0-nightly (59216858a 2021-07-18)
2021-07-19 15:32:22 +02:00
bjorn3
c151bb4ac5
Sync from rust 8df945c4717ffaf923b57bf30c473df6fc98bc85
2021-07-19 15:23:20 +02:00
Yuki Okushi
d7c3c45d68
Rollup merge of #87092 - ricobbe:fix-raw-dylib-multiple-definitions, r=petrochenkov
...
Remove nondeterminism in multiple-definitions test
Compare all fields in `DllImport` when sorting to avoid nondeterminism in the error for multiple inconsistent definitions of an extern function. Restore the multiple-definitions test.
Resolves #87084 .
2021-07-18 14:21:56 +09:00
bjorn3
80b9e36709
Put all cg_clif specific options behind -Zunstable-features
2021-07-17 16:32:55 +02:00
bjorn3
60340d44d8
Don't panic when the target is not supported by Cranelift
2021-07-17 16:07:27 +02:00
bjorn3
6dc386e192
Don't truncate the shift amount
...
It isn't actually necessary
2021-07-17 14:34:58 +02:00
bjorn3
f7cfb9d6d5
Remove shl/shr special handling for 128bit ints
...
Cranelift now natively supports 128bit int shifting
2021-07-17 14:34:58 +02:00
Richard Cobbe
b47198aaa1
Consider all fields when comparing DllImports, to remove nondetermininsm in multiple-definitions test
2021-07-16 11:10:31 -07:00
Ralf Jung
e643b8b561
fix cranelift
2021-07-14 18:17:49 +02:00
Scott McMurray
e3091d74d8
Use cranelift's Type::int
instead of doing the match myself
...
<https://docs.rs/cranelift-codegen/0.74.0/cranelift_codegen/ir/types/struct.Type.html#method.int >
2021-07-08 14:55:58 -07:00
Scott McMurray
7a0574d826
PR Feedback: Don't put SSA-only types in CValue
s
2021-07-08 14:55:58 -07:00
Scott McMurray
ea8d9aefda
Implement the raw_eq intrinsic in codegen_cranelift
2021-07-08 14:55:57 -07:00
bjorn3
7167f4c9a4
Sync from rust 0deb536ff987d7200f5ea35634781e9df9d5b666
2021-07-08 18:03:33 +02:00
bjorn3
fb92375755
Merge commit '3a31c6d8272c14388a34622193baf553636fe470' into sync_cg_clif-2021-07-07
2021-07-07 11:14:20 +02:00
bjorn3
73d2e22969
Sync from rust b09dad3eddfc46c55e45f6c1a00bab09401684b4
2021-07-06 18:59:42 +02:00
bjorn3
4cfa1fcb5b
Don't pass local_crate_name to link_binary separately
...
It is already part of CodegenResults
2021-07-06 17:49:23 +02:00
bjorn3
135edbf4ba
Move LinkerInfo into CrateInfo
2021-07-06 15:31:38 +02:00
bjorn3
fed71e3448
Pass CrateInfo instead of TyCtxt to load_imported_symbols_for_jit
2021-07-05 18:46:13 +02:00
bjorn3
a0cdbd1aa6
Rustfmt
2021-07-05 18:44:37 +02:00
bjorn3
6b3a061e94
Remove LibSource
...
The information is stored in used_crate_source too anyway
2021-07-05 10:49:07 +02:00
bjorn3
83cca1b03c
Write better clif ir header
2021-07-04 12:39:22 +02:00
Smitty
913c0bc01d
Make vtable_allocation always succeed
2021-07-03 11:14:19 -04:00
bjorn3
751ae51044
Update Cranelift
2021-07-03 14:41:33 +02:00
bjorn3
6a31385363
Misc target related improvements
2021-07-03 14:28:53 +02:00
bjorn3
cda811173e
Fix compilation for AArch64
2021-07-02 12:39:48 +02:00
bjorn3
ae98d5a78d
Don't use data object for non-primitive scalars
...
Fixes #1041
2021-07-02 12:07:08 +02:00