Commit Graph

2185 Commits

Author SHA1 Message Date
bjorn3
3ec2b444b1 Sync from rust e98897e5dc 2021-06-29 20:38:04 +02:00
bors
b186f8605a Auto merge of #86475 - crlf0710:miri_vtable_refactor, r=bjorn3
Change vtable memory representation to use tcx allocated allocations.

This fixes https://github.com/rust-lang/rust/issues/86324. However i suspect there's more to change before it can land.

r? `@bjorn3`
cc `@rust-lang/miri`
2021-06-29 15:52:21 +00:00
Charles Lew
4d289dba2e Update other codegens to use tcx managed vtable allocations. 2021-06-28 19:39:48 +08:00
bors
e0af5f783c Auto merge of #85909 - cjgillot:alloc-kind-query, r=Aaron1011
Make allocator_kind a query.

Part of #85153

r? `@Aaron1011`
2021-06-28 01:20:01 +00:00
bjorn3
0d1cedecbb
Merge pull request #1166 from eggyal/lazy-jit-multithreaded
Multithreading support for lazy-jit
2021-06-25 18:33:00 +02:00
bjorn3
57c6eb7b2b Test multithreading support in lazy-jit 2021-06-25 17:49:43 +02:00
bors
e475efb1ad Auto merge of #85640 - bjorn3:custom_ice_hook, r=jackh726
Allow changing the bug report url for the ice hook

cc https://github.com/bjorn3/rustc_codegen_cranelift/issues/1174
2021-06-25 04:06:32 +00:00
bjorn3
089d986c5c Remove unused variable 2021-06-20 18:26:17 +02:00
bjorn3
b33a3ec697
Merge pull request #1180 from bjorn3/rust_build_system
Rewrite part of the build system in rust
2021-06-20 14:55:36 +02:00
bjorn3
03c9ecfb30 Remove unnecessary LD_LIBRARY_PATH parts 2021-06-20 14:40:49 +02:00
bjorn3
62e49c5b61 Fix compiling cargo.rs on windows 2021-06-20 13:33:29 +02:00
bjorn3
80e9188fb1 Rewrite cargo.sh in rust 2021-06-20 12:56:47 +02:00
Camille GILLOT
b497c7d954 Make allocator_kind a query. 2021-06-20 11:52:51 +02:00
bjorn3
9fd8fa2123 Move some things from config.sh to ext_config.sh 2021-06-19 14:51:48 +02:00
bjorn3
d571910f4d Give an error when attempting to build for MSVC 2021-06-19 14:07:56 +02:00
bjorn3
bc67726882 Update rust-analyzer import assist config 2021-06-19 13:59:25 +02:00
bjorn3
b0d7b526d9 [CI] Test compilation on Windows 2021-06-19 13:59:13 +02:00
bjorn3
e5563b5077 Improve windows support 2021-06-19 13:58:32 +02:00
bjorn3
0d6b3dab65 Allow preserving the old sysroot 2021-06-19 13:58:32 +02:00
bjorn3
ad971bbed7 Rewrite build_sysroot.sh in rust 2021-06-19 13:58:32 +02:00
bjorn3
d71b12535e Merge the crate_patches dir into the patches dir 2021-06-19 13:58:32 +02:00
bjorn3
066d5f952c Rewrite prepare_sysroot_src.sh in rust 2021-06-19 13:58:32 +02:00
bjorn3
fe6a2892a6 Rewrite prepare.sh in rust 2021-06-19 13:54:25 +02:00
bjorn3
2db4e50618 Rewrite build.sh in rust
This makes it easier to compile cg_clif on systems that don't support
bash shell scripts like Windows
2021-06-19 13:54:25 +02:00
bjorn3
0ddb937624 Update rust patch for compiler_builtins update 2021-06-17 18:42:09 +02:00
bjorn3
ab7f1c8a0e Fix miscompilation in vtable access
Fixes #1179
2021-06-17 18:41:43 +02:00
bjorn3
a12e23bc7e Rustup to rustc 1.55.0-nightly (a85f584ae 2021-06-16) 2021-06-17 15:36:32 +02:00
bjorn3
b0d1f50301 Sync from rust b17d9c1332 2021-06-17 15:22:37 +02:00
Alan Egerton
5c78324215
Remove lack of mulithreading support from usage.md 2021-06-17 09:51:04 +01:00
Alan Egerton
4a7068dbfc
Ensure Instances are only jitted once 2021-06-17 09:42:38 +01:00
Alan Egerton
2945b96e58
Multithreading support for lazy-jit 2021-06-17 09:42:37 +01:00
bors
9be7ca00f1 Auto merge of #86291 - crlf0710:trait_vtbl_refactor, r=bjorn3
Refactor vtable codegen

