diff --git a/mlir/include/mlir/Dialect/Affine/Passes.h b/mlir/include/mlir/Dialect/Affine/Passes.h --- a/mlir/include/mlir/Dialect/Affine/Passes.h +++ b/mlir/include/mlir/Dialect/Affine/Passes.h @@ -119,13 +119,6 @@ /// memory hierarchy. std::unique_ptr> createPipelineDataTransferPass(); -/// Creates a pass to vectorize loops, operations and data types using a -/// target-independent, n-D super-vector abstraction. -std::unique_ptr> -createSuperVectorizePass(ArrayRef virtualVectorSize); -/// Overload relying on pass options for initialization. -std::unique_ptr> createSuperVectorizePass(); - /// Populate patterns that expand affine index operations into more fundamental /// operations (not necessarily restricted to Affine dialect). void populateAffineExpandIndexOpsPatterns(RewritePatternSet &patterns); diff --git a/mlir/include/mlir/Dialect/Affine/Passes.td b/mlir/include/mlir/Dialect/Affine/Passes.td --- a/mlir/include/mlir/Dialect/Affine/Passes.td +++ b/mlir/include/mlir/Dialect/Affine/Passes.td @@ -344,7 +344,6 @@ def AffineVectorize : Pass<"affine-super-vectorize", "func::FuncOp"> { let summary = "Vectorize to a target independent n-D vector abstraction"; - let constructor = "mlir::createSuperVectorizePass()"; let dependentDialects = ["vector::VectorDialect"]; let options = [ ListOption<"vectorSizes", "virtual-vector-size", "int64_t", diff --git a/mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp b/mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp --- a/mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp +++ b/mlir/lib/Dialect/Affine/Transforms/SuperVectorize.cpp @@ -617,14 +617,16 @@ /// Command line arguments are preempted by non-empty pass arguments. struct Vectorize : public impl::AffineVectorizeBase { Vectorize() = default; - Vectorize(ArrayRef virtualVectorSize); + Vectorize(const AffineVectorizeOptions &options); void runOnOperation() override; }; } // namespace -Vectorize::Vectorize(ArrayRef virtualVectorSize) { - vectorSizes = virtualVectorSize; +Vectorize::Vectorize(const AffineVectorizeOptions &options) { + vectorSizes = options.vectorSizes; + vectorizeReductions = options.vectorizeReductions; + fastestVaryingPattern = options.fastestVaryingPattern; } static void vectorizeLoopIfProfitable(Operation *loop, unsigned depthInPattern, @@ -1717,14 +1719,6 @@ LLVM_DEBUG(dbgs() << "\n"); } -std::unique_ptr> -createSuperVectorizePass(ArrayRef virtualVectorSize) { - return std::make_unique(virtualVectorSize); -} -std::unique_ptr> createSuperVectorizePass() { - return std::make_unique(); -} - /// Applies vectorization to the current function by searching over a bunch of /// predetermined patterns. void Vectorize::runOnOperation() { @@ -1872,12 +1866,4 @@ return vectorizeLoopNest(loops, strategy); } -std::unique_ptr> -createSuperVectorizePass(ArrayRef virtualVectorSize) { - return std::make_unique(virtualVectorSize); -} -std::unique_ptr> createSuperVectorizePass() { - return std::make_unique(); -} - } // namespace mlir