Commit Graph

3278 Commits

Author SHA1 Message Date
bors
982798faa7 Auto merge of #104507 - WaffleLapkin:asderefsyou, r=wesleywiser
Use `as_deref` in compiler (but only where it makes sense)

This simplifies some code :3

(there are some changes that are not exacly `as_deref`, but more like "clever `Option`/`Result` method use")
2022-11-24 00:17:35 +00:00
Maybe Waffle
bcee07e78d Add Mutability::{is_mut,is_not} 2022-11-23 20:26:31 +00:00
bjorn3
24ebf425ae Update rustc test suite failure list 2022-11-22 19:29:06 +00:00
bjorn3
d30c1ddce7 Rustup to rustc 1.67.0-nightly (b7bc90fea 2022-11-21) 2022-11-22 19:29:36 +01:00
bjorn3
d23eb65ea0 Sync from rust 66ccf36f16 2022-11-22 19:21:05 +01:00
bjorn3
a449d0d143 Rustfmt 2022-11-21 17:00:28 +00:00
bjorn3
cf923724cc Fix discriminant handling 2022-11-21 16:29:09 +00:00
Matthias Krüger
d3817e2339 Rollup merge of #104605 - RalfJung:clf_consts, r=bjorn3
deduplicate constant evaluation in cranelift backend

The cranelift backend had two matches on `ConstantKind`, which can be avoided, and used this `eval_for_mir` that nothing else uses... this makes things more consistent with the (better-tested) LLVM backend.

I noticed this because cranelift was the only user of `eval_for_mir`. However `try_eval_for_mir` still has one other user in `eval`... the odd thing is that the interpreter has its own `eval_mir_constant` which seems to duplicate the same functionality and does not use `try_eval_for_mir`. No idea what is happening here.

r? ``@bjorn3``
Cc ``@lcnr``
2022-11-21 14:11:12 +01:00
bjorn3
9723c79af7 Fix running rustc tests 2022-11-20 19:32:44 +00:00
bjorn3
be1006be50 Rustup to rustc 1.67.0-nightly (c5d82ed7a 2022-11-19) 2022-11-20 16:26:37 +01:00
bjorn3
d6b54a5433 Sync from rust 5e6de2369c 2022-11-19 15:23:58 +01:00
Ralf Jung
a3c89a7ade deduplicate constant evaluation in cranelift backend
also sync LLVM and cranelift structure a bit
2022-11-19 14:08:12 +01:00
Dylan DPC
5fd3e4dabb Rollup merge of #104001 - Ayush1325:custom-entry, r=bjorn3
Improve generating Custom entry function

This commit is aimed at making compiler-generated entry functions (Basically just C `main` right now) more generic so other targets can do similar things for custom entry. This was initially implemented as part of https://github.com/rust-lang/rust/pull/100316.

Currently, this moves the entry function name and Call convention to the target spec.

Signed-off-by: Ayush Singh <ayushsingh1325@gmail.com>
2022-11-19 11:54:43 +05:30
Ayush Singh
6ee9712cd4 Use custom entry name in cranelift
This is a continuation of 9f0a8620bd for
cranelift.

Signed-off-by: Ayush Singh <ayushsingh1325@gmail.com>
2022-11-17 15:28:47 +05:30
Maybe Waffle
268219da02 Use as_deref in compiler (but only where it makes sense) 2022-11-16 21:58:58 +00:00
Ralf Jung
2d0c41a9a3 cleanup and dedupe CTFE and Miri error reporting 2022-11-16 10:13:29 +01:00
bors
03e3cc5b77 Auto merge of #104054 - RalfJung:byte-provenance, r=oli-obk
interpret: support for per-byte provenance

Also factors the provenance map into its own module.

The third commit does the same for the init mask. I can move it in a separate PR if you prefer.

Fixes https://github.com/rust-lang/miri/issues/2181

r? `@oli-obk`
2022-11-15 17:37:15 +00:00
Ralf Jung
f5caaea98a add is_sized method on Abi and Layout, and use it 2022-11-13 12:23:53 +01:00
bjorn3
d1e499aa2d Rustup to rustc 1.67.0-nightly (e75aab045 2022-11-09) 2022-11-10 12:30:30 +01:00
Joshua Nelson
ade426fa83 Fix rustdoc --version when used with download-rustc
Previously, rustdoc would unconditionally report the version that *rustc* was compiled with.
That showed things like `nightly-2022-10-30`, which wasn't right, since this was a `dev` build compiled from source.

