1945 Commits

Author SHA1 Message Date
bjorn3
73d3a1c14a Use dynamic dispatch for the inner Module
This improves compilation time and shrinks the linked backend from
13MB to 9.7MB on Linux.
2021-02-23 18:49:37 +01:00
bjorn3
ef96a0f3f0 Update Cranelift 2021-02-23 18:48:55 +01:00
bjorn3
c247446570 Disable macro-error rust-analyzer diagnostic 2021-02-23 09:56:16 +01:00
bjorn3
b0028fa409 Update dependencies 2021-02-22 14:56:06 +01:00
bjorn3
d5ac849a24 Update Cranelift 2021-02-22 14:46:24 +01:00
bjorn3
a5bf6d2f18 Rustup to rustc 1.52.0-nightly (83b30a639 2021-02-20) 2021-02-21 17:27:53 +01:00
bjorn3
013b3c5a7c Rustfmt 2021-02-21 17:03:21 +01:00
bjorn3
4eb6754749 Sync from rust 3e826bb11228508fbe749e594038d6727208aa94 2021-02-21 17:02:04 +01:00
bjorn3
ecba16f296 Various enum to int cast fixes 2021-02-21 16:52:42 +01:00
bjorn3
7fc34839ac Revert "Remove shift amount masking"
This reverts commit c5f98b586f9c835e8e3ebecf3db260d2f0ad402a.

It turns out to be necessary anyway
2021-02-21 16:51:40 +01:00
bjorn3
0610490c8d Assume constants can't fail to evaluate
See rust-lang/rust#81327 for the same change to cg_llvm
2021-02-21 13:58:56 +01:00
bjorn3
74f39b64c8 Avoid a temporary stackslot in codegen_checked_int_binop 2021-02-21 12:48:43 +01:00
bjorn3
b0f870edd6 Fix CI 2021-02-21 12:34:30 +01:00
bjorn3
ee36a1fbb1 Remove workaround for stack_{load,store}.i128 not being implemented 2021-02-21 12:18:43 +01:00
bjorn3
9c980276d8 Directly use Cranelift instructions for 128bit int shifts 2021-02-21 12:09:13 +01:00
bjorn3
c5f98b586f Remove shift amount masking
Unlike the old x75 backend, the new x64 backend masks the shift amount
itself, matching the specified semantics.
2021-02-21 12:03:02 +01:00
bjorn3
4f45ea73ef Re-enable some now compiling libcore tests
cc #806
2021-02-21 11:18:01 +01:00
bjorn3
93373e13f0 Don't build alloc_system as part of the sysroot 2021-02-21 10:56:25 +01:00
bjorn3
b36fd9d82b Remove unnecessary parts from alloc_system 2021-02-21 10:49:55 +01:00
bjorn3
a8f3877c36 Don't write clif ir by default when debug assertions are enabled 2021-02-21 10:42:31 +01:00
bjorn3
25f7eeec46 Don't import the metadata symbol
Helps with #1134
2021-02-21 10:40:30 +01:00
bjorn3
4cfb885da7
Merge pull request #1140 from bjorn3/no_more_oldbe
Remove support for the old x86 Cranelift backend
2021-02-21 10:13:37 +01:00
bjorn3
92c1b858ef Disable stack2reg optimization
It causes a miscompilation of lewton

