rust/compiler/rustc_middle/src
bors 6f65ef5717 Auto merge of #113562 - saethlin:larger-incr-comp-offset, r=nnethercote
Use u64 for incr comp allocation offsets

Fixes https://github.com/rust-lang/rust/issues/76037
Fixes https://github.com/rust-lang/rust/issues/95780
Fixes https://github.com/rust-lang/rust/issues/111613

These issues are all reporting ICEs caused by using `u32` to store offsets to allocations in the incremental compilation cache. This PR aims to lift that limitation by changing the offset type in question to `u64`.

There are two perf runs in this PR. The first reports a regression, and the second does not. The changes are the same in both. I rebased the PR then did the second perf run because I noticed that the primary regression in it was very commonly seen in spurious regression reports.

I do not know what the perf run will report when this is merged. I would not be surprised to see regression or neutral, but the cachegrind diffs for the regression point at `try_mark_previous_green` which is a common source of inexplicable regressions and I don't think should be perturbed by this PR.

I'm not opposed to adding a regression test such as
```rust
fn main() {
    println!("{}", [37; 1 << 30].len());
}
```
But that program takes 1 minute to compile and consumes 4.6 GB of memory then writes that much to disk. Is that a concerning amount of resource use for a test?

r? `@nnethercote`
2023-07-17 04:45:10 +00:00
..
dep_graph Allow LocalDefId as the argument to def_path_str 2023-04-21 22:27:20 +00:00
hir fix the issue of shorthand in suggest_cloning 2023-07-14 07:12:38 +08:00
infer refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
middle refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
mir Auto merge of #113562 - saethlin:larger-incr-comp-offset, r=nnethercote 2023-07-17 04:45:10 +00:00
query Auto merge of #113562 - saethlin:larger-incr-comp-offset, r=nnethercote 2023-07-17 04:45:10 +00:00
thir refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
traits refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
ty Auto merge of #113562 - saethlin:larger-incr-comp-offset, r=nnethercote 2023-07-17 04:45:10 +00:00
util refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
arena.rs Migrate predicates_of and caller_bounds to Clause 2023-06-26 23:12:03 +00:00
error.rs Use translatable diagnostics in rustc_const_eval 2023-06-01 14:45:18 +00:00
lib.rs s/drain_filter/extract_if/ for Vec, Btree{Map,Set} and LinkedList 2023-06-14 09:28:54 +02:00
lint.rs Move maybe_lint_level_root_bounded. 2023-07-12 10:02:13 +10:00
macros.rs Simplify CloneLiftImpls and TrivialTypeTraversalImpls. 2023-04-16 14:19:50 +10:00
metadata.rs rustc_metadata: Remove Span from ModChild 2023-04-18 17:25:04 +03:00
tests.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
thir.rs refactor(rustc_middle): Substs -> GenericArg 2023-07-14 13:27:35 +01:00
values.rs Move TyCtxt::mk_x to Ty::new_x where applicable 2023-07-05 20:27:07 +01:00