Commit Graph

2361 Commits

Author SHA1 Message Date
bjorn3 adabc2ccda Update Cranelift and object 2021-10-21 15:20:40 +02:00
bjorn3 8ed0d0d980 Remove unnecessary Lazy
Found by m-ou-se in https://github.com/bjorn3/rustc_codegen_cranelift/pull/1166#discussion_r730468919
2021-10-17 22:44:08 +02:00
bjorn3 3aae6fb494 Disable a failing test 2021-10-17 17:05:00 +02:00
bjorn3 1e5569d62c Re-enable incremental compilation for the sysroot
rust-lang/rust#74946 for fixed
2021-10-17 15:29:57 +02:00
bjorn3 2bb3f767e5 Update Cranelift 2021-10-13 16:59:59 +02:00
bjorn3 b2fed29e1a Update Cranelift 2021-10-12 14:47:57 +02:00
bjorn3 d195107514 Rustup to rustc 1.57.0-nightly (54bb4fec6 2021-10-08) 2021-10-09 15:16:19 +02:00
bjorn3 376dd765d4 Sync from rust bb918d0a5b 2021-10-09 15:02:14 +02:00
bors 2228c49544 Auto merge of #89619 - michaelwoerister:incr-vtables, r=nagisa
Turn vtable_allocation() into a query

This PR removes the untracked vtable-const-allocation cache from the `tcx` and turns the `vtable_allocation()` method into a query.

The change is pretty straightforward and should be backportable without too much effort.

Fixes https://github.com/rust-lang/rust/issues/89598.
2021-10-08 09:04:06 +00:00
Michael Woerister 095064b996 Turn tcx.vtable_allocation() into a query. 2021-10-07 20:03:00 +02:00
Camille GILLOT 03c02be0a7 Move rustc_middle::middle::cstore to rustc_session. 2021-10-03 16:08:51 +02:00
bjorn3 dbeafcc254 Rustfmt 2021-10-02 14:51:08 +02:00
bjorn3 0887a2ed76 Rustup to rustc 1.57.0-nightly (c02371c44 2021-10-01) 2021-10-02 14:50:15 +02:00
bjorn3 d76afa705b Sync from rust a8387aef8c 2021-10-02 14:42:18 +02:00
bjorn3 eded369086 Update Cranelift
This version no longer has the old x86 backend
2021-10-01 15:37:48 +02:00
Camille Gillot 881208f268 Update compiler/rustc_codegen_cranelift/scripts/filter_profile.rs
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
2021-09-30 19:41:32 +02:00
Camille GILLOT 04f3839596 Move EncodedMetadata to rustc_metadata. 2021-09-30 19:41:32 +02:00
Camille GILLOT 745dee9d3e Move encode_metadata out of CrateStore. 2021-09-30 19:41:31 +02:00
bjorn3 bc61fb263d Update dependencies 2021-09-30 15:22:19 +02:00
bjorn3 166ff1332f Update Cranelift 2021-09-30 15:17:43 +02:00
bjorn3 adc2793e7d Fix unused import warning
TryInto is part of the 2021 edition prelude
2021-09-27 11:20:04 +02:00
bjorn3 9e48f99e8d Rustup to rustc 1.57.0-nightly (05044c2e6 2021-09-26) 2021-09-27 11:17:24 +02:00
bjorn3 89fedb1e4d Sync from rust 04006d8e3b 2021-09-27 11:11:18 +02:00
bors 500e22e340 Auto merge of #89092 - bjorn3:sync_cg_clif-2021-09-19, r=bjorn3
Sync rustc_codegen_cranelift

Nothing exciting this time. Mostly internal refactorings.

r? `@ghost`

`@rustbot` label +A-codegen +A-cranelift +T-compiler
2021-09-26 23:31:01 +00:00
Gary Guo 1b34e2d678 Introduce `Rvalue::ShallowInitBox` 2021-09-25 01:08:41 +01:00
Mark Rousskov 208fc4254b Migrate to 2021 2021-09-20 22:21:42 -04:00
Mark Rousskov 29e08971ce Adjust to SourceType::InTree in several places
These were left over in migrations to subtrees, which should generally be treated
as-if it was local.

Also fixes a warning caused by this change.
2021-09-20 08:45:39 -04:00
bjorn3 5599473084 Merge branch 'sync_from_rust' 2021-09-19 13:58:19 +02:00
bjorn3 5d3b8e7c1b Merge commit '61667dedf55e3e5aa584f7ae2bd0471336b92ce9' into sync_cg_clif-2021-09-19 2021-09-19 13:56:58 +02:00
bjorn3 61667dedf5 Rustup to rustc 1.57.0-nightly (aa8f2d432 2021-09-18) 2021-09-19 13:53:32 +02:00
bjorn3 f12c51f149 Sync from rust 7a3d1a5f3d 2021-09-19 13:43:54 +02:00
Eduard-Mihai Burtescu e857fabac1 Querify `fn_abi_of_{fn_ptr,instance}`. 2021-09-18 04:41:33 +03:00
Eduard-Mihai Burtescu 849b4c4483 ty::layout: replicate `layout_of` setup for `fn_abi_of_{fn_ptr,instance}`. 2021-09-18 04:41:29 +03:00
Eduard-Mihai Burtescu 1b8e830f6d ty::layout: intern `FnAbi`s as `&'tcx`. 2021-09-18 01:42:45 +03:00
bors 02d3c132ae Auto merge of #88839 - nbdd0121:alignof, r=nagisa
Introduce NullOp::AlignOf

