Remove unused VariantLayout.randomization_seed field

This field is only used during layout calculations, so re-synthetized
`LayoutData`s for enum variants can use a dummy value instead.
This commit is contained in:
Moulins
2025-12-18 19:07:38 +01:00
parent 0569574938
commit 3459964408
17 changed files with 9 additions and 93 deletions
+4 -10
View File
@@ -600,6 +600,7 @@ fn layout_of_enum<
let mut align = dl.aggregate_align;
let mut max_repr_align = repr.align;
let mut unadjusted_abi_align = align;
let mut combined_seed = repr.field_shuffle_seed;
let mut variant_layouts = variants
.iter()
@@ -609,6 +610,7 @@ fn layout_of_enum<
align = align.max(st.align.abi);
max_repr_align = max_repr_align.max(st.max_repr_align);
unadjusted_abi_align = unadjusted_abi_align.max(st.unadjusted_abi_align);
combined_seed = combined_seed.wrapping_add(st.randomization_seed);
Some(VariantLayout::from_layout(st))
})
@@ -702,11 +704,6 @@ fn layout_of_enum<
BackendRepr::Memory { sized: true }
};
let combined_seed = variant_layouts
.iter()
.map(|v| v.randomization_seed)
.fold(repr.field_shuffle_seed, |acc, seed| acc.wrapping_add(seed));
let layout = LayoutData {
variants: Variants::Multiple {
tag: niche_scalar,
@@ -799,6 +796,7 @@ fn layout_of_enum<
let mut align = dl.aggregate_align;
let mut max_repr_align = repr.align;
let mut unadjusted_abi_align = align;
let mut combined_seed = repr.field_shuffle_seed;
let mut size = Size::ZERO;
@@ -842,6 +840,7 @@ fn layout_of_enum<
align = align.max(st.align.abi);
max_repr_align = max_repr_align.max(st.max_repr_align);
unadjusted_abi_align = unadjusted_abi_align.max(st.unadjusted_abi_align);
combined_seed = combined_seed.wrapping_add(st.randomization_seed);
Ok(VariantLayout::from_layout(st))
})
.collect::<Result<IndexVec<VariantIdx, _>, _>>()?;
@@ -1042,11 +1041,6 @@ fn layout_of_enum<
let largest_niche = Niche::from_scalar(dl, Size::ZERO, tag);
let combined_seed = layout_variants
.iter()
.map(|v| v.randomization_seed)
.fold(repr.field_shuffle_seed, |acc, seed| acc.wrapping_add(seed));
let tagged_layout = LayoutData {
variants: Variants::Multiple {
tag,
+5 -1
View File
@@ -143,6 +143,8 @@ pub fn uninhabited_variant<C: HasDataLayout>(cx: &C, index: VariantIdx, fields:
size: Size::ZERO,
max_repr_align: None,
unadjusted_abi_align: dl.i8_align,
// Variant layouts never flow back into actual layout computations,
// so dummy values are fine here.
randomization_seed: Hash64::ZERO,
}
}
@@ -167,7 +169,9 @@ pub fn for_variant(parent: &Self, index: VariantIdx) -> Self {
size: layout.size,
max_repr_align: layout.max_repr_align,
unadjusted_abi_align: layout.unadjusted_abi_align,
randomization_seed: layout.randomization_seed,
// Variant layouts never flow back into actual layout computations,
// so dummy values are fine here.
randomization_seed: Hash64::ZERO,
}
}
}
-2
View File
@@ -2333,7 +2333,6 @@ pub struct VariantLayout<FieldIdx: Idx> {
uninhabited: bool,
max_repr_align: Option<Align>,
unadjusted_abi_align: Align,
randomization_seed: Hash64,
}
impl<FieldIdx: Idx> VariantLayout<FieldIdx> {
@@ -2352,7 +2351,6 @@ pub fn from_layout(layout: LayoutData<FieldIdx, impl Idx>) -> Self {
uninhabited: layout.uninhabited,
max_repr_align: layout.max_repr_align,
unadjusted_abi_align: layout.unadjusted_abi_align,
randomization_seed: layout.randomization_seed,
}
}
@@ -56,7 +56,6 @@ error: layout_of(UnsignedAroundZero) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(2 bytes),
randomization_seed: 9885373149222004003,
},
VariantLayout {
size: Size(2 bytes),
@@ -72,7 +71,6 @@ error: layout_of(UnsignedAroundZero) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(2 bytes),
randomization_seed: 9885373149222004003,
},
VariantLayout {
size: Size(2 bytes),
@@ -88,7 +86,6 @@ error: layout_of(UnsignedAroundZero) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(2 bytes),
randomization_seed: 9885373149222004003,
},
],
},
@@ -159,7 +156,6 @@ error: layout_of(SignedAroundZero) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(2 bytes),
randomization_seed: 2684536712112553499,
},
VariantLayout {
size: Size(2 bytes),
@@ -175,7 +171,6 @@ error: layout_of(SignedAroundZero) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(2 bytes),
randomization_seed: 2684536712112553499,
},
VariantLayout {
size: Size(2 bytes),
@@ -191,7 +186,6 @@ error: layout_of(SignedAroundZero) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(2 bytes),
randomization_seed: 2684536712112553499,
},
],
},
-8
View File
@@ -72,7 +72,6 @@ error: layout_of(E) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(12 bytes),
@@ -96,7 +95,6 @@ error: layout_of(E) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -263,7 +261,6 @@ error: layout_of(Result<i32, i32>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(8 bytes),
@@ -296,7 +293,6 @@ error: layout_of(Result<i32, i32>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -656,7 +652,6 @@ error: layout_of(Option<bool>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(1 bytes),
@@ -691,7 +686,6 @@ error: layout_of(Option<bool>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -766,7 +760,6 @@ error: layout_of(Option<char>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(4 bytes),
@@ -801,7 +794,6 @@ error: layout_of(Option<char>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
-5
View File
@@ -56,7 +56,6 @@ error: layout_of(A) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -127,7 +126,6 @@ error: layout_of(B) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -198,7 +196,6 @@ error: layout_of(C) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(2 bytes),
randomization_seed: $SEED,
},
],
},
@@ -269,7 +266,6 @@ error: layout_of(P) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -340,7 +336,6 @@ error: layout_of(T) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -78,7 +78,6 @@ error: layout_of(MissingPayloadField) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(1 bytes),
@@ -94,7 +93,6 @@ error: layout_of(MissingPayloadField) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -189,7 +187,6 @@ error: layout_of(CommonPayloadField) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(2 bytes),
@@ -222,7 +219,6 @@ error: layout_of(CommonPayloadField) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -315,7 +311,6 @@ error: layout_of(CommonPayloadFieldIsMaybeUninit) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(2 bytes),
@@ -347,7 +342,6 @@ error: layout_of(CommonPayloadFieldIsMaybeUninit) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -456,7 +450,6 @@ error: layout_of(NicheFirst) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(0 bytes),
@@ -472,7 +465,6 @@ error: layout_of(NicheFirst) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(0 bytes),
@@ -488,7 +480,6 @@ error: layout_of(NicheFirst) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -597,7 +588,6 @@ error: layout_of(NicheSecond) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(0 bytes),
@@ -613,7 +603,6 @@ error: layout_of(NicheSecond) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(0 bytes),
@@ -629,7 +618,6 @@ error: layout_of(NicheSecond) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -52,7 +52,6 @@ error: layout_of(Aligned1) = Layout {
Align(8 bytes),
),
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(8 bytes),
@@ -70,7 +69,6 @@ error: layout_of(Aligned1) = Layout {
Align(8 bytes),
),
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -145,7 +143,6 @@ error: layout_of(Aligned2) = Layout {
Align(1 bytes),
),
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(1 bytes),
@@ -163,7 +160,6 @@ error: layout_of(Aligned2) = Layout {
Align(1 bytes),
),
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
-5
View File
@@ -56,7 +56,6 @@ error: layout_of(A) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -127,7 +126,6 @@ error: layout_of(B) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -198,7 +196,6 @@ error: layout_of(C) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(2 bytes),
randomization_seed: $SEED,
},
],
},
@@ -269,7 +266,6 @@ error: layout_of(P) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -340,7 +336,6 @@ error: layout_of(T) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -54,7 +54,6 @@ error: layout_of(Result<[u32; 0], bool>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(2 bytes),
@@ -83,7 +82,6 @@ error: layout_of(Result<[u32; 0], bool>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -152,7 +150,6 @@ error: layout_of(MultipleAlignments) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(2 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(4 bytes),
@@ -172,7 +169,6 @@ error: layout_of(MultipleAlignments) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(2 bytes),
@@ -201,7 +197,6 @@ error: layout_of(MultipleAlignments) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -270,7 +265,6 @@ error: layout_of(Result<[u32; 0], Packed<NonZero<u16>>>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(3 bytes),
@@ -299,7 +293,6 @@ error: layout_of(Result<[u32; 0], Packed<NonZero<u16>>>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -372,7 +365,6 @@ error: layout_of(Result<[u32; 0], Packed<U16IsZero>>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(2 bytes),
@@ -401,7 +393,6 @@ error: layout_of(Result<[u32; 0], Packed<U16IsZero>>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -66,7 +66,6 @@ error: layout_of(Univariant) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -159,7 +158,6 @@ error: layout_of(TwoVariants) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(8 bytes),
@@ -191,7 +189,6 @@ error: layout_of(TwoVariants) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -264,7 +261,6 @@ error: layout_of(DeadBranchHasOtherField) = Layout {
Align(8 bytes),
),
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(16 bytes),
@@ -284,7 +280,6 @@ error: layout_of(DeadBranchHasOtherField) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
],
},
@@ -66,7 +66,6 @@ error: layout_of(Univariant) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -159,7 +158,6 @@ error: layout_of(TwoVariants) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(2 bytes),
@@ -191,7 +189,6 @@ error: layout_of(TwoVariants) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -264,7 +261,6 @@ error: layout_of(DeadBranchHasOtherField) = Layout {
Align(8 bytes),
),
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(16 bytes),
@@ -284,7 +280,6 @@ error: layout_of(DeadBranchHasOtherField) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
],
},
@@ -66,7 +66,6 @@ error: layout_of(Univariant) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -159,7 +158,6 @@ error: layout_of(TwoVariants) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(8 bytes),
@@ -191,7 +189,6 @@ error: layout_of(TwoVariants) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -264,7 +261,6 @@ error: layout_of(DeadBranchHasOtherField) = Layout {
Align(8 bytes),
),
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(16 bytes),
@@ -284,7 +280,6 @@ error: layout_of(DeadBranchHasOtherField) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
],
},
@@ -66,7 +66,6 @@ error: layout_of(Univariant) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -159,7 +158,6 @@ error: layout_of(TwoVariants) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(8 bytes),
@@ -191,7 +189,6 @@ error: layout_of(TwoVariants) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -264,7 +261,6 @@ error: layout_of(DeadBranchHasOtherField) = Layout {
Align(8 bytes),
),
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(16 bytes),
@@ -284,7 +280,6 @@ error: layout_of(DeadBranchHasOtherField) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
],
},
@@ -66,7 +66,6 @@ error: layout_of(UnivariantU8) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -159,7 +158,6 @@ error: layout_of(TwoVariantsU8) = Layout {
uninhabited: true,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(2 bytes),
@@ -191,7 +189,6 @@ error: layout_of(TwoVariantsU8) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
],
},
@@ -264,7 +261,6 @@ error: layout_of(DeadBranchHasOtherFieldU8) = Layout {
Align(8 bytes),
),
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(16 bytes),
@@ -284,7 +280,6 @@ error: layout_of(DeadBranchHasOtherFieldU8) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
],
},
@@ -100,7 +100,6 @@ error: layout_of(Option<(*const ()) is !null>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(8 bytes),
@@ -137,7 +136,6 @@ error: layout_of(Option<(*const ()) is !null>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(8 bytes),
randomization_seed: $SEED,
},
],
},
@@ -141,7 +141,6 @@ error: layout_of(Option<(u32) is 1..>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(4 bytes),
@@ -176,7 +175,6 @@ error: layout_of(Option<(u32) is 1..>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},
@@ -242,7 +240,6 @@ error: layout_of(Option<NonZero<u32>>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(1 bytes),
randomization_seed: $SEED,
},
VariantLayout {
size: Size(4 bytes),
@@ -277,7 +274,6 @@ error: layout_of(Option<NonZero<u32>>) = Layout {
uninhabited: false,
max_repr_align: None,
unadjusted_abi_align: Align(4 bytes),
randomization_seed: $SEED,
},
],
},