Commit graph

239515 commits

Author SHA1 Message Date
Mark Rousskov
d920dd8d38 Remove Upvar duplication
This cuts out an extra allocation and copying over from the already
cached closure capture information.
2023-11-26 13:19:10 -05:00
bors
3166210d68 Auto merge of #118279 - bjorn3:sync_cg_clif-2023-11-25, r=bjorn3
Subtree sync for rustc_codegen_cranelift

The main highlights this time are implementing a bunch of new vendor intrinsics and fixing some existing ones. And fixing polymorphization for coroutines.

r? `@ghost`

`@rustbot` label +A-codegen +A-cranelift +T-compiler
2023-11-25 13:08:29 +00:00
bors
3668a8af1b Auto merge of #118277 - fmease:rollup-itucldm, r=fmease
Rollup of 9 pull requests

Successful merges:

 - #118220 (general improvements/fixes on bootstrap)
 - #118251 (rustdoc-search: avoid infinite where clause unbox)
 - #118253 (Replace `option.map(cond) == Some(true)` with `option.is_some_and(cond)`)
 - #118255 (Request that rust-analyzer changes are sent upstream first if possible)
 - #118259 (Move EagerResolution to rustc_infer::infer::resolve)
 - #118262 (Relate Inherent Associated Types using eq)
 - #118266 (Move stuff around on `stable_mir` and `rustc_smir` crate)
 - #118271 (Separate `NaN`/`Inf` floats with `_`)
 - #118274 (Fix smir's `Ty::Ref` pretty printing)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-11-25 11:08:37 +00:00
bjorn3
aa51a27f8e Merge commit '710c67909d034e1c663174a016ca82b95c2d6c12' into sync_cg_clif-2023-11-25 2023-11-25 10:05:52 +00:00
bjorn3
710c67909d
Merge pull request #1431 from rust-lang/even_more_simd_intrinsics
Implement another batch of vendor intrinsics
2023-11-25 10:57:11 +01:00
bjorn3
86fc533a71 Re-enable rustc test that was disabled due to a rustc bug 2023-11-25 09:40:02 +00:00
bjorn3
da3782a0b4 Rustup to rustc 1.76.0-nightly (37b2813a7 2023-11-24) 2023-11-25 09:32:50 +00:00
bjorn3
85c708132f Sync from rust 37b2813a7b 2023-11-25 09:24:52 +00:00
León Orell Valerian Liehr
20d243e854
Rollup merge of #118274 - celinval:smir-fix-pretty, r=ouz-a
Fix smir's `Ty::Ref` pretty printing

Add `&` or `&mut` to reference when generating a string for `TyKind::Ref`.

r? `@ouz-a`
2023-11-25 10:21:09 +01:00
León Orell Valerian Liehr
a663bb946f
Rollup merge of #118271 - compiler-errors:float, r=RalfJung
Separate `NaN`/`Inf` floats with `_`

r? RalfJung

Fixes #118221

No test 🤷 unless you know a good way to print an `ImmTy` in a unit test?
2023-11-25 10:21:08 +01:00
León Orell Valerian Liehr
3f513bd9ce
Rollup merge of #118266 - celinval:smir-break-files, r=compiler-errors
Move stuff around on `stable_mir` and `rustc_smir` crate

1. Break down rustc_smir/mod.rs file.
    - This file was getting too big and causing a lot of merge conflicts.
      All these changes shouldn't be visible to users since this module is private.
2.  Move the compiler interface defs to its own module
    - Separate items that are exposed in the `stable_mir` crate to be used
      by the compiler from items that we expect to be used by tool developers.
2023-11-25 10:21:08 +01:00
León Orell Valerian Liehr
23461fd694
Rollup merge of #118262 - spastorino:relate-iats-using-eq, r=compiler-errors
Relate Inherent Associated Types using eq

We should call `eq` instead of `sup` as we're relating `Ty` directly and not `Binder<TraitRef>`.

This is part of #118118 but unrelated to that PR.

r? `@compiler-errors` `@lcnr`
2023-11-25 10:21:08 +01:00
León Orell Valerian Liehr
7c2244a625
Rollup merge of #118259 - spastorino:move-eager-resolver-to-infer, r=compiler-errors
Move EagerResolution to rustc_infer::infer::resolve

`EagerResolver` fits better in `rustc_infer::infer::resolver`.

Started to disentagle #118118 that has a lot of unrelated things.

r? `@compiler-errors` `@lcnr`
2023-11-25 10:21:07 +01:00
León Orell Valerian Liehr
969a77360d
Rollup merge of #118255 - dtolnay:mentionsrustanalyzer, r=Mark-Simulacrum
Request that rust-analyzer changes are sent upstream first if possible

This automates `@lnicola's` comment https://github.com/rust-lang/rust/pull/118253#issuecomment-1825925242.

