@@ -267,8 +267,7 @@ struct VPTransformState {
267
267
// vector value in the map.
268
268
DenseMap<VPValue *, Value *> VPV2Vector;
269
269
270
- using ScalarsPerPartValuesTy = SmallVector<SmallVector<Value *, 4 >, 2 >;
271
- DenseMap<VPValue *, ScalarsPerPartValuesTy> PerPartScalars;
270
+ DenseMap<VPValue *, SmallVector<Value *, 4 >> VPV2Scalars;
272
271
} Data;
273
272
274
273
// / Get the generated vector Value for a given VPValue \p Def if \p IsScalar
@@ -281,13 +280,11 @@ struct VPTransformState {
281
280
bool hasVectorValue (VPValue *Def) { return Data.VPV2Vector .contains (Def); }
282
281
283
282
bool hasScalarValue (VPValue *Def, VPIteration Instance) {
284
- auto I = Data.PerPartScalars .find (Def);
285
- if (I == Data.PerPartScalars .end ())
283
+ auto I = Data.VPV2Scalars .find (Def);
284
+ if (I == Data.VPV2Scalars .end ())
286
285
return false ;
287
286
unsigned CacheIdx = Instance.Lane .mapToCacheIndex (VF);
288
- return Instance.Part < I->second .size () &&
289
- CacheIdx < I->second [Instance.Part ].size () &&
290
- I->second [Instance.Part ][CacheIdx];
287
+ return CacheIdx < I->second .size () && I->second [CacheIdx];
291
288
}
292
289
293
290
// / Set the generated vector Value for a given VPValue, if \p
@@ -310,11 +307,8 @@ struct VPTransformState {
310
307
311
308
// / Set the generated scalar \p V for \p Def and the given \p Instance.
312
309
void set (VPValue *Def, Value *V, const VPIteration &Instance) {
313
- auto Iter = Data.PerPartScalars .insert ({Def, {}});
314
- auto &PerPartVec = Iter.first ->second ;
315
- if (PerPartVec.size () <= Instance.Part )
316
- PerPartVec.resize (Instance.Part + 1 );
317
- auto &Scalars = PerPartVec[Instance.Part ];
310
+ auto Iter = Data.VPV2Scalars .insert ({Def, {}});
311
+ auto &Scalars = Iter.first ->second ;
318
312
unsigned CacheIdx = Instance.Lane .mapToCacheIndex (VF);
319
313
if (Scalars.size () <= CacheIdx)
320
314
Scalars.resize (CacheIdx + 1 );
@@ -324,15 +318,13 @@ struct VPTransformState {
324
318
325
319
// / Reset an existing scalar value for \p Def and a given \p Instance.
326
320
void reset (VPValue *Def, Value *V, const VPIteration &Instance) {
327
- auto Iter = Data.PerPartScalars .find (Def);
328
- assert (Iter != Data.PerPartScalars .end () &&
329
- " need to overwrite existing value" );
330
- assert (Instance.Part < Iter->second .size () &&
321
+ auto Iter = Data.VPV2Scalars .find (Def);
322
+ assert (Iter != Data.VPV2Scalars .end () &&
331
323
" need to overwrite existing value" );
332
324
unsigned CacheIdx = Instance.Lane .mapToCacheIndex (VF);
333
- assert (CacheIdx < Iter->second [Instance. Part ] .size () &&
325
+ assert (CacheIdx < Iter->second .size () &&
334
326
" need to overwrite existing value" );
335
- Iter->second [Instance. Part ][ CacheIdx] = V;
327
+ Iter->second [CacheIdx] = V;
336
328
}
337
329
338
330
// / Add additional metadata to \p To that was not present on \p Orig.
0 commit comments