Commit Graph

3110 Commits

Author SHA1 Message Date
bjorn3
3d8e854604 Make saved_file field of WorkProduct non-optional
A WorkProduct without a saved file is useless
2022-06-06 12:39:32 +00:00
bjorn3
bbb850931f Factor Option out of copy_cgu_workproduct_to_incr_comp_cache_dir call
This improves clarity of the code a bit
2022-06-06 12:38:38 +00:00
bjorn3
5a1a111b52 Avoid an unnecessary clone for copy_cgu_workproduct_to_incr_comp_cache_dir calls 2022-06-06 12:32:08 +00:00
bjorn3
d5cb2bee82 Rename CodegenUnit::work_product to previous_work_product
It returns the previous work product or panics if there is none. This rename
makes the purpose of this method clearer.
2022-06-06 12:30:10 +00:00
Nikolai Vazquez
eb5f23737b Fix unsized field order 2022-06-03 12:58:36 -04:00
Nikolai Vazquez
7a8b96f89d Make std::mem::needs_drop accept ?Sized 2022-06-03 03:28:19 -04:00
bjorn3
d628444e48 Remove workaround for bytecodealliance/wasmtime#3963 2022-06-02 20:50:45 +02:00
Ralf Jung
ede985e8b8 add cast kind of from_exposed_addr (int-to-ptr casts) 2022-06-02 10:46:13 -04:00
Ralf Jung
722c724a95 rename PointerAddress → PointerExposeAddress 2022-06-01 14:08:17 -04:00
Tomasz Miąsko
e60087505e Add a pointer to address cast kind
A pointer to address cast are often special-cased.
Introduce a dedicated cast kind to make them easy distinguishable.
2022-05-31 00:00:00 +00:00
Scott McMurray
4ee48c09ee Use CallConv::Cold in cranelift for extern "rust-cold" 2022-05-30 00:19:24 -07:00
Scott McMurray
e2f90f7f74 Add support for emitting functions with coldcc in LLVM
The eventual goal is to try using this for things like the internal panicking stuff, to see whether it helps.
2022-05-30 00:19:23 -07:00
5225225
d27ec6c86d Add flag for stricter checks on uninit/zeroed 2022-05-24 14:26:52 +01:00
Jakob Degen
5011ae46a1 Refactor call terminator to always hold a destination place 2022-05-23 17:49:04 -04:00
bjorn3
e97e40de22 Update rust-analyzer configuration 2022-05-22 20:35:24 +02:00
bjorn3
814ed4fa53 Rustup to rustc 1.63.0-nightly (c06728704 2022-05-19) 2022-05-20 18:19:15 +02:00
bjorn3
6c9a06e37d Update Cranelift and object 2022-05-20 16:44:20 +02:00
bjorn3
7a10059268 Fix symbol tables in case of multiple object files with the same name
Fixes #1228
2022-05-18 18:18:11 +02:00
bjorn3
01ab51bb16 Rustup to rustc 1.63.0-nightly (c52b9c10b 2022-05-16) 2022-05-17 11:39:43 +02:00
bjorn3
715533e936 Merge branch 'sync_from_rust' 2022-05-15 12:39:16 +02:00
bjorn3
d9025cebac Merge commit '63734fcdd718cca089f84c42f3a42c0096cfd431' into sync_cg_clif-2022-05-15 2022-05-15 12:32:19 +02:00
bjorn3
63734fcdd7 Rustup to rustc 1.62.0-nightly (70b3681bf 2022-05-14) 2022-05-15 12:26:21 +02:00
bjorn3
e5ff9f1b6d Sync from rust e1ec3260d7 2022-05-15 12:25:32 +02:00
Scott McMurray
bb7b844d7c Rename unsigned_offset_from to sub_ptr 2022-05-11 17:16:25 -07:00
Scott McMurray
06817d1bb3 Add unsigned_offset_from on pointers
Like we have `add`/`sub` which are the `usize` version of `offset`, this adds the `usize` equivalent of `offset_from`.  Like how `.add(d)` replaced a whole bunch of `.offset(d as isize)`, you can see from the changes here that it's fairly common that code actually knows the order between the pointers and *wants* a `usize`, not an `isize`.