This refactor the codegen of vtables of miri interpreter, llvm, cranelift codegen backends.

This is preparation for the implementation of trait upcasting feature. cc #65991

Note that aside from code reorganization, there's an internal behavior change here that now InstanceDef::Virtual's index now include the three metadata slots, and now the first method is with index 3.

cc  `@RalfJung` `@bjorn3`
2021-06-16 07:20:27 +00:00
Alexander
432285fbc6
Implement llvm.x86.addcarry.64 and llvm.x86.subborrow.64 (#1178) 2021-06-15 13:41:46 +02:00
LeSeulArtichaut
8923e42a05 Use the now available implementation of IntoIterator for arrays 2021-06-14 23:40:09 +02:00
Charles Lew
d3e123fc4f Refactor to make interpreter and codegen backend neutral to vtable internal representation. 2021-06-15 01:59:00 +08:00
bjorn3
75eff64977 Enable cross-compilation support in Cranelift 2021-06-10 12:18:10 +02:00
bjorn3
4492f32d15 Update Cranelift and object 2021-06-10 12:17:42 +02:00
bjorn3
ae1bcb209a Use -Cprefer-dynamic for all crates in jit mode 2021-06-10 11:18:59 +02:00
bjorn3
84dd22969f Include rustc and cranelift version in debuginfo 2021-06-10 11:18:59 +02:00
bjorn3
b7180ae39a Add missing cargo clean when cross-compiling 2021-06-10 11:18:59 +02:00
bors
fa7545e49b Auto merge of #85910 - cjgillot:no-meta-version, r=Aaron1011
Drop metadata_encoding_version.

Part of #85153

r? `@Aaron1011`
2021-06-10 00:39:25 +00:00
bjorn3
0d68742d37 Ignore unsupported test 2021-06-08 20:12:29 +02:00
bjorn3
a6cce19659 Rustup to rustc 1.54.0-nightly (e4a603270 2021-06-07) 2021-06-08 19:36:12 +02:00
bjorn3
dee7c7b075 Sync from rust a50d72158e 2021-06-08 19:22:10 +02:00
Yuki Okushi
8224e72fbc Rollup merge of #86016 - luqmana:infer-linker-flavor, r=petrochenkov
Unify duplicate linker_and_flavor methods in rustc_codegen_{cranelift,ssa}.

The two methods were exactly the same so this removes the cranelift copy. This will help make sure both they don't get out of sync.
2021-06-07 15:21:03 +09:00
bors
ab73115be0 Auto merge of #85810 - bjorn3:further_driver_cleanup, r=varkor
Driver improvements

This PR contains a couple of cleanups for the driver and a few small improvements for the custom codegen backend interface. It also implements `--version` and `-Cpasses=list` support for custom codegen backends.
2021-06-07 02:30:24 +00:00
Luqman Aden
20beb55565 Unify duplicate linker_and_flavor methods in rustc_codegen_{cranelift,ssa}. 2021-06-05 21:59:41 -07:00
bors
df47bce145 Auto merge of #84171 - ricobbe:raw-dylib-via-llvm, r=petrochenkov
Partial support for raw-dylib linkage

First cut of functionality for issue #58713: add support for `#[link(kind = "raw-dylib")]` on `extern` blocks in lib crates compiled to .rlib files.  Does not yet support `#[link_name]` attributes on functions, or the `#[link_ordinal]` attribute, or `#[link(kind = "raw-dylib")]` on `extern` blocks in bin crates; I intend to publish subsequent PRs to fill those gaps.  It's also not yet clear whether this works for functions in `extern "stdcall"` blocks; I also intend to investigate that shortly and make any necessary changes as a follow-on PR.

This implementation calls out to an LLVM function to construct the actual `.idata` sections as temporary `.lib` files on disk and then links those into the generated .rlib.
2021-06-06 03:59:17 +00:00
bors
d7db869e7d Auto merge of #79608 - alessandrod:bpf, r=nagisa
BPF target support

This adds `bpfel-unknown-none` and `bpfeb-unknown-none`, two new no_std targets that generate little and big endian BPF. The approach taken is very similar to the cuda target, where `TargetOptions::obj_is_bitcode` is enabled and code generation is done by the linker.

I added the targets to `dist-various-2`. There are [some tests](https://github.com/alessandrod/bpf-linker/tree/main/tests/assembly) in bpf-linker and I'm planning to add more. Those are currently not ran as part of rust CI.
2021-06-06 01:02:32 +00:00
bjorn3
bc9926a29b Remove unused dylib_ext variable from build.sh 2021-06-05 18:29:28 +02:00