summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Auto merge of #111364 - cuviper:unhack-thinlto, r=nikicHEADmasterbors2023-05-183-112/+0
|\ | | | | | | | | | | | | | | | | | | | | Remove the ThinLTO CU hack This reverts #46722, commit e0ab5d5feb4eb2d8af11b8dd9446c2b45fada8af. Since #111167, commit 10b69dde3fd15334ea2382d2dc9e9a261de1afaf, we are generating DWARF subprograms in a way that is meant to be more compatible with LLVM's expectations, so hopefully we don't need this workaround rewriting CUs anymore.
| * Remove the ThinLTO CU hackJosh Stone2023-05-083-112/+0
| | | | | | | | | | | | | | | | | | This reverts #46722, commit e0ab5d5feb4eb2d8af11b8dd9446c2b45fada8af. Since #111167, commit 10b69dde3fd15334ea2382d2dc9e9a261de1afaf, we are generating DWARF subprograms in a way that is meant to be more compatible with LLVM's expectations, so hopefully we don't need this workaround rewriting CUs anymore.
* | Auto merge of #111672 - nikic:llvm-16.0.4, r=cuviperbors2023-05-171-0/+0
|\ \ | | | | | | | | | | | | | | | Update to LLVM 16.0.4 Fixes #109918.
| * | Update to LLVM 16.0.4Nikita Popov2023-05-171-0/+0
| | |
* | | Auto merge of #111568 - scottmcm:undo-opt, r=WaffleLapkinbors2023-05-173-152/+49
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stop turning transmutes into discriminant reads in mir-opt Partially reverts #109612, as after #109993 these aren't actually equivalent any more, and I'm no longer confident this was ever an improvement in the first place. Having this "simplification" meant that similar-looking code actually did somewhat different things. For example, ```rust pub unsafe fn demo1(x: std::cmp::Ordering) -> u8 { std::mem::transmute(x) } pub unsafe fn demo2(x: std::cmp::Ordering) -> i8 { std::mem::transmute(x) } ``` in nightly today is generating <https://rust.godbolt.org/z/dPK58zW18> ```llvm define noundef i8 `@_ZN7example5demo117h341ef313673d2ee6E(i8` noundef %x) unnamed_addr #0 { %0 = icmp uge i8 %x, -1 %1 = icmp ule i8 %x, 1 %2 = or i1 %0, %1 call void `@llvm.assume(i1` %2) ret i8 %x } define noundef i8 `@_ZN7example5demo217h5ad29f361a3f5700E(i8` noundef %0) unnamed_addr #0 { %x = alloca i8, align 1 store i8 %0, ptr %x, align 1 %1 = load i8, ptr %x, align 1, !range !2, !noundef !3 ret i8 %1 } ``` Which feels too different when the original code is essentially identical. --- Aside: that example is different *after* optimizations too: ```llvm define noundef i8 `@_ZN7example5demo117h341ef313673d2ee6E(i8` noundef returned %x) unnamed_addr #0 { %0 = add i8 %x, 1 %1 = icmp ult i8 %0, 3 tail call void `@llvm.assume(i1` %1) ret i8 %x } define noundef i8 `@_ZN7example5demo217h5ad29f361a3f5700E(i8` noundef returned %0) unnamed_addr #1 { ret i8 %0 } ``` so turning the `Transmute` into a `Discriminant` was arguably just making things worse, so leaving it alone instead -- and thus having less code in rustc -- seems clearly better.
| * | | Stop turning transmutes into discriminants in mir-optScott McMurray2023-05-143-152/+49
| | | | | | | | | | | | | | | | Partially reverts 109612, as after 109993 these aren't actually equivalent any more, and I'm no longer confident this was ever an improvement in the first place.
* | | | Auto merge of #111680 - Dylan-DPC:rollup-1p45gxt, r=Dylan-DPCbors2023-05-1740-137/+394
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rollup of 6 pull requests Successful merges: - #110930 (Don't expect normalization to succeed in elaborate_drops) - #111557 (Revert "Validate resolution for SelfCtor too.") - #111565 (rustdoc-json: Add tests for visibility of impls) - #111588 (Emits E0599 when meeting `MyTrait::missing_method`) - #111625 (Move rustc_middle/src/ty/query.rs to rustc_middle/src/query/plumbing.rs) - #111674 (Add missing backslash in HTML string) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
| * \ \ \ Rollup merge of #111674 - GuillaumeGomez:add-missing-backslash, r=notriddleDylan DPC2023-05-171-1/+1
| |\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add missing backslash in HTML string Found this missing one when looking at code. r? `@notriddle`
| | * | | | Add missing backslash in HTML stringGuillaume Gomez2023-05-171-1/+1
| | | | | |
| * | | | | Rollup merge of #111625 - Zoxc:rustc_middle-query-move, r=cjgillotDylan DPC2023-05-1717-33/+29
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Move rustc_middle/src/ty/query.rs to rustc_middle/src/query/plumbing.rs This just keeps the query modules together. r? `@cjgillot`
| | * | | | | Finish move of query.rsJohn Kåre Alsaker2023-05-1716-33/+29
| | | | | | |
| | * | | | | Move rustc_middle/src/ty/query.rs to rustc_middle/src/query/plumbing.rsJohn Kåre Alsaker2023-05-171-0/+0
| | | | | | |
| * | | | | | Rollup merge of #111588 - MU001999:diag/improve-e0782, r=fee1-deadDylan DPC2023-05-1711-47/+147
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Emits E0599 when meeting `MyTrait::missing_method` Fixes #111312
| | * | | | | | Emits E0599 when meeting MyTrait::missing_methodmu0019992023-05-1711-47/+147
| | | | | | | |
| * | | | | | | Rollup merge of #111565 - aDotInTheVoid:rdj-impl-viz, r=GuillaumeGomezDylan DPC2023-05-173-0/+81
| |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rustdoc-json: Add tests for visibility of impls [Apparrently rustdoc use to give these `crate` instead of `default`](https://github.com/obi1kenobi/trustfall-rustdoc-adapter/compare/rustdoc-v24...rustdoc-v25#diff-58e57a0fc73d1353fa3a057f0fe81c6ecfd4548b429cef1aee36b1c84d8d15a4L366). CC `@obi1kenobi` The output is arguably still buggy as to weather some of these impls should be stripped, but that's a seperate issue and shouldn't block adding these tests (#111564) r? `@GuillaumeGomez`
| | * | | | | | | rustdoc-json: Add tests for visibility of implsAlona Enraght-Moony2023-05-153-0/+81
| | | | | | | | |
| * | | | | | | | Rollup merge of #111557 - cjgillot:revert-111020, r=petrochenkovDylan DPC2023-05-175-55/+17
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert "Validate resolution for SelfCtor too." This reverts commit 83453408a0ce91b9e3d3ae6e7f117b1fd28b487d. That PR introduced a breaking change. Fixes https://github.com/rust-lang/rust/issues/111541 Reopens https://github.com/rust-lang/rust/issues/89868 r? `@petrochenkov`
| | * | | | | | | | Add test.Camille GILLOT2023-05-141-0/+15
| | | | | | | | | |
| | * | | | | | | | Revert "Validate resolution for SelfCtor too."Camille GILLOT2023-05-144-55/+2
| | | |/ / / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 83453408a0ce91b9e3d3ae6e7f117b1fd28b487d.
| * | | | | | | | Rollup merge of #110930 - b-naber:normalize-elaborate-drops, r=cjgillotDylan DPC2023-05-173-1/+119
| |\ \ \ \ \ \ \ \ |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't expect normalization to succeed in elaborate_drops Fixes https://github.com/rust-lang/rust/issues/110682 This was exposed through the changes in https://github.com/rust-lang/rust/pull/109247, which causes more things to be inlined. Inlining can happen before monomorphization, so we can't expect normalization to succeed. In the elaborate_drops analysis we currently have [this call](https://github.com/rust-lang/rust/blob/033aa092ab23ba14cdad27073c5e37ba0eddb428/compiler/rustc_mir_dataflow/src/elaborate_drops.rs#L278) to `normalize_erasing_regions`, which ICEs when normalization fails. The types are used to infer [whether the type needs a drop](https://github.com/rust-lang/rust/blob/033aa092ab23ba14cdad27073c5e37ba0eddb428/compiler/rustc_mir_dataflow/src/elaborate_drops.rs#L374), where `needs_drop` itself [uses `try_normalize_erasing_regions`](https://github.com/rust-lang/rust/blob/033aa092ab23ba14cdad27073c5e37ba0eddb428/compiler/rustc_middle/src/ty/util.rs#L1121). ~[`instance_mir`](https://doc.rust-lang.org/stable/nightly-rustc/rustc_middle/ty/context/struct.TyCtxt.html#method.instance_mir) isn't explicit about whether it expects the instances corresponding to the `InstanceDef`s to be monomorphized (though I think in all other contexts the function is used post-monomorphization), so the use of `instance_mir` in inlining doesn't necessarily seem wrong to me.~
| * | | | | | | | don't inline polymorphic adt instances whose fields contain projectionsb-naber2023-05-102-9/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in DropGlue.
| * | | | | | | | add testb-naber2023-05-101-0/+92
| | | | | | | | |
| * | | | | | | | dont expect normalization to succeed in elaborate_dropsb-naber2023-04-281-3/+9
| | | | | | | | |
* | | | | | | | | Auto merge of #111671 - Dylan-DPC:rollup-1jy5r16, r=Dylan-DPCbors2023-05-1734-83/+232
|\ \ \ \ \ \ \ \ \ | |_|_|_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rollup of 6 pull requests Successful merges: - #110145 (Share slice of bytes) - #111043 (Stabilize feature `cstr_is_empty`) - #111648 (Remove `LangItems::require`) - #111649 (Add derive for `core::marker::ConstParamTy`) - #111654 (Add a conversion from `&mut T` to `&mut UnsafeCell<T>`) - #111661 (Erase regions of type in `offset_of!`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
| * | | | | | | | Rollup merge of #111661 - clubby789:offset-of-erase-regions, r=compiler-errorsDylan DPC2023-05-172-3/+9
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Erase regions of type in `offset_of!` Fixes #111657
| | * | | | | | | | Erase regions of type in `offset_of!`clubby7892023-05-162-3/+9
| | | | | | | | | |
| * | | | | | | | | Rollup merge of #111654 - JoJoJet:unsafe-cell-from-mut-lib, r=joshtriplettDylan DPC2023-05-172-0/+22
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a conversion from `&mut T` to `&mut UnsafeCell<T>` Provides a safe way of downgrading an exclusive reference into an alias-able `&UnsafeCell<T>` reference. ACP: https://github.com/rust-lang/libs-team/issues/198.
| | * | | | | | | | | add `UnsafeCell::from_mut`JoJoJet2023-05-162-0/+22
| | |/ / / / / / / /
| * | | | | | | | | Rollup merge of #111649 - Nilstrieb:derive-const-param-ty, r=BoxyUwUDylan DPC2023-05-1711-2/+115
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add derive for `core::marker::ConstParamTy` This makes it easier to implement it for a type, just like `Copy`. `@BoxyUwU` half asked me to add it
| | * | | | | | | | | Add derive for `core::marker::ConstParamTy`Nilstrieb2023-05-1611-2/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it easier to implement it for a type, just like `Copy`.
| * | | | | | | | | | Rollup merge of #111648 - Nilstrieb:language-items, r=WaffleLapkinDylan DPC2023-05-179-38/+20
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove `LangItems::require` It's just a short wrapper used by `tcx.require_lang_item`. Deleting it gives us a negative diff.
| | * | | | | | | | | | Remove `LangItems::require`Nilstrieb2023-05-169-38/+20
| | |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's just a short wrapper used by `tcx.require_lang_item`. Deleting it gives us a negative diff.
| * | | | | | | | | | Rollup merge of #111043 - jmillikin:cstr-is-empty, r=dtolnayDylan DPC2023-05-171-3/+2
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stabilize feature `cstr_is_empty` Fixes #102444 ACP: https://github.com/rust-lang/libs-team/issues/106
| | * | | | | | | | | | Stabilize feature `cstr_is_empty`John Millikin2023-05-011-3/+2
| | | | | | | | | | | |
| * | | | | | | | | | | Rollup merge of #110145 - WaffleLapkin:share_slice_of_bytes, r=NilstriebDylan DPC2023-05-1710-37/+64
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Share slice of bytes r? `@Nilstrieb` cc `@noamtashma`
| | * | | | | | | | | | | Fixup commentsMaybe Waffle2023-05-161-4/+4
| | | | | | | | | | | | |
| | * | | | | | | | | | | Remove `MetadataRef` type aliasMaybe Waffle2023-05-165-18/+12
| | | | | | | | | | | | |
| | * | | | | | | | | | | Switch `OwnedSlice` to use `Lrc` & remove `Lrc` from `MetadataBlob`Maybe Waffle2023-05-166-13/+47
| | | | | | | | | | | | |
| | * | | | | | | | | | | Merge `MetadataRef` type aliasesMaybe Waffle2023-05-161-4/+3
| | | | | | | | | | | | |
* | | | | | | | | | | | | Auto merge of #111630 - BoxyUwU:ty_const_debug_formatting, r=compiler-errorsbors2023-05-177-45/+75
|\ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | debug format `Const`'s less verbosely Not user visible change only visible to people debugging const generics. Currently debug output for `ty::Const` is super verbose (even for `-Zverbose` lol), things like printing infer vars as `Infer(Var(?0c))` instead of just `?0c`, bound vars and placeholders not using `^0_1` or `!0_1` syntax respectively. With these changes its imo better but not perfect: `Const { ty: usize, kind: ^0_1 }` is still a lot for not much information. not entirely sure what to do about that so not dealing with it yet. Need to do formatting for `ConstKind::Expr` at some point too since rn it sucks (doesn't even print anything with `Display`) not gonna do that in this PR either. r? `@compiler-errors`
| * | | | | | | | | | | | blessBoxy2023-05-163-4/+4
| | | | | | | | | | | | |
| * | | | | | | | | | | | format `Const`'s less verboselyBoxy2023-05-164-41/+71
| | | | | | | | | | | | |
* | | | | | | | | | | | | Auto merge of #111664 - weihanglo:update-cargo, r=weihanglobors2023-05-171-0/+0
|\ \ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update cargo 8 commits in 13413c64ff88dd6c2824e9eb9374fc5f10895d28..09276c703a473ab33daaeb94917232e80eefd628 2023-05-10 13:46:18 +0000 to 2023-05-16 21:43:35 +0000 - docs: Clarify that crates.io doesn't link to docs.rs right away. (rust-lang/cargo#12146) - docs(ref): Clarify MSRV is generally minor (rust-lang/cargo#12122) - Fix `check_for_file_and_add`'s check for conflict file (rust-lang/cargo#12135) - Fixes: Incorrect document link (rust-lang/cargo#12143) - doc: intra-doc links and doc comments for build script (rust-lang/cargo#12133) - Add Cargo team charter. (rust-lang/cargo#12010) - Remove useless drop of copy type (rust-lang/cargo#12136) - Fix dep/feat syntax with hidden implicit optional dependencies (rust-lang/cargo#12130) r? ghost
| * | | | | | | | | | | | | Update cargoWeihang Lo2023-05-171-0/+0
| | |_|_|_|_|_|_|_|/ / / / | |/| | | | | | | | | | |
* | | | | | | | | | | | | Auto merge of #111556 - cjgillot:copy-prop-nrvo, r=oli-obkbors2023-05-1619-240/+617
|\ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge return place with other locals in CopyProp. This reintroduces a limited form of NRVO. r? wg-mir-opt
| * | | | | | | | | | | | Simplify implementation.Camille GILLOT2023-05-141-22/+16
| | | | | | | | | | | | |
| * | | | | | | | | | | | Merge return place with other locals in CopyProp.Camille GILLOT2023-05-1419-218/+601
| | |_|_|_|_|_|/ / / / / | |/| | | | | | | | | |
* | | | | | | | | | | | Auto merge of #111650 - matthiaskrgr:rollup-n7w17v4, r=matthiaskrgrbors2023-05-1625-62/+286
|\ \ \ \ \ \ \ \ \ \ \ \ | |_|_|_|_|_|/ / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rollup of 7 pull requests Successful merges: - #107680 (Hide repr attribute from doc of types without guaranteed repr) - #111488 (Use error term in projection if missing associated item in new solver) - #111533 (Handle error body in generator layout) - #111573 (Erase `ReError` properly) - #111592 (Change Vec examples to not assert exact capacity except where it is guaranteed) - #111610 (fix(diagnostic): wrap parens for ref impl trait param) - #111642 ([rustdoc] Only keep impl blocks from bodies) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
| * | | | | | | | | | | Rollup merge of #111642 - GuillaumeGomez:only-impl-from-bodies, r=notriddleMatthias Krüger2023-05-162-1/+65
| |\ \ \ \ \ \ \ \ \ \ \ | | | |_|_|_|_|_|_|/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [rustdoc] Only keep impl blocks from bodies Fixes https://github.com/rust-lang/rust/issues/111415. The problem was that we kept everything inside bodies whereas only impl blocks are actually accessible from outside bodies. r? `@notriddle`
| | * | | | | | | | | | Add regression test for #111415Guillaume Gomez2023-05-161-0/+36
| | | | | | | | | | | |