Fix it by changing `rustc_driver::version` to a macro expanded at invocation time.
2022-11-09 02:54:51 -06:00
Ralf Jung
b5523e3e7a fix cranelift and gcc 2022-11-06 14:17:10 +01:00
Mateusz Mikuła
0b37af8c61
Update target-lexicon to fix new targets parsing (#1293) 2022-11-05 13:24:46 +01:00
bjorn3
7941cba900 Remove some commented out code 2022-11-03 13:48:16 +00:00
bjorn3
449f95b7a5 Update rustc test suite failure list 2022-11-03 11:55:06 +00:00
bjorn3
051b6dd25f Rustup to rustc 1.67.0-nightly (edf018221 2022-11-02) 2022-11-03 12:28:48 +01:00
bjorn3
736fac8ab9 Sync from rust 432b1a4277 2022-11-03 12:09:35 +01:00
Amanieu d'Antras
b166ad0b1e Rewrite implementation of #[alloc_error_handler]
The new implementation doesn't use weak lang items and instead changes
`#[alloc_error_handler]` to an attribute macro just like
`#[global_allocator]`.

The attribute will generate the `__rg_oom` function which is called by
the compiler-generated `__rust_alloc_error_handler`. If no `__rg_oom`
function is defined in any crate then the compiler shim will call
`__rdl_oom` in the alloc crate which will simply panic.

This also fixes link errors with `-C link-dead-code` with
`default_alloc_error_handler`: `__rg_oom` was previously defined in the
alloc crate and would attempt to reference the `oom` lang item, even if
it didn't exist. This worked as long as `__rg_oom` was excluded from
linking since it was not called.

This is a prerequisite for the stabilization of
`default_alloc_error_handler` (#102318).
2022-10-31 16:32:57 +00:00
bjorn3
777d4732dc Fix transmuting from vector type to ScalarPair type
Fixes #1292
2022-10-29 13:47:10 +00:00
bjorn3
c57aacf3dd Update GHA actions for Node.js 12 deprecation 2022-10-28 14:20:27 +00:00
bjorn3
e0ba71e39a Ignore rustfmt for y.rs 2022-10-28 13:21:27 +00:00
bjorn3
f17dbfc933 Add rustdoc-clif wrapper 2022-10-28 12:51:15 +00:00
bjorn3
ddc66ffecc Make rust-analyzer run flycheck on the build system 2022-10-28 12:48:51 +00:00
bjorn3
bd8be325ab Better rust-analyzer.linkedProjects value 2022-10-28 09:54:17 +00:00
bjorn3
a24213d81b Use 2021 edition for y.rs 2022-10-28 09:54:05 +00:00
bjorn3
5513583f3f Stop using a deprecated function 2022-10-27 14:49:24 +00:00
bjorn3
d3fe9a8baa Update to Cranelift 0.89.1
This removes the rayon dependency that requires the previous update to
Cranelift 0.89.0 to be reverted.
2022-10-27 14:48:52 +00:00
Maybe Waffle
33a92bc8b0 Update tooling 2022-10-27 18:41:26 +04:00
bjorn3
43d3e9261f Check build system formatting on CI 2022-10-26 13:35:18 +00:00
bors
5e1872598c Auto merge of #103392 - RalfJung:miri, r=oli-obk
update Miri

I had to use a hacked version of josh to create this, so let's be careful with merging this and maybe wait a bit to see if the josh issue becomes more clear. But the history looks good to me, we are not adding duplicates of rustc commits that were previously mirrored to Miri.

Also I want to add some cross-testing of Miri in x.py.
2022-10-25 12:33:39 +00:00
Daniel Paoliello
e3311e4717 Support raw-dylib functions being used inside inlined functions 2022-10-24 16:17:38 -07:00
bjorn3
b345c1e25a Sync from rust 1481fd964b 2022-10-24 15:46:38 +02:00
bjorn3
63d1bf9920 Rustfmt cg_clif's build system 2022-10-23 16:43:48 +02:00
bjorn3
4029785c67 Merge branch 'sync_from_rust' 2022-10-23 16:24:46 +02:00
bjorn3
9950bd1dc5 Merge commit '266e96785ab71834b917bf474f130a6d8fdecd4b' into sync_cg_clif-2022-10-23 2022-10-23 16:22:55 +02:00
bjorn3
266e96785a Revert "Update to Cranelift 0.89.0"
It added a lot of extra dependencies. I opened bytecodealliance/wasmtime#5101
to remove those dependencies again.

This reverts commit da770abea3.
2022-10-23 16:16:58 +02:00
bjorn3
b930e2d722 Revert "Stop using a depracated function"
This reverts commit b1791eef6a.
2022-10-23 16:16:58 +02:00
bjorn3
342bac9807 Fix drop for dyn* 2022-10-23 15:09:28 +02:00
bjorn3
2470ad30e6 Allow dyn* upcasting 2022-10-23 15:09:11 +02:00
bjorn3
7a9abf5ab2 Update rustc test suite failure list 2022-10-23 14:14:35 +02:00
bjorn3
63e3df3d32 Rustup to rustc 1.66.0-nightly (6e95b6da8 2022-10-22) 2022-10-23 13:50:51 +02:00