Skip to content

Commit 89e3bd3

Browse files
committed
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.
1 parent f4e8f99 commit 89e3bd3

17 files changed

Lines changed: 5 additions & 93 deletions

compiler/rustc_abi/src/layout.rs

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -649,6 +649,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
649649
let mut align = dl.aggregate_align;
650650
let mut max_repr_align = repr.align;
651651
let mut unadjusted_abi_align = align;
652+
let mut combined_seed = repr.field_shuffle_seed;
652653

653654
let mut variant_layouts = variants
654655
.iter()
@@ -658,6 +659,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
658659
align = align.max(st.align.abi);
659660
max_repr_align = max_repr_align.max(st.max_repr_align);
660661
unadjusted_abi_align = unadjusted_abi_align.max(st.unadjusted_abi_align);
662+
combined_seed = combined_seed.wrapping_add(st.randomization_seed);
661663

662664
Some(VariantLayout::from_layout(st))
663665
})
@@ -751,11 +753,6 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
751753
BackendRepr::Memory { sized: true }
752754
};
753755

754-
let combined_seed = variant_layouts
755-
.iter()
756-
.map(|v| v.randomization_seed)
757-
.fold(repr.field_shuffle_seed, |acc, seed| acc.wrapping_add(seed));
758-
759756
let layout = LayoutData {
760757
variants: Variants::Multiple {
761758
tag: niche_scalar,
@@ -848,6 +845,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
848845
let mut align = dl.aggregate_align;
849846
let mut max_repr_align = repr.align;
850847
let mut unadjusted_abi_align = align;
848+
let mut combined_seed = repr.field_shuffle_seed;
851849

852850
let mut size = Size::ZERO;
853851

@@ -891,6 +889,7 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
891889
align = align.max(st.align.abi);
892890
max_repr_align = max_repr_align.max(st.max_repr_align);
893891
unadjusted_abi_align = unadjusted_abi_align.max(st.unadjusted_abi_align);
892+
combined_seed = combined_seed.wrapping_add(st.randomization_seed);
894893
Ok(VariantLayout::from_layout(st))
895894
})
896895
.collect::<Result<IndexVec<VariantIdx, _>, _>>()?;
@@ -1091,11 +1090,6 @@ impl<Cx: HasDataLayout> LayoutCalculator<Cx> {
10911090

10921091
let largest_niche = Niche::from_scalar(dl, Size::ZERO, tag);
10931092

1094-
let combined_seed = layout_variants
1095-
.iter()
1096-
.map(|v| v.randomization_seed)
1097-
.fold(repr.field_shuffle_seed, |acc, seed| acc.wrapping_add(seed));
1098-
10991093
let tagged_layout = LayoutData {
11001094
variants: Variants::Multiple {
11011095
tag,

compiler/rustc_abi/src/layout/simple.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ impl<FieldIdx: Idx, VariantIdx: Idx> LayoutData<FieldIdx, VariantIdx> {
167167
size: layout.size,
168168
max_repr_align: layout.max_repr_align,
169169
unadjusted_abi_align: layout.unadjusted_abi_align,
170-
randomization_seed: layout.randomization_seed,
170+
randomization_seed: Hash64::ZERO,
171171
}
172172
}
173173
}

compiler/rustc_abi/src/lib.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2353,7 +2353,6 @@ pub struct VariantLayout<FieldIdx: Idx> {
23532353
uninhabited: bool,
23542354
max_repr_align: Option<Align>,
23552355
unadjusted_abi_align: Align,
2356-
randomization_seed: Hash64,
23572356
}
23582357

23592358
impl<FieldIdx: Idx> VariantLayout<FieldIdx> {
@@ -2372,7 +2371,6 @@ impl<FieldIdx: Idx> VariantLayout<FieldIdx> {
23722371
uninhabited: layout.uninhabited,
23732372
max_repr_align: layout.max_repr_align,
23742373
unadjusted_abi_align: layout.unadjusted_abi_align,
2375-
randomization_seed: layout.randomization_seed,
23762374
}
23772375
}
23782376

tests/ui/enum-discriminant/wrapping_niche.stderr

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ error: layout_of(UnsignedAroundZero) = Layout {
5656
uninhabited: false,
5757
max_repr_align: None,
5858
unadjusted_abi_align: Align(2 bytes),
59-
randomization_seed: 9885373149222004003,
6059
},
6160
VariantLayout {
6261
size: Size(2 bytes),
@@ -72,7 +71,6 @@ error: layout_of(UnsignedAroundZero) = Layout {
7271
uninhabited: false,
7372
max_repr_align: None,
7473
unadjusted_abi_align: Align(2 bytes),
75-
randomization_seed: 9885373149222004003,
7674
},
7775
VariantLayout {
7876
size: Size(2 bytes),
@@ -88,7 +86,6 @@ error: layout_of(UnsignedAroundZero) = Layout {
8886
uninhabited: false,
8987
max_repr_align: None,
9088
unadjusted_abi_align: Align(2 bytes),
91-
randomization_seed: 9885373149222004003,
9289
},
9390
],
9491
},
@@ -159,7 +156,6 @@ error: layout_of(SignedAroundZero) = Layout {
159156
uninhabited: false,
160157
max_repr_align: None,
161158
unadjusted_abi_align: Align(2 bytes),
162-
randomization_seed: 2684536712112553499,
163159
},
164160
VariantLayout {
165161
size: Size(2 bytes),
@@ -175,7 +171,6 @@ error: layout_of(SignedAroundZero) = Layout {
175171
uninhabited: false,
176172
max_repr_align: None,
177173
unadjusted_abi_align: Align(2 bytes),
178-
randomization_seed: 2684536712112553499,
179174
},
180175
VariantLayout {
181176
size: Size(2 bytes),
@@ -191,7 +186,6 @@ error: layout_of(SignedAroundZero) = Layout {
191186
uninhabited: false,
192187
max_repr_align: None,
193188
unadjusted_abi_align: Align(2 bytes),
194-
randomization_seed: 2684536712112553499,
195189
},
196190
],
197191
},

tests/ui/layout/debug.stderr

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ error: layout_of(E) = Layout {
7272
uninhabited: false,
7373
max_repr_align: None,
7474
unadjusted_abi_align: Align(1 bytes),
75-
randomization_seed: $SEED,
7675
},
7776
VariantLayout {
7877
size: Size(12 bytes),
@@ -96,7 +95,6 @@ error: layout_of(E) = Layout {
9695
uninhabited: true,
9796
max_repr_align: None,
9897
unadjusted_abi_align: Align(4 bytes),
99-
randomization_seed: $SEED,
10098
},
10199
],
102100
},
@@ -263,7 +261,6 @@ error: layout_of(Result<i32, i32>) = Layout {
263261
uninhabited: false,
264262
max_repr_align: None,
265263
unadjusted_abi_align: Align(4 bytes),
266-
randomization_seed: $SEED,
267264
},
268265
VariantLayout {
269266
size: Size(8 bytes),
@@ -296,7 +293,6 @@ error: layout_of(Result<i32, i32>) = Layout {
296293
uninhabited: false,
297294
max_repr_align: None,
298295
unadjusted_abi_align: Align(4 bytes),
299-
randomization_seed: $SEED,
300296
},
301297
],
302298
},
@@ -656,7 +652,6 @@ error: layout_of(Option<bool>) = Layout {
656652
uninhabited: false,
657653
max_repr_align: None,
658654
unadjusted_abi_align: Align(1 bytes),
659-
randomization_seed: $SEED,
660655
},
661656
VariantLayout {
662657
size: Size(1 bytes),
@@ -691,7 +686,6 @@ error: layout_of(Option<bool>) = Layout {
691686
uninhabited: false,
692687
max_repr_align: None,
693688
unadjusted_abi_align: Align(1 bytes),
694-
randomization_seed: $SEED,
695689
},
696690
],
697691
},
@@ -766,7 +760,6 @@ error: layout_of(Option<char>) = Layout {
766760
uninhabited: false,
767761
max_repr_align: None,
768762
unadjusted_abi_align: Align(1 bytes),
769-
randomization_seed: $SEED,
770763
},
771764
VariantLayout {
772765
size: Size(4 bytes),
@@ -801,7 +794,6 @@ error: layout_of(Option<char>) = Layout {
801794
uninhabited: false,
802795
max_repr_align: None,
803796
unadjusted_abi_align: Align(4 bytes),
804-
randomization_seed: $SEED,
805797
},
806798
],
807799
},