Rustbot will write a comment similar to https://github.com/rust-lang/rust/pull/116743#issuecomment-1763178813.
2023-11-25 10:21:07 +01:00
León Orell Valerian Liehr
8e606a6928
Rollup merge of #118253 - dtolnay:issomeand, r=compiler-errors
Replace `option.map(cond) == Some(true)` with `option.is_some_and(cond)`

Requested by `@fmease` in https://github.com/rust-lang/rust/pull/118226#pullrequestreview-1747432292.

There is also a much larger number of `option.map_or(false, cond)` that can be changed separately if someone wants.

r? fmease
2023-11-25 10:21:06 +01:00
León Orell Valerian Liehr
0304aac0f3
Rollup merge of #118251 - notriddle:notriddle/less-recursion, r=GuillaumeGomez
rustdoc-search: avoid infinite where clause unbox

Fixes #118242
2023-11-25 10:21:06 +01:00
León Orell Valerian Liehr
fb2c498947
Rollup merge of #118220 - onur-ozkan:followups, r=Mark-Simulacrum
general improvements/fixes on bootstrap

- adds #117813 into change tracker 6d9b92f83f
- fixes a bug in change tracker 63a4410952
- relocates `CONFIG_CHANGE_HISTORY` a7dcb984f6
2023-11-25 10:21:05 +01:00
bjorn3
e6e2f00d21 Fix incorrect implementation of several vendor intrinsics 2023-11-25 09:14:37 +00:00
bors
fad6bb80fa Auto merge of #118075 - tmiasko:validate-critical-call-edges, r=cjgillot
Validate there are no critical call edges in optimized MIR
2023-11-25 09:10:44 +00:00
bors
e2e978f713 Auto merge of #118203 - nnethercote:rustc_mir_dataflow, r=cjgillot
Minor `rustc_mir_dataflow` cleanups

r? `@cjgillot`
2023-11-25 07:10:46 +00:00
bors
b2e73e9aad Auto merge of #118261 - spastorino:fix-placeholder-replacer, r=compiler-errors
Make PlaceholderReplacer shallow_resolver and recur when infer vars

This makes resolve type and const infer vars resolve.

Given:

```rust
#![feature(inherent_associated_types)]
#![allow(incomplete_features)]

struct Foo<T>(T);

impl<'a> Foo<fn(&'a ())> {
    type Assoc = &'a ();
}

fn bar(_: for<'a> fn(Foo<fn(Foo<fn(&'static ())>::Assoc)>::Assoc)) {}

fn main() {}
```

We should normalize `for<'a> fn(Foo<fn(Foo<fn(&'static ())>::Assoc)>::Assoc)` to `for<'0> fn(&'1 ())` with `'1 == '0` and `'0 == 'static` constraints. We have to resolve `'1` to `'static` in the infcx associated to `PlaceholderReplacer`.

This is part of https://github.com/rust-lang/rust/pull/118118 but unrelated to that PR.

r? `@compiler-errors` `@lcnr`
2023-11-25 05:10:10 +00:00
Celina G. Val
60817e6863 Fix smir's Ty::Ref pretty printing 2023-11-24 18:43:35 -08:00
bors
34c5ab9aac Auto merge of #118227 - Mark-Simulacrum:worker-local-outline, r=cjgillot
Optimize QueryArena allocation

