2266 Commits

Author SHA1 Message Date
Gheorghe Anghelescu
f9c5bbba6b
change instructions for manually compiling y.rs (#1191)
This prevents an error on windows where the `build_sysroot` function was trying to delete `y.exe`.
2021-08-04 09:23:27 +02:00
bjorn3
84961ef06a Re-enable a fixed rustc tests 2021-07-29 19:46:31 +02: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
f4ba61eee5 Rustup to rustc 1.56.0-nightly (08095fc1f 2021-07-26) 2021-07-27 15:22:50 +02:00
bjorn3
bcf532ce1d Update dependencies 2021-07-27 12:54:58 +02:00
bjorn3
c2464ebeb0 Update Cranelift, gimli and object 2021-07-27 12:42:16 +02:00
bjorn3
a2b17e4e4f Enable a working libcore test 2021-07-26 19:34:23 +02:00
bjorn3
641e13e021 Replace pointer_ty() with fx.pointer_type where possible 2021-07-26 19:21:45 +02:00
bjorn3
472f9f9d62 Update compiler_builtins version in setup_rust_fork.sh 2021-07-26 19:19:57 +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
2abc12daad Fix y.rs build --sysroot llvm 2021-07-26 16:11:24 +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
02db151b00 Add stdsimd to .gitignore and clean_all.sh 2021-07-26 14:13:05 +02:00
bjorn3
424a8c3a56 Implement "default_alloc_error_handler" feature
Fixes #1182
2021-07-26 14:11:19 +02:00
bjorn3
1f70802465
Merge pull request #1189 from bjorn3/stdsimd_fixes
Improve stdsimd support
2021-07-26 11:09:13 +02:00
bjorn3
581e38b97c Add fixme 2021-07-25 19:12:31 +02:00
bjorn3
a0fb0facdc Run stdsimd test suite 2021-07-25 18:45:56 +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
bd2f72f398
Merge pull request #1187 from bjorn3/feature_gating
Preparations for building as part of rustc
2021-07-17 17:55:57 +02:00
bjorn3
c2a9839686 Disable jit and inline-asm when building as part of rustc
Both features are not yet ready. Inline-asm is only supported on Linux
and requires explicitly specifying registers instead of register
classes. The jit has usability issues and may require the cg_clif
executable in the future.
2021-07-17 16:40:54 +02: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
ede41d1b98 [CI] Update package list before installing packages 2021-07-17 15:03:18 +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
bjorn3
17eaf432b7 Update Cranelift 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
bjorn3
e7a4323674 Remove explicit branch="main" form Cargo.toml 2021-07-13 21:32:28 +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 CValues 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
ab4da1174c Rustup to rustc 1.55.0-nightly (d2b04f075 2021-07-07) 2021-07-08 18:03:50 +02:00