about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2023-12-30Auto merge of #118705 - WaffleLapkin:codegen-atomic-exhange-untuple, r=cjgillotbors-20/+12
Change `rustc_codegen_ssa`'s `atomic_cmpxchg` interface to return a pair of values Doesn't change much, but a little nicer that way.
2023-12-30Auto merge of #119367 - Mark-Simulacrum:relative-spans, r=wesleywiserbors-47/+130
Shrink span encoding further Spans are now stored in a more compact form which cuts down on at least 1 byte per span (indirect/direct encoding) and at most 3 bytes per span (indirect/direct encoding, context byte, length byte). As a result, libcore metadata shrinks by 1.5MB. I'm not a huge fan of the fairly manual encoding/decoding from bits implemented here. Something like Tokio's pack abstraction (https://github.com/tokio-rs/tokio/blob/master/tokio/src/util/bit.rs) might be desirable to cut down on some of the shifting etc. We might also say that this isn't worth doing :) I took a look at copying the span encoding we use in memory (described [here](https://github.com/rust-lang/rust/blob/master/compiler/rustc_span/src/span_encoding.rs)). I think the format there makes a lot more sense for in-memory storage where prioritizing a fixed length (i.e., 4 or 8 bytes) is much more important. In metadata, it's much easier for us to have variable-length values, so there's less of a cliff if we don't quite fit. The bit packing scheme there would need changes to fit the varint scheme since it has a lot of all-1s patterns as the "relative offset" form.
2023-12-30Auto merge of #116012 - cjgillot:gvn-const, r=oli-obkbors-1581/+1088
Implement constant propagation on top of MIR SSA analysis This implements the idea I proposed in https://github.com/rust-lang/rust/pull/110719#issuecomment-1718324700 Based on https://github.com/rust-lang/rust/pull/109597 The value numbering "GVN" pass formulates each rvalue that appears in MIR with an abstract form (the `Value` enum), and assigns an integer `VnIndex` to each. This abstract form can be used to deduplicate values, reusing an earlier local that holds the same value instead of recomputing. This part is proposed in #109597. From this abstract representation, we can perform more involved simplifications, for example in https://github.com/rust-lang/rust/pull/111344. With the abstract representation `Value`, we can also attempt to evaluate each to a constant using the interpreter. This builds a `VnIndex -> OpTy` map. From this map, we can opportunistically replace an operand or a rvalue with a constant if their value has an associated `OpTy`. The most relevant commit is [Evaluated computed values to constants.](https://github.com/rust-lang/rust/commit/2767c4912ea249c2f613a9cedcd6c13ea1237e54)" r? `@oli-obk`
2023-12-29Shrink span encoding furtherMark Rousskov-47/+130
Spans are now stored in a more compact form which cuts down on at least 1 byte per span (indirect/direct encoding) and at most 3 bytes per span (indirect/direct encoding, context byte, length byte). As a result, libcore metadata shrinks by 1.5MB.
2023-12-30Auto merge of #119421 - matthiaskrgr:rollup-dbera1b, r=matthiaskrgrbors-696/+142
Rollup of 5 pull requests Successful merges: - #119322 (Couple of random coroutine pass simplifications) - #119374 (Italicise "bytes" in the docs of some `Vec` methods) - #119388 (rustc_lint: Prevent triplication of various lints) - #119406 (Add non-regression test for ATPIT ICE #114325) - #119410 (Rename test to be more descriptive) r? `@ghost` `@rustbot` modify labels: rollup
2023-12-29Rollup merge of #119410 - est31:fix_if_guard_unused, r=NilstriebMatthias Krüger-2/+2
Rename test to be more descriptive As suggested in https://github.com/rust-lang/rust/pull/119402#discussion_r1438171079 r? ``@Nilstrieb``
2023-12-29Rollup merge of #119406 - lqd:issue-114325, r=compiler-errorsMatthias Krüger-0/+55
Add non-regression test for ATPIT ICE #114325 ATPIT issue #114325 had been unknowingly fixed by https://github.com/rust-lang/rust/pull/107421, so this PR adds its [MCVE](https://github.com/rust-lang/rust/issues/114325#issuecomment-1721561552) as a non-regression test. Closes #114325.
2023-12-29Rollup merge of #119388 - Enselic:prevent-lint-triplication, r=cjgillotMatthias Krüger-664/+64
rustc_lint: Prevent triplication of various lints Prevent triplication of various lints. The triplication happens because we run the same lint three times (or less in some cases): * In `BuiltinCombinedPreExpansionLintPass` * In `BuiltinCombinedEarlyLintPass` * In `shallow_lint_levels_on()` Only run the lints one time by checking the `lint_added_lints` bool. Set your GitHub diff setting to ignore whitespaces changes when reviewing this PR, since I had to enclose a block inside an if. Closes #73301 (I found this while exploring the code related to [this](https://github.com/rust-lang/rust/pull/119251#discussion_r1435677330) comment.)
2023-12-29Rollup merge of #119374 - gurry:119149-improve-vec-docs, r=cuviperMatthias Krüger-8/+8
Italicise "bytes" in the docs of some `Vec` methods On a cursory read it's easy to miss that the limit is in terms of bytes not no. of elements. The italics should help with that. Fixes #119149
2023-12-29Rollup merge of #119322 - compiler-errors:async-gen-resume-ty, r=cjgillotMatthias Krüger-22/+13
Couple of random coroutine pass simplifications Just aesthetic changes, except for a random `Ty::new_task_context(tcx)` call that was redundant.
2023-12-29Auto merge of #118911 - Young-Flash:fix_issue_118819, r=fmeasebors-24/+148
fix: correct the args for `disambiguate the associated function` diagnostic This is somehow silimar to https://github.com/rust-lang/rust/pull/118502, we shouldn't take receiver as first arg all the cases. close https://github.com/rust-lang/rust/issues/118819
2023-12-29Auto merge of #119373 - Kobzol:missing-tools-bootstrap, r=onur-ozkanbors-134/+98
Remove usage of deprecated `missing-tools` bootstrap flag This PR removes the usage of `--enable-missing-tools` in CI, as this config option is no longer used. It also removes `dist.missing-tools` config completely. Let me know which commits should I remove (if any). Fixes: https://github.com/rust-lang/rust/issues/79249 r? `@onur-ozkan`
2023-12-29Auto merge of #119259 - cjgillot:single-crate-id, r=Mark-Simulacrumbors-32/+40
Only store StableCrateId once in DefPathTable. https://github.com/rust-lang/rust/pull/119238 made me think of this. cc `@Mark-Simulacrum`
2023-12-29Rename testest31-2/+2
2023-12-29Auto merge of #119387 - flip1995:clippy-subtree-sync, r=matthiaskrgrbors-326/+2536
Clippy subtree update r? `@Manishearth`
2023-12-29Auto merge of #119407 - matthiaskrgr:rollup-bsoz7bn, r=matthiaskrgrbors-246/+134
Rollup of 5 pull requests Successful merges: - #119375 (Merge Coroutine lowering functions) - #119393 (Use filter instead of filter_map in Parser::expected_one_of_not_found) - #119401 (coverage: Avoid a possible query stability hazard in `CoverageCounters`) - #119402 (Also walk bindings created by if-let guards) - #119404 (Enable profiler in dist-powerpc-linux) r? `@ghost` `@rustbot` modify labels: rollup
2023-12-29Rollup merge of #119404 - ecnelises:ppc_profiler, r=KobzolMatthias Krüger-1/+1
Enable profiler in dist-powerpc-linux
2023-12-29Rollup merge of #119402 - est31:fix_if_guard_unused, r=compiler-errorsMatthias Krüger-0/+26
Also walk bindings created by if-let guards This change makes the `unused_variables` lint pick up unused bindings created by if-let guards. Fixes #119383
2023-12-29Rollup merge of #119401 - Zalathar:query-stability, r=NilstriebMatthias Krüger-3/+6
coverage: Avoid a possible query stability hazard in `CoverageCounters` #119252 revealed a possible query stability hazard in `CoverageCounters`: we iterate over the entries of an `FxHashMap` in a way that allows the iteration order to potentially affect the relative creation order of MIR blocks. I'm not sure whether there's an actual stability problem or not in practice, but it's certainly a hazard, and I don't see any reason not to switch over to `FxIndexMap` to avoid potential issues. --- This can either be merged on its own, or incorporated into #119252. cc `@Enselic` r? `@cjgillot`
2023-12-29Rollup merge of #119393 - DaniPopes:unmap-a-filter, r=NilstriebMatthias Krüger-18/+20
Use filter instead of filter_map in Parser::expected_one_of_not_found
2023-12-29Rollup merge of #119375 - Swatinem:merge-coroutine-lowering, r=compiler-errorsMatthias Krüger-224/+81
Merge Coroutine lowering functions Instead of having separate `make_async/etc_expr` functions, this merges them them into one, reducing code duplication a bit.
2023-12-29add non-regression test for issue 114325Rémy Rakic-0/+55
2023-12-29Enable profiler in dist-powerpc-linuxQiu Chaofan-1/+1
2023-12-29Italicise "bytes" in the docs of some `Vec` methodsGurinder Singh-8/+8
because on a cursory read it's easy to miss that the limit is in terms of bytes not no. of elements. The italics should help with that.
2023-12-29Auto merge of #119392 - compiler-errors:args-parts, r=Nilstriebbors-58/+48
make `ClosureArgsParts` and `CoroutineArgsParts` not generic I hope a few extra calls to `expect_ty` will not affect perf...
2023-12-29Also walk bindings created by if-let guardsest31-0/+26
2023-12-29Auto merge of #119395 - Nilstrieb:walk-pat, r=est31bors-29/+6
Use `Pat::walk_always` instead of manual walk It's also a bit faster, but I doubt that it will have a noticeable perf impact. Mostly doing it because it's shorter and nicer.
2023-12-29coverage: Avoid a possible query stability hazard in `CoverageCounters`Zalathar-3/+6
The iteration order of this hashmap can potentially affect the relative creation order of MIR blocks.
2023-12-29Couple of random coroutine pass simplificationsMichael Goulet-22/+13
2023-12-29Auto merge of #119378 - onur-ozkan:utilize-llvm-tools, r=albertlarsan68bors-9/+11
utilize the unused `llvm-tools` option This field was not functioning as described in its comment in `config.example.toml`. Also, updated the default value to `true` to keep the bootstrapping behavior as it was before. cc `@Zalathar`
2023-12-28Use `Pat::walk_always` instead of manual walkNilstrieb-29/+6
2023-12-28Auto merge of #119174 - compiler-errors:movability, r=cjgillotbors-223/+195
Remove movability from `TyKind::Coroutine` There's no reason to store movability in the generator struct directly. It is computed from the HIR, and can be pulled into a query to access when necessary.
2023-12-28Merge Coroutine lowering functionsArpad Borsos-224/+81
Instead of having separate `make_async/etc_expr` functions, this merges them them into one, reducing code duplication a bit.
2023-12-28Use filter instead of filter_map in Parser::expected_one_of_not_foundDaniPopes-18/+20
2023-12-28make ClosureArgsParts not genericMichael Goulet-58/+48
2023-12-28Remove `is_optional_tool` from `ToolBuild`Jakub Beránek-128/+92
2023-12-28Add change tracker entryJakub Beránek-1/+6
2023-12-28rustc_lint: Prevent triplication of 'unknown lint' lintMartin Nordholts-392/+42
2023-12-28rustc_lint: Prevent multiple 'incompatible with previous forbid' lintsMartin Nordholts-204/+8
2023-12-28rustc_lint: Prevent multiple 'lint ignored' lintsMartin Nordholts-58/+4
Prevent multiple 'ignored unless specified at crate level' lints. The multiplication happens because we run the same lint three times: * In BuiltinCombinedEarlyLintPass * In BuiltinCombinedPreExpansionLintPass * In shallow_lint_levels_on Only run the lint one time by checking the `lint_added_lints` bool.
2023-12-28rustc_lint: Rename `warn_about_weird_lints` to `lint_added_lints`Martin Nordholts-8/+8
So we can apply more kinds of lints to added lints without having to add another parameter.
2023-12-28rustc_error_codes: Update expected error in E0453.mdMartin Nordholts-2/+2
2023-12-28Update Cargo.lockPhilipp Krones-5/+5
2023-12-28Merge commit 'ac4c2094a6030530661bee3876e0228ddfeb6b8b' into clippy-subtree-syncPhilipp Krones-321/+2531
2023-12-28Auto merge of #12038 - flip1995:rustup, r=flip1995bors-128/+202
Rustup r? `@ghost` changelog: none
2023-12-28Bump Clippy version -> 0.1.77Philipp Krones-5/+5
2023-12-28Bump nightly version -> 2023-12-28Philipp Krones-1/+1
2023-12-28Merge remote-tracking branch 'upstream/master' into rustupPhilipp Krones-351/+2576
2023-12-28Auto merge of #119384 - matthiaskrgr:rollup-hhz9ws0, r=matthiaskrgrbors-92/+249
Rollup of 5 pull requests Successful merges: - #119331 (rustdoc-search: count path edits with separate edit limit) - #119359 (Simplify Parser::ident_or_error) - #119376 (Add regression test for #106630) - #119379 (Update `parse_seq` doc) - #119380 (Don't suggest writing a bodyless arm if the pattern can never be a never pattern) r? `@ghost` `@rustbot` modify labels: rollup
2023-12-28Rollup merge of #119380 - ShE3py:match-never-pat, r=petrochenkovMatthias Krüger-26/+32
Don't suggest writing a bodyless arm if the pattern can never be a never pattern #118527 enabled arms to be bodyless for never patterns ; this PR removes the `,` and `}` suggestions for patterns that could never be never patterns.