This shifts the WorkerLocal wrapper to be outside the QueryArena, meaning that instead of having each query allocate distinct arenas per-worker we allocate the full set of arenas per-worker. This is primarily a code size optimization (locally, ~85 kilobytes, [perf is reporting >100 kilobytes](https://perf.rust-lang.org/compare.html?start=1fd418f92ed13db88a21865ba5d909abcf16b6cc&end=884c95a3f1fe8d28630ec3cdb0c8f95b2e539fde&stat=instructions%3Au&tab=artifact-size)), saving a bunch of code in the initialization of the arenas which was previously duplicated lots of times (per arena type).

Additionally this tells LLVM that the thread count can't be zero in this code (I believe this is true?) which shaves some small amount of bytes off as well since we eliminate checks for zero in the vec allocations.
2023-11-25 02:01:39 +00:00
bors
2a48155aec Auto merge of #118235 - psumbera:bootstrap-main-t, r=Mark-Simulacrum
Fix build on Solaris after #117815.
2023-11-25 00:04:04 +00:00
Michael Goulet
b601b40b40 Separate Nan/Inf floats with _ 2023-11-24 23:35:18 +00:00
Celina G. Val
f8c2478b6b Reorder imports and remove re-export 2023-11-24 15:09:26 -08:00
Celina G. Val
d7c7236845 Move the compiler interface defs to its own module
Separate items that are exposed in the `stable_mir` crate to be used
by the compiler from items that we expect to be used by tool developers.
2023-11-24 13:49:31 -08:00
bors
37b2813a7b Auto merge of #118138 - Nilstrieb:one-previous-error, r=WaffleLapkin
Fixes error count display is different when there's only one error left

Supersedes #114759

### What did I do?

I did the small change in `rustc_errors` by hand. Then I did the other changes in `/compiler` by hand, those were just find replace on `*.rs` in the workspace. The changes in run-make are find replace for `run-make` in the workspace.

All other changes are blessed using `x test TEST --bless`. I blessed the tests that were blessed in #114759.

### how to review this nightmare

ping bors with an `r+`. You should check that my logic is sound and maybe quickly scroll through the diff, but fully verifying it seems fairly hard to impossible. I did my best to do this correctly.

Thank you `@adrianEffe` for bringing this up and your initial implementation.

cc `@flip1995,` you said you want to do a subtree sync asap
cc `@RalfJung` maybe you want to do a quick subtree sync afterwards as well for Miri

r? `@WaffleLapkin`
2023-11-24 21:40:54 +00:00
Celina G. Val
5ad84ed2e6 Break down rustc_smir/mod.rs file
This file was getting too big and causing a lot of merge conflicts. All
these changes shouldn't be visible to users since this module is private.
2023-11-24 13:26:57 -08:00
Nilstrieb
c73d392a01 Bless ui-fulldeps
We have to ignore some tests in stage1.
2023-11-24 21:56:22 +01:00
onur-ozkan
576a17ecdb move CONFIG_CHANGE_HISTORY to its own module
Because bootstrap lib is already large and complicated, this should
make the "bumping change-id" process easier.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-11-24 23:18:36 +03:00
onur-ozkan
38aba2cb19 use the change-id from source instead of the one from config.tom
This fixes the problem of not being able to see bootstrap config
changes unless the change-id in config.toml changes.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-11-24 23:14:21 +03:00
onur-ozkan
6d881a9946 add change information for PR#117813
Signed-off-by: onur-ozkan <work@onurozkan.dev>
2023-11-24 23:14:17 +03:00
Nilstrieb
9b80d85722 Manual find replace updates 2023-11-24 21:04:51 +01:00
bjorn3
3b49b9efd5 Implement the int part of the gather family vendor intrinsics 2023-11-24 20:45:22 +01:00
bjorn3
d5a7ae7976 Implement the float part of the gather family vendor intrinsics 2023-11-24 20:45:22 +01:00
bjorn3
c8729e9216 Implement _mm256_zeroupper vendor intrinsic 2023-11-24 20:45:22 +01:00
bjorn3
65da671694 Implement *fmaddsub_p*, *fmsubadd_p* and *fnmadd_p* vendor intrinsics 2023-11-24 20:45:22 +01:00
bjorn3
705031d017 Implement _mm_cvttps_epi32 2023-11-24 20:45:22 +01:00
bors
0f696e555f Auto merge of #118229 - crlf0710:final_bump_unicode15, r=Mark-Simulacrum
Bump `unicase` crate version.

This bumps `unicase` crate to align with Unicode 15.

Closes #101840.
2023-11-24 19:41:10 +00:00
Santiago Pastorino
6713f295e2
We should call eq instead of sup as we're relating Ty directly and not Binder<TraitRef> 2023-11-24 16:38:32 -03:00
Santiago Pastorino
f57e1843f3
Make PlaceholderReplacer shallow_resolver when folding const and ty and recur if contain infer vars 2023-11-24 16:26:08 -03:00
Santiago Pastorino
798d2cb6e2
Move EagerResolution to rustc_infer::infer::resolve 2023-11-24 16:22:35 -03:00
Nilstrieb
377da2f06b Bless Miri tests
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-24 19:15:53 +01:00
Nilstrieb
76a0313285 Bless clippy tests
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-24 19:15:52 +01:00
Nilstrieb
0346765100 Bless run-make tests
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-24 19:15:52 +01:00
Nilstrieb
87a354b15d Bless rustdoc-ui tests
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-24 19:15:52 +01:00
Nilstrieb
41e8d152dc Show number in error message even for one error
Co-authored-by: Adrian <adrian.iosdev@gmail.com>
2023-11-24 19:15:52 +01:00
Michael Howell
1b7b9540fe rustdoc-search: avoid infinite where clause unbox
Fixes #118242
2023-11-24 10:42:11 -07:00
bors
42ae1a7615 Auto merge of #118248 - compiler-errors:rollup-tye3vgj, r=compiler-errors
Rollup of 7 pull requests

Successful merges:

 - #118187 (Recompile LLVM when it changes in the git sources)
 - #118210 (intercrate ambiguity causes: ignore candidates which don't apply)
 - #118215 (Add common trait for crate definitions)
 - #118238 (memcpy assumptions: update GCC link)
 - #118243 (EvalCtxt::commit_if_ok don't inherit nested goals)
 - #118245 (Add `Span` to `TraitBoundModifier`)
 - #118246 (Remove a hack for effects)

r? `@ghost`
`@rustbot` modify labels: rollup
2023-11-24 17:24:47 +00:00