1534 Commits

Author SHA1 Message Date
bjorn3
56c5c09618 Run regalloc checker on CI
This would have caught the issue that required releasing Cranelift 0.85.1
2022-06-28 11:53:40 +02:00
bjorn3
439c323f9c Disable DWARF debuginfo on Windows
Windows uses PDB instead of DWARF and using DWARF debuginfo causes the linker to give an error
2022-06-23 16:06:46 +02:00
bjorn3
6d5e8f3843 Adopt for "Remove dereferencing of Box from codegen" 2022-06-23 15:01:46 +02:00
bjorn3
473e80eb28 Sync from rust 10f4ce324baf7cfb7ce2b2096662b82b79204944 2022-06-23 14:52:31 +02:00
bors
92749f04c6 Auto merge of #98098 - bjorn3:archive_refactor, r=michaelwoerister
Remove the source archive functionality of ArchiveWriter

We now build archives through strictly additive means rather than taking an existing archive and potentially substracting parts. This is simpler and makes it easier to swap out the archive writer in https://github.com/rust-lang/rust/pull/97485.
2022-06-21 16:24:56 +00:00
bjorn3
73b3ae0b8a Remove the source archive functionality of ArchiveWriter
We now build archives through strictly additive means rather than taking
an existing archive and potentially substracting parts.
2022-06-19 12:56:31 +00:00
bjorn3
abb9b60f09 Fix "Remove src_files and remove_file" 2022-06-19 12:56:31 +00:00
Maybe Waffle
6d8c45064b Move/rename lazy::Sync{OnceCell,Lazy} to sync::{Once,Lazy}Lock 2022-06-16 19:54:42 +04:00
bjorn3
fc0c753c2d Remove src_files and remove_file
They only apply to the main source archive and their role can be
fulfilled through the skip argument of add_archive too.
2022-06-14 15:11:14 +00:00
b-naber
9096b3e44f implement valtrees as the type-system representation for constant values 2022-06-14 16:07:11 +02:00
Nicholas Nethercote
ce2b3a9b4c Rename the ConstS::val field as kind.
And likewise for the `Const::val` method.

Because its type is called `ConstKind`. Also `val` is a confusing name
because `ConstKind` is an enum with seven variants, one of which is
called `Value`. Also, this gives consistency with `TyS` and `PredicateS`
which have `kind` fields.

The commit also renames a few `Const` variables from `val` to `c`, to
avoid confusion with the `ConstKind::Value` variant.
2022-06-14 13:06:44 +10:00
bjorn3
a298c6908e Mark extern rust-cold calls as cold 2022-06-09 15:30:23 +02:00
bjorn3
74f3916a77 Sync from rust be16c6166f08f9b26d854783bbd4ce8d006c8f6f 2022-06-09 15:18:41 +02:00
bors
b867d41ed4 Auto merge of #97825 - Dylan-DPC:rollup-ya51k1k, r=Dylan-DPC
Rollup of 5 pull requests

Successful merges:

 - #97058 (Various refactors to the incr comp workproduct handling)
 - #97301 (Allow unstable items to be re-exported unstably without requiring the feature be enabled)
 - #97738 (Fix ICEs from zsts within unsized types with non-zero offsets)
 - #97771 (Remove SIGIO reference on Haiku)
 - #97808 (Add some unstable target features for the wasm target codegen)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
2022-06-07 11:08:58 +00:00
bors
d8bd0a950d Auto merge of #97512 - scottmcm:add-coldcc, r=nagisa,lcnr
Add support for emitting functions with `coldcc` to LLVM

The eventual goal is to try using this for things like the internal panicking stuff, to see whether it helps.
2022-06-07 08:12:45 +00:00
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
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
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
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 e1ec3260d79497080ca86540562d410ba67d2a95 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
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
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
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
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
32202f20cd Merge commit 'f2cdd4a78d89c009342197cf5844a21f8aa813df' into sync_cg_clif-2022-04-22 2022-04-22 21:11:38 +02:00
bjorn3
f2cdd4a78d Rustup to rustc 1.62.0-nightly (879aff385 2022-04-20) 2022-04-21 20:54:50 +02:00
bjorn3
acb32e6eb5 Sync from rust 1dec35a1b0df406da5d7cae55a7fa8d186a2b028 2022-04-21 20:23:21 +02:00
bjorn3
89c67a87bc Remove option to select regalloc algorithm
The main branch of Cranelift has switched to a new register allocator.
This register allocator doesn't have any alternative regalloc algorithms
unlike the old register allocator.
2022-04-17 19:41:28 +02:00
Jakob Degen
a923e9211a Add new Deinit statement kind 2022-04-11 08:55:03 -04:00
klensy
f2d2ec3e93 check_doc_keyword: don't alloc string for emptiness check
check_doc_alias_value: get argument as Symbol to prevent needless string convertions

check_doc_attrs: don't alloc vec, iterate over slice. Vec introduced in #83149, but no perf run posted on merge

replace as_str() check with symbol check

get_single_str_from_tts: don't prealloc string

trivial string to str replace

LifetimeScopeForPath::NonElided use Vec<Symbol> instead of Vec<String>

AssertModuleSource use BTreeSet<Symbol> instead of BTreeSet<String>

CrateInfo.crate_name replace FxHashMap<CrateNum, String> with FxHashMap<CrateNum, Symbol>
2022-04-08 11:45:57 +03:00
Oli Scherer
2efede7749 Mark scalar layout unions so that backends that do not support partially initialized scalars can special case them. 2022-04-05 13:18:21 +00:00
bjorn3
bc62bd55bd Sync from rust 949b98cab8a186b98bf87e64374b8d0848c55271 2022-04-05 11:31:42 +02:00
Loïc BRANSTETT
69046fa8fd Cleanup after some refactoring in rustc_target 2022-04-03 21:29:57 +02:00