Skip to content

Commit

Permalink
Auto merge of #113562 - saethlin:larger-incr-comp-offset, r=nnethercote
Browse files Browse the repository at this point in the history
Use u64 for incr comp allocation offsets

Fixes rust-lang/rust#76037
Fixes rust-lang/rust#95780
Fixes rust-lang/rust#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`
  • Loading branch information
bors committed Jul 17, 2023
2 parents 6971648 + 75d6481 commit 2ca4d9b
Showing 0 changed files with 0 additions and 0 deletions.

0 comments on commit 2ca4d9b

Please sign in to comment.