As a bonus, this can do `sub nuw`+`udiv exact`, rather than `sub`+`sdiv exact`, which can be optimized slightly better because it doesn't have to worry about negatives.  That's why the slice iterators weren't using `offset_from`, though I haven't updated that code in this PR because slices are so perf-critical that I'll do it as its own change.

This is an intrinsic, like `offset_from`, so that it can eventually be allowed in CTFE.  It also allows checking the extra safety condition -- see the test confirming that CTFE catches it if you pass the pointers in the wrong order.
2022-05-11 17:16:25 -07:00
bjorn3
343c532f4f Use cfg(any()) instead of cfg(disabled)
Rustbuild uses --check-cfg without allowing disabled as cfg name
2022-05-11 10:49:31 +00:00
bjorn3
533f9d8a11
Merge pull request #1227 from Kmeakin/master
Only enable JIT tests on x86_64
2022-05-09 18:46:38 +02:00
Karl Meakin
e5f011aba6 Only enable JIT tests on x86_64
Cranelift currently only supports JIT on x86_64 targets.
Disable JIT tests on all other targets, so that failing tests are
ignored.
2022-05-09 16:34:16 +01:00
bjorn3
25f7711fea Rustup to rustc 1.62.0-nightly (77652b9ef 2022-05-06) 2022-05-07 14:56:36 +02:00
bjorn3
acf93987bc Rustfmt 2022-05-06 18:54:13 +02:00
bjorn3
74b9232ee8 Fix assert_assignable for array types
Fixes #1226
2022-05-06 18:26:20 +02:00
bjorn3
eb881b486f Add missing comma in vscode settings 2022-05-06 18:12:01 +02:00
bjorn3
ddde38d132 Fix jit mode with cargo-clif wrapper 2022-05-01 15:54:12 +02:00
bjorn3
f52162f75c Fix #[track_caller] location for function chains 2022-04-30 16:21:43 +02:00
bjorn3
f3fc94f239 Fix #[track_caller] with MIR inlining 2022-04-30 15:01:57 +02:00
bjorn3
f449c0d175 Remove profile overrides for build scripts and their dependencies
Cargo now disables optimizations for build scripts by default anyway, so
they aren't really useful anymore.
2022-04-30 14:09:03 +02:00
bjorn3
882c3900db Update object for the nightly Cranelift check 2022-04-30 13:44:18 +02:00
bjorn3
b84daf82eb Update actions/checkout to v3 2022-04-30 13:40:16 +02:00
bjorn3
9152ded3bf
Merge pull request #1225 from bjorn3/build_system_rework
Use -Zcodegen-backend instead of a custom rustc driver
2022-04-30 13:34:40 +02:00
bjorn3
88d058fef3 Don't unnecessarily copy rustc_std_workspace_std into the sysroot 2022-04-29 19:47:43 +02:00
bjorn3
2e65a8f2ca Use -Zcodegen-backend instead of a rustc replacement in cargo-clif 2022-04-29 19:13:41 +02:00
bjorn3
617171e930 Remove cg_clif_build_sysroot 2022-04-29 19:07:32 +02:00
bjorn3
377f44d38c Inline ext_config.sh 2022-04-29 19:07:29 +02:00
bjorn3
944a48d3af Remove less of the sysroot build dir on recompilation 2022-04-27 17:31:07 +02:00
bjorn3
88b5f5722a Use jit_builder.symbol instead of #[no_mangle] for __clif_jit_fn
#[no_mangle] doesn't resolve when the codegen backend is opened with RTLD_LOCAL
2022-04-27 17:30:46 +02:00
bjorn3
5e0c62372c Minor changes to tests.sh 2022-04-27 16:54:35 +02:00
bjorn3
f429b4093f Fix running the rustc test suite 2022-04-27 14:09:41 +02:00
bjorn3
7e45747a3d Rustup to rustc 1.62.0-nightly (082e4ca49 2022-04-26) 2022-04-27 12:32:20 +02:00
bjorn3
ea3bbf0451 Merge branch 'sync_from_rust' 2022-04-22 21:12:23 +02:00
bjorn3
32202f20cd Merge commit 'f2cdd4a78d89c009342197cf5844a21f8aa813df' into sync_cg_clif-2022-04-22 2022-04-22 21:11:38 +02:00