diff --git a/build_tools/llvm_version.txt b/build_tools/llvm_version.txt index 92775eb2b..b1c947181 100644 --- a/build_tools/llvm_version.txt +++ b/build_tools/llvm_version.txt @@ -1 +1 @@ -a99e055030f0da61651e808cbb208bb39594cdc0 +faf5d747f174cc9d714839f0d3bce1a783eac2ac diff --git a/lib/TPP/Runner/MLIRBench.cpp b/lib/TPP/Runner/MLIRBench.cpp index 64bd992ad..ff7e765f5 100644 --- a/lib/TPP/Runner/MLIRBench.cpp +++ b/lib/TPP/Runner/MLIRBench.cpp @@ -388,7 +388,7 @@ LogicalResult MLIRBench::printResult(Operation *kernelCall) { if (isa(result.getType())) { result = - builder.create(unkLoc, memrefType, result); + builder.create(unkLoc, memrefType, result); } auto outBuf = builder.create(unkLoc, memrefType); diff --git a/lib/TPP/Transforms/BrgemmLinalgTiling.cpp b/lib/TPP/Transforms/BrgemmLinalgTiling.cpp index 90fc808e1..40f0251ff 100644 --- a/lib/TPP/Transforms/BrgemmLinalgTiling.cpp +++ b/lib/TPP/Transforms/BrgemmLinalgTiling.cpp @@ -202,7 +202,7 @@ struct BrgemmLinalgTiling RewritePatternSet patterns(&getContext()); populateBrgemmLinalgTilingPatterns(patterns, options); GreedyRewriteConfig config; - config.strictMode = GreedyRewriteStrictness::ExistingOps; + config.setStrictness(GreedyRewriteStrictness::ExistingOps); (void)applyPatternsGreedily(getOperation(), std::move(patterns), config); } diff --git a/lib/TPP/Transforms/HoistVectorTransfers.cpp b/lib/TPP/Transforms/HoistVectorTransfers.cpp index d6dd2f459..765783cf2 100644 --- a/lib/TPP/Transforms/HoistVectorTransfers.cpp +++ b/lib/TPP/Transforms/HoistVectorTransfers.cpp @@ -250,7 +250,7 @@ struct HoistVectorTransfers RewritePatternSet patterns(&getContext()); populateHoistVectorTransferPatterns(patterns); GreedyRewriteConfig config; - config.strictMode = GreedyRewriteStrictness::ExistingOps; + config.setStrictness(GreedyRewriteStrictness::ExistingOps); (void)applyPatternsGreedily(getOperation(), std::move(patterns), config); } }; diff --git a/lib/TPP/Transforms/SplitReductionDim.cpp b/lib/TPP/Transforms/SplitReductionDim.cpp index ecc2e3e22..edba1bf66 100644 --- a/lib/TPP/Transforms/SplitReductionDim.cpp +++ b/lib/TPP/Transforms/SplitReductionDim.cpp @@ -103,7 +103,7 @@ struct SplitReductionDim RewritePatternSet patterns(ctx); patterns.add(ctx, options); GreedyRewriteConfig config; - config.strictMode = GreedyRewriteStrictness::ExistingOps; + config.setStrictness(GreedyRewriteStrictness::ExistingOps); (void)applyPatternsGreedily(getOperation(), std::move(patterns), config); } }; diff --git a/lib/TPP/Transforms/VectorContractToAMX.cpp b/lib/TPP/Transforms/VectorContractToAMX.cpp index c0a660132..9355c43d8 100644 --- a/lib/TPP/Transforms/VectorContractToAMX.cpp +++ b/lib/TPP/Transforms/VectorContractToAMX.cpp @@ -392,7 +392,7 @@ struct VectorContractToAMXPattern int64_t M = accType.getDimSize(0); int64_t N = accType.getDimSize(1); - auto accSubview = accDefiningOp.getSource(); + auto accSubview = accDefiningOp.getBase(); Location loc = op.getLoc(); scf::ForOp insertAt = getOutermostLoopWithIterargAccumulator(ctx.innerForOp, acc); @@ -472,14 +472,14 @@ struct VectorContractToAMXPattern // Update index of LHS matrix subview for batch dimension if corresponding // loop is needed. if (iv) - mapping.map(lhsDefiningOp.getSource().getDefiningOp()->getOperand(1), + mapping.map(lhsDefiningOp.getBase().getDefiningOp()->getOperand(1), iv); // Update index of LHS matrix subview for K dimension. mapping.map( - lhsDefiningOp.getSource().getDefiningOp()->getOperand(iv ? 3 : 1), + lhsDefiningOp.getBase().getDefiningOp()->getOperand(iv ? 3 : 1), innerIv); auto lhsClone = innerBuilder.clone( - *lhsDefiningOp.getSource().getDefiningOp(), mapping); + *lhsDefiningOp.getBase().getDefiningOp(), mapping); // Load matrix A tile SmallVector aLoadTiles = createTileLoads(innerBuilder, loc, amxInputTilesOf16x32xBf16Ty, @@ -489,14 +489,14 @@ struct VectorContractToAMXPattern // Update index of LHS matrix subview for batch dimension if corresponding // loop is needed. if (iv) - rhsMapping.map(rhsDefiningOp.getSource().getDefiningOp()->getOperand(1), + rhsMapping.map(rhsDefiningOp.getBase().getDefiningOp()->getOperand(1), iv); // Update index of LHS matrix subview for K dimension. rhsMapping.map( - rhsDefiningOp.getSource().getDefiningOp()->getOperand(iv ? 2 : 1), + rhsDefiningOp.getBase().getDefiningOp()->getOperand(iv ? 2 : 1), innerIv); auto rhsClone = innerBuilder.clone( - *rhsDefiningOp.getSource().getDefiningOp(), rhsMapping); + *rhsDefiningOp.getBase().getDefiningOp(), rhsMapping); // Load matrix B tile, vnni factor and N tile size will be collapsed as // effective tilse size. SmallVector bLoadTiles = diff --git a/lib/TPP/Transforms/VectorContractToBF16DotProduct.cpp b/lib/TPP/Transforms/VectorContractToBF16DotProduct.cpp index 6e8266696..0ef4c9667 100644 --- a/lib/TPP/Transforms/VectorContractToBF16DotProduct.cpp +++ b/lib/TPP/Transforms/VectorContractToBF16DotProduct.cpp @@ -402,13 +402,13 @@ struct BF16DotProductOp : OpRewritePattern { Value ivNewKForOp, ValueRange iterArgsNewKForOp) { IRMapping mapping; mapping.map( - vectorReadOpLhs.getSource().getDefiningOp()->getOperand(1), + vectorReadOpLhs.getBase().getDefiningOp()->getOperand(1), ivNewReductionForOp); mapping.map( - vectorReadOpLhs.getSource().getDefiningOp()->getOperand(3), + vectorReadOpLhs.getBase().getDefiningOp()->getOperand(3), ivNewKForOp); auto lhsClone = rewriterNewKForOp.clone( - *vectorReadOpLhs.getSource().getDefiningOp(), mapping); + *vectorReadOpLhs.getBase().getDefiningOp(), mapping); // Memory access for A Matrix into <32xbf16> llvm::SmallVector vectorA; @@ -440,13 +440,13 @@ struct BF16DotProductOp : OpRewritePattern { IRMapping rhsMapping; rhsMapping.map( - vectorReadOpRhs.getSource().getDefiningOp()->getOperand(1), - ivNewReductionForOp); + vectorReadOpRhs.getBase().getDefiningOp()->getOperand(1), + ivNewReductionForOp); rhsMapping.map( - vectorReadOpRhs.getSource().getDefiningOp()->getOperand(2), + vectorReadOpRhs.getBase().getDefiningOp()->getOperand(2), ivNewKForOp); auto rhsClone = rewriterNewKForOp.clone( - *vectorReadOpRhs.getSource().getDefiningOp(), rhsMapping); + *vectorReadOpRhs.getBase().getDefiningOp(), rhsMapping); // Memory access for B Matrix into <32xbf16> llvm::SmallVector vectorB; @@ -516,7 +516,7 @@ struct BF16DotProduct : public impl::BF16DotProductBase { RewritePatternSet patterns(&getContext()); populateBF16DotProductPatterns(patterns); GreedyRewriteConfig config; - config.strictMode = GreedyRewriteStrictness::ExistingOps; + config.setStrictness(GreedyRewriteStrictness::ExistingOps); (void)applyPatternsGreedily(getOperation(), std::move(patterns), config); } }; diff --git a/lib/TPP/Transforms/VectorContractToFMA.cpp b/lib/TPP/Transforms/VectorContractToFMA.cpp index 6bb274df8..ff38e6d84 100644 --- a/lib/TPP/Transforms/VectorContractToFMA.cpp +++ b/lib/TPP/Transforms/VectorContractToFMA.cpp @@ -245,7 +245,7 @@ struct VectorContractToFMAPattern if (K != 1) return failure(); - auto accSubview = accDefiningOp.getSource(); + auto accSubview = accDefiningOp.getBase(); Location loc = op.getLoc(); // Create M different <1xN> subviews. @@ -295,13 +295,13 @@ struct VectorContractToFMAPattern ValueRange innerIterArgs) { IRMapping mapping; mapping.map( - lhsDefiningOp.getSource().getDefiningOp()->getOperand(1), + lhsDefiningOp.getBase().getDefiningOp()->getOperand(1), iv); mapping.map( - lhsDefiningOp.getSource().getDefiningOp()->getOperand(3), + lhsDefiningOp.getBase().getDefiningOp()->getOperand(3), innerIv); auto lhsClone = innerBuilder.clone( - *lhsDefiningOp.getSource().getDefiningOp(), mapping); + *lhsDefiningOp.getBase().getDefiningOp(), mapping); // Load and broadcast individual elements SmallVector broadcasts; @@ -319,13 +319,13 @@ struct VectorContractToFMAPattern IRMapping rhsMapping; rhsMapping.map( - rhsDefiningOp.getSource().getDefiningOp()->getOperand(1), + rhsDefiningOp.getBase().getDefiningOp()->getOperand(1), iv); rhsMapping.map( - rhsDefiningOp.getSource().getDefiningOp()->getOperand(2), + rhsDefiningOp.getBase().getDefiningOp()->getOperand(2), innerIv); auto rhsClone = innerBuilder.clone( - *rhsDefiningOp.getSource().getDefiningOp(), rhsMapping); + *rhsDefiningOp.getBase().getDefiningOp(), rhsMapping); auto rowVec = innerBuilder.create( loc, VectorType::get({N}, elementType), rhsClone->getResult(0), ValueRange{c0, c0, c0}); diff --git a/lib/TPP/Transforms/VectorContractToOuterproduct.cpp b/lib/TPP/Transforms/VectorContractToOuterproduct.cpp index 858e8a261..edc5bc143 100644 --- a/lib/TPP/Transforms/VectorContractToOuterproduct.cpp +++ b/lib/TPP/Transforms/VectorContractToOuterproduct.cpp @@ -230,8 +230,8 @@ struct VectorContractToOuterproductPattern nestedBuilder.getContext()); } - Value lhsTensor = lhsDefiningOp.getSource(); - Value rhsTensor = rhsDefiningOp.getSource(); + Value lhsTensor = lhsDefiningOp.getBase(); + Value rhsTensor = rhsDefiningOp.getBase(); // Read vector slices using TransferReadOp auto lhsSlice = nestedBuilder.create( nestedLoc, VectorType::get({M}, lhsType.getElementType()),