Skip to content

Commit b523a5a

Browse files
committed
factorize out the logic about bounded bitwidth
1 parent f0a59c4 commit b523a5a

File tree

4 files changed

+170
-154
lines changed

4 files changed

+170
-154
lines changed

mlir/include/mlir/Dialect/Vector/Transforms/VectorRewritePatterns.h

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -392,18 +392,24 @@ void populateVectorNarrowTypeRewritePatterns(RewritePatternSet &patterns,
392392
void populateVectorTransposeNarrowTypeRewritePatterns(
393393
RewritePatternSet &patterns, PatternBenefit benefit = 1);
394394

395-
/// Populates patterns for ND vectors (N >= 2) linearization and sets up the
396-
/// provided ConversionTarget with the appropriate legality configuration for
397-
/// the ops to get converted properly.
398-
void populateVectorLinearizeTypeConversionsAndLegality(
399-
TypeConverter &typeConverter, RewritePatternSet &patterns,
400-
ConversionTarget &target, unsigned targetBitWidth);
401-
402-
/// Populates patterns for linearizing ND (N >= 2) vector operations to 1D
403-
/// vector shuffle operations.
404-
void populateVectorLinearizeShuffleLikeOpsPatterns(
405-
const TypeConverter &typeConverter, RewritePatternSet &patterns,
406-
ConversionTarget &target, unsigned targetBitWidth);
395+
/// Populate `typeConverter` and `conversionTarget` with the definition of
396+
/// legal types and operations, for the specific case where vectors with
397+
/// trailing dimensions of size greater than `targetBitWidth` are legal.
398+
void populateVectorLinearizeBitWidthTargetAndConverter(
399+
TypeConverter &typeConverter, ConversionTarget &conversionTarget,
400+
unsigned targetBitWidth);
401+
402+
/// Populates `patterns` for ND vector (N >= 2) linearization. Patterns for
403+
/// converting ConstantLike, Vectorizable, and vector::BitCast.
404+
void populateVectorLinearizeBasePatterns(const TypeConverter &,
405+
RewritePatternSet &patterns,
406+
const ConversionTarget &);
407+
408+
/// Populates `patterns` for linearizing ND (N >= 2) vector operations
409+
/// to 1D vector shuffle operations.
410+
void populateVectorLinearizeShuffleLikeOpsPatterns(const TypeConverter &,
411+
RewritePatternSet &patterns,
412+
const ConversionTarget &);
407413

408414
} // namespace vector
409415
} // namespace mlir

0 commit comments

Comments
 (0)