tests/ui/layout/hexagon-enum.stderr

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ error: layout_of(A) = Layout {
5656
uninhabited: false,
5757
max_repr_align: None,
5858
unadjusted_abi_align: Align(1 bytes),
59-
randomization_seed: $SEED,
6059
},
6160
],
6261
},
@@ -127,7 +126,6 @@ error: layout_of(B) = Layout {
127126
uninhabited: false,
128127
max_repr_align: None,
129128
unadjusted_abi_align: Align(1 bytes),
130-
randomization_seed: $SEED,
131129
},
132130
],
133131
},
@@ -198,7 +196,6 @@ error: layout_of(C) = Layout {
198196
uninhabited: false,
199197
max_repr_align: None,
200198
unadjusted_abi_align: Align(2 bytes),
201-
randomization_seed: $SEED,
202199
},
203200
],
204201
},
@@ -269,7 +266,6 @@ error: layout_of(P) = Layout {
269266
uninhabited: false,
270267
max_repr_align: None,
271268
unadjusted_abi_align: Align(4 bytes),
272-
randomization_seed: $SEED,
273269
},
274270
],
275271
},
@@ -340,7 +336,6 @@ error: layout_of(T) = Layout {
340336
uninhabited: false,
341337
max_repr_align: None,
342338
unadjusted_abi_align: Align(4 bytes),
343-
randomization_seed: $SEED,
344339
},
345340
],
346341
},

