]> git.lizzy.rs Git - rust.git/commitdiff
Rollup merge of #92203 - Aaron1011:mir-adt-def, r=oli-obk
authorMatthias Krüger <matthias.krueger@famsik.de>
Thu, 23 Dec 2021 16:48:31 +0000 (17:48 +0100)
committerGitHub <noreply@github.com>
Thu, 23 Dec 2021 16:48:31 +0000 (17:48 +0100)
Store a `DefId` instead of an `AdtDef` in `AggregateKind::Adt`

The `AggregateKind` enum ends up in the final mir `Body`. Currently,
any changes to `AdtDef` (regardless of how significant they are)
will legitimately cause the overall result of `optimized_mir` to change,
invalidating any codegen re-use involving that mir.

This will get worse once we start hashing the `Span` inside `FieldDef`
(which is itself contained in `AdtDef`).

To try to reduce these kinds of invalidations, this commit changes
`AggregateKind::Adt` to store just the `DefId`, instead of the full
`AdtDef`. This allows the result of `optimized_mir` to be unchanged
if the `AdtDef` changes in a way that doesn't actually affect any
of the MIR we build.


Trivial merge