Fixes #1142
2021-02-20 16:55:30 +01:00
Camille GILLOT
702676bfff Use a QueryContext for try_mark_green. 2021-02-19 17:51:56 +01:00
bjorn3
537db9a1ef Disable 128bit atomic operations on macOS 2021-02-18 18:46:22 +01:00
bjorn3
f2f5452089 Use real atomic instructions instead of a global lock 2021-02-18 18:14:21 +01:00
bjorn3
92f765fce9 Remove support for x86 oldBE 2021-02-18 18:07:25 +01:00
bjorn3
c39cb46da7 Update Cranelift 2021-02-18 18:07:25 +01:00
Camille GILLOT
fe8d11bb99 Use an ItemId inside mir::GlobalAsm. 2021-02-15 19:24:58 +01:00
bjorn3
1337f96c48
Merge pull request #1138 from bjorn3/cirrus_ci
Test FreeBSD on CI
2021-02-14 18:58:07 +01:00
bjorn3
47bc1db236 Test FreeBSD on Cirrus CI 2021-02-14 18:13:06 +01:00
bjorn3
87ecdaa848 Recognize FreeBSD as OS 2021-02-14 18:13:06 +01:00
bjorn3
9be3936e95 Use #!/usr/bin/env bash
FreeBSD doesn't have /bin/bash
2021-02-14 18:12:51 +01:00
bjorn3
658d12408b Rustfmt 2021-02-12 15:40:08 +00:00
bjorn3
94aac0af59 Pass around BackendConfig 2021-02-12 15:39:58 +00:00
bjorn3
c5dff34ae9 Revert "Update libc and libloading"
This reverts commit bfcf97bd8360931eb088d65f247fc9e1016f8199.

It causes a "can't resolve symbol" crash on macOS
2021-02-09 13:19:19 +01:00
bjorn3
bfcf97bd83 Update libc and libloading 2021-02-09 12:40:43 +01:00
bjorn3
6fe5eace3c Update Cranelift 2021-02-09 12:34:13 +01:00
bjorn3
176965f517 Rustup to rustc 1.52.0-nightly (0fc6756b4 2021-02-08) 2021-02-09 12:30:06 +01:00
bjorn3
f36c14f0a6 Sync from rust f4008fe94935d05ffb3a48fc5b7149070bb45550 2021-02-09 12:21:17 +01:00
bjorn3
decb9b2880 Rustfmt 2021-02-03 12:21:22 +01:00
bjorn3
2d3603ff29 Update dependencies 2021-02-03 11:55:17 +01:00
bjorn3
0f861e1035 Update Cranelift 2021-02-03 11:53:23 +01:00
Hugues de Valon
5bdc56c00c Add a new ABI to support cmse_nonsecure_call
This commit adds a new ABI to be selected via `extern
"C-cmse-nonsecure-call"` on function pointers in order for the compiler to
apply the corresponding cmse_nonsecure_call callsite attribute.
For Armv8-M targets supporting TrustZone-M, this will perform a
non-secure function call by saving, clearing and calling a non-secure
function pointer using the BLXNS instruction.

See the page on the unstable book for details.

Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
2021-02-02 13:04:31 +00:00
bjorn3
54523b8ea8 Fix rustc bootstrap test 2021-02-02 10:39:23 +01:00
bjorn3
e4ae9ef3b0 Rustup to rustc 1.51.0-nightly (d4e3570db 2021-02-01) 2021-02-02 10:24:29 +01:00
bjorn3
d1df92e2e3 Sync from rust d60b29d1ae8147538b8d542f7ffcc03b48e2cbda 2021-02-02 10:18:16 +01:00
Jonas Schievink
02e1fd48d1 Rollup merge of #81618 - bjorn3:sync_cg_clif-2021-02-01, r=bjorn3
Sync rustc_codegen_cranelift

The highlight of this sync are abi compatibility with cg_llvm allowing mixing of cg_clif and cg_llvm compiled crates and switching to the x64 cranelift backend based on the new backend framework.

r? ``@ghost``

``@rustbot`` label +A-codegen +A-cranelift +T-compiler
2021-02-01 14:29:47 +01:00
bjorn3
eeb75c7d96 Merge branch 'sync_from_rust' 2021-02-01 10:12:52 +01:00
bjorn3
a75f9bc3be Merge commit 'd556c56f792756dd7cfec742b9f2e07612dc10f4' into sync_cg_clif-2021-02-01 2021-02-01 10:11:46 +01:00