tests/ui/layout/issue-96158-scalarpair-payload-might-be-uninit.stderr

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ error: layout_of(MissingPayloadField) = Layout {
7878
uninhabited: false,
7979
max_repr_align: None,
8080
unadjusted_abi_align: Align(1 bytes),
81-
randomization_seed: $SEED,
8281
},
8382
VariantLayout {
8483
size: Size(1 bytes),
@@ -94,7 +93,6 @@ error: layout_of(MissingPayloadField) = Layout {
9493
uninhabited: false,
9594
max_repr_align: None,
9695
unadjusted_abi_align: Align(1 bytes),
97-
randomization_seed: $SEED,
9896
},
9997
],
10098
},
@@ -189,7 +187,6 @@ error: layout_of(CommonPayloadField) = Layout {
189187
uninhabited: false,
190188
max_repr_align: None,
191189
unadjusted_abi_align: Align(1 bytes),
192-
randomization_seed: $SEED,
193190
},
194191
VariantLayout {
195192
size: Size(2 bytes),
@@ -222,7 +219,6 @@ error: layout_of(CommonPayloadField) = Layout {
222219
uninhabited: false,
223220
max_repr_align: None,
224221
unadjusted_abi_align: Align(1 bytes),
225-
randomization_seed: $SEED,
226222
},
227223
],
228224
},
@@ -315,7 +311,6 @@ error: layout_of(CommonPayloadFieldIsMaybeUninit) = Layout {
315311
uninhabited: false,
316312
max_repr_align: None,
317313
unadjusted_abi_align: Align(1 bytes),
318-
randomization_seed: $SEED,
319314
},
320315
VariantLayout {
321316
size: Size(2 bytes),
@@ -347,7 +342,6 @@ error: layout_of(CommonPayloadFieldIsMaybeUninit) = Layout {
347342
uninhabited: false,
348343
max_repr_align: None,
349344
unadjusted_abi_align: Align(1 bytes),
350-
randomization_seed: $SEED,
351345
},
352346
],
353347
},
@@ -456,7 +450,6 @@ error: layout_of(NicheFirst) = Layout {
456450
uninhabited: false,
457451
max_repr_align: None,
458452
unadjusted_abi_align: Align(1 bytes),
459-
randomization_seed: $SEED,
460453
},
461454
VariantLayout {
462455
size: Size(0 bytes),
@@ -472,7 +465,6 @@ error: layout_of(NicheFirst) = Layout {
472465
uninhabited: false,
473466
max_repr_align: None,
474467
unadjusted_abi_align: Align(1 bytes),
475-
randomization_seed: $SEED,
476468
},
477469
VariantLayout {
478470
size: Size(0 bytes),
@@ -488,7 +480,6 @@ error: layout_of(NicheFirst) = Layout {
488480
uninhabited: false,
489481
max_repr_align: None,
490482
unadjusted_abi_align: Align(1 bytes),
491-
randomization_seed: $SEED,
492483
},
493484
],
494485
},
@@ -597,7 +588,6 @@ error: layout_of(NicheSecond) = Layout {
597588
uninhabited: false,
598589
max_repr_align: None,
599590
unadjusted_abi_align: Align(1 bytes),
600-
randomization_seed: $SEED,
601591
},
602592
VariantLayout {
603593
size: Size(0 bytes),
@@ -613,7 +603,6 @@ error: layout_of(NicheSecond) = Layout {
613603
uninhabited: false,
614604
max_repr_align: None,
615605
unadjusted_abi_align: Align(1 bytes),
616-
randomization_seed: $SEED,
617606
},
618607
VariantLayout {
619608
size: Size(0 bytes),
@@ -629,7 +618,6 @@ error: layout_of(NicheSecond) = Layout {
629618
uninhabited: false,
630619
max_repr_align: None,
631620
unadjusted_abi_align: Align(1 bytes),
632-
randomization_seed: $SEED,
633621
},
634622
],
635623
},

tests/ui/layout/issue-96185-overaligned-enum.stderr

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@ error: layout_of(Aligned1) = Layout {
5252
Align(8 bytes),
5353
),
5454
unadjusted_abi_align: Align(1 bytes),
55-
randomization_seed: $SEED,
5655
},
5756
VariantLayout {
5857
size: Size(8 bytes),
@@ -70,7 +69,6 @@ error: layout_of(Aligned1) = Layout {
7069
Align(8 bytes),
7170
),
7271
unadjusted_abi_align: Align(1 bytes),
73-
randomization_seed: $SEED,
7472
},
7573
],
7674
},
@@ -145,7 +143,6 @@ error: layout_of(Aligned2) = Layout {
145143
Align(1 bytes),
146144
),
147145
unadjusted_abi_align: Align(1 bytes),
148-
randomization_seed: $SEED,
149146
},
150147
VariantLayout {
151148
size: Size(1 bytes),
@@ -163,7 +160,6 @@ error: layout_of(Aligned2) = Layout {
163160
Align(1 bytes),
164161
),
165162
unadjusted_abi_align: Align(1 bytes),
166-
randomization_seed: $SEED,
167163
},
168164
],
169165
},

0 commit comments

Comments
 (0)