This PR introduces `Rvalue::NullaryOp(NullOp::AlignOf, ty)`, which will be lowered from `align_of`, similar to `size_of` lowering to `Rvalue::NullaryOp(NullOp::SizeOf, ty)`.

The changes are originally part of #88700 but since it's not dependent on other changes and could have performance impact on its own, it's separated into its own PR.
2021-09-12 23:49:24 +00:00
Gary Guo 4ac4980b33 Introduce NullOp::AlignOf 2021-09-13 00:08:35 +01:00
bjorn3 4560603b1c Re-enable portable simd testing 2021-09-12 20:27:50 +02:00
bjorn3 d480d9ee3b Rustup to rustc 1.57.0-nightly (8c2b6ea37 2021-09-11) 2021-09-12 19:40:01 +02:00
bjorn3 94ad37cd3d Sync from rust c7dbe7a830 2021-09-12 19:25:17 +02:00
Andreas Liljeqvist a81217c12d Make `abi::Abi` `Copy` and remove a *lot* of refs
fix

fix

Remove more refs and clones

fix

more

fix
2021-09-09 10:41:19 +02:00
bjorn3 7736e0afb8 Avoid unnecessary duplicate metadata encoding 2021-09-08 18:54:48 +02:00
bjorn3 8a28d7a07f Add portable-simd to .gitignore 2021-09-07 20:45:58 +02:00
bjorn3 0a8787fdda Rustup to rustc 1.57.0-nightly (1698e3cac 2021-09-06) 2021-09-07 20:45:28 +02:00
bjorn3 95f06887ea Sync from rust 73641cd23b 2021-09-07 20:45:09 +02:00
Camille GILLOT 9ad50a41fe Move the dataflow framework to its own crate. 2021-09-07 19:57:07 +02:00
Camille GILLOT 8cc1012f3f Move monomorphize code to its own crate. 2021-09-07 19:53:04 +02:00
bors 0167838a18 Auto merge of #88499 - eddyb:layout-off, r=nagisa
Provide `layout_of` automatically (given tcx + param_env + error handling).

After #88337, there's no longer any uses of `LayoutOf` within `rustc_target` itself, so I realized I could move the trait to `rustc_middle::ty::layout` and redesign it a bit.

This is similar to #88338 (and supersedes it), but at no ergonomic loss, since there's no funky `C: LayoutOf<Ty = Ty>` -> `Ty: TyAbiInterface<C>` generic `impl` chain, and each `LayoutOf` still corresponds to one `impl` (of `LayoutOfHelpers`) for the specific context.

After this PR, this is what's needed to get `trait LayoutOf` (with the `layout_of` method) implemented on some context type:
* `TyCtxt`, via `HasTyCtxt`
* `ParamEnv`, via `HasParamEnv`
* a way to transform `LayoutError`s into the desired error type
  * an error type of `!` can be paired with having `cx.layout_of(...)` return `TyAndLayout` *without* `Result<...>` around it, such as used by codegen
  * this is done through a new `LayoutOfHelpers` trait (and so is specifying the type of `cx.layout_of(...)`)

When going through this path (and not bypassing it with a manual `impl` of `LayoutOf`), the end result is that only the error case can be customized, the query itself and the success paths are guaranteed to be uniform.

(**EDIT**: just noticed that because of the supertrait relationship, you cannot actually implement `LayoutOf` yourself, the blanket `impl` fully covers all possible context types that could ever implement it)

Part of the motivation for this shape of API is that I've been working on querifying `FnAbi::of_*`, and what I want/need to introduce for that looks a lot like the setup in this PR - in particular, it's harder to express the `FnAbi` methods in `rustc_target`, since they're much more tied to `rustc` concepts.

r? `@nagisa` cc `@oli-obk` `@bjorn3`
2021-09-05 16:14:41 +00:00
bors 771c2c6986 Auto merge of #88559 - bjorn3:archive_logic_dedup, r=cjgillot
Move add_rlib and add_native_library to cg_ssa

This deduplicates logic between codegen backends.

cc `@antoyo` and `@khyperia` for cg_gcc and rust-gpu.
2021-09-05 04:37:12 +00:00
bors e7e930360c Auto merge of #88363 - michaelwoerister:remapped-diagnostics, r=estebank
Path remapping: Make behavior of diagnostics output dependent on presence of --remap-path-prefix.

This PR fixes a regression (#87745) with `--remap-path-prefix` where the flag stopped causing diagnostic messages to be remapped as well. The regression was introduced in https://github.com/rust-lang/rust/pull/83813 where we erroneously assumed that remapping of diagnostic messages was not desired anymore (because #70642 partially undid that functionality with nobody objecting).

The issue is fixed by making `--remap-path-prefix` remap diagnostic messages again, including for paths that have been remapped in upstream crates (e.g. the standard library). This means that "sysroot-localization" (implemented in #70642) is also disabled if `rustc` is invoked with `--remap-path-prefix`. The assumption is that once someone starts explicitly remapping paths they also don't want paths to their local Rust installation in their build output.

In the future we might want to give more fine-grained control over this behavior via compiler flags (see https://github.com/rust-lang/rfcs/pull/3127 for a related RFC). For now this PR is intended as a regression fix.

This PR is an alternative to https://github.com/rust-lang/rust/pull/88191, which makes diagnostic messages be remapped unconditionally. That approach, however, would effectively revert #70642.

Fixes https://github.com/rust-lang/rust/issues/87745.

cc `@cbeuw`
r? `@ghost`
2021-09-03 00:23:10 +00:00
bjorn3 e6049759d0 Use in_incr_comp_dir_sess in cg_clif 2021-09-02 12:29:12 +02:00