Author: Nikita Popov Date: 2022-02-07T16:42:38+01:00 New Revision: cdc0573f753e639ed78f2a3645179ac2d2718fd0
URL: https://github.com/llvm/llvm-project/commit/cdc0573f753e639ed78f2a3645179ac2d2718fd0 DIFF: https://github.com/llvm/llvm-project/commit/cdc0573f753e639ed78f2a3645179ac2d2718fd0.diff LOG: [MatrixBuilder] Remove unnecessary IRBuilder template (NFC) IRBuilderBase exists specifically to avoid the need for this. Added: Modified: clang/lib/CodeGen/CGBuiltin.cpp clang/lib/CodeGen/CGExpr.cpp clang/lib/CodeGen/CGExprScalar.cpp llvm/include/llvm/IR/MatrixBuilder.h llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp Removed: ################################################################################ diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index a3905e0ea4105..9ed19af901b08 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -3231,14 +3231,14 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID, case Builtin::BI__builtin_matrix_transpose: { auto *MatrixTy = E->getArg(0)->getType()->castAs<ConstantMatrixType>(); Value *MatValue = EmitScalarExpr(E->getArg(0)); - MatrixBuilder<CGBuilderTy> MB(Builder); + MatrixBuilder MB(Builder); Value *Result = MB.CreateMatrixTranspose(MatValue, MatrixTy->getNumRows(), MatrixTy->getNumColumns()); return RValue::get(Result); } case Builtin::BI__builtin_matrix_column_major_load: { - MatrixBuilder<CGBuilderTy> MB(Builder); + MatrixBuilder MB(Builder); // Emit everything that isn't dependent on the first parameter type Value *Stride = EmitScalarExpr(E->getArg(3)); const auto *ResultTy = E->getType()->getAs<ConstantMatrixType>(); @@ -3257,7 +3257,7 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID, } case Builtin::BI__builtin_matrix_column_major_store: { - MatrixBuilder<CGBuilderTy> MB(Builder); + MatrixBuilder MB(Builder); Value *Matrix = EmitScalarExpr(E->getArg(0)); Address Dst = EmitPointerWithAlignment(E->getArg(1)); Value *Stride = EmitScalarExpr(E->getArg(2)); diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index bb5d18b748947..4565f4343aa34 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -1932,7 +1932,7 @@ RValue CodeGenFunction::EmitLoadOfLValue(LValue LV, SourceLocation Loc) { llvm::Value *Idx = LV.getMatrixIdx(); if (CGM.getCodeGenOpts().OptimizationLevel > 0) { const auto *const MatTy = LV.getType()->castAs<ConstantMatrixType>(); - llvm::MatrixBuilder<CGBuilderTy> MB(Builder); + llvm::MatrixBuilder MB(Builder); MB.CreateIndexAssumption(Idx, MatTy->getNumElementsFlattened()); } llvm::LoadInst *Load = @@ -2078,7 +2078,7 @@ void CodeGenFunction::EmitStoreThroughLValue(RValue Src, LValue Dst, llvm::Value *Idx = Dst.getMatrixIdx(); if (CGM.getCodeGenOpts().OptimizationLevel > 0) { const auto *const MatTy = Dst.getType()->castAs<ConstantMatrixType>(); - llvm::MatrixBuilder<CGBuilderTy> MB(Builder); + llvm::MatrixBuilder MB(Builder); MB.CreateIndexAssumption(Idx, MatTy->getNumElementsFlattened()); } llvm::Instruction *Load = Builder.CreateLoad(Dst.getMatrixAddress()); diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp index 4e8933fffe03b..705e50b58324a 100644 --- a/clang/lib/CodeGen/CGExprScalar.cpp +++ b/clang/lib/CodeGen/CGExprScalar.cpp @@ -731,7 +731,7 @@ class ScalarExprEmitter } if (Ops.Ty->isConstantMatrixType()) { - llvm::MatrixBuilder<CGBuilderTy> MB(Builder); + llvm::MatrixBuilder MB(Builder); // We need to check the types of the operands of the operator to get the // correct matrix dimensions. auto *BO = cast<BinaryOperator>(Ops.E); @@ -1795,7 +1795,7 @@ Value *ScalarExprEmitter::VisitMatrixSubscriptExpr(MatrixSubscriptExpr *E) { const auto *MatrixTy = E->getBase()->getType()->castAs<ConstantMatrixType>(); unsigned NumRows = MatrixTy->getNumRows(); - llvm::MatrixBuilder<CGBuilderTy> MB(Builder); + llvm::MatrixBuilder MB(Builder); Value *Idx = MB.CreateIndex(RowIdx, ColumnIdx, NumRows); if (CGF.CGM.getCodeGenOpts().OptimizationLevel > 0) MB.CreateIndexAssumption(Idx, MatrixTy->getNumElementsFlattened()); @@ -3263,7 +3263,7 @@ Value *ScalarExprEmitter::EmitDiv(const BinOpInfo &Ops) { } if (Ops.Ty->isConstantMatrixType()) { - llvm::MatrixBuilder<CGBuilderTy> MB(Builder); + llvm::MatrixBuilder MB(Builder); // We need to check the types of the operands of the operator to get the // correct matrix dimensions. auto *BO = cast<BinaryOperator>(Ops.E); @@ -3657,7 +3657,7 @@ Value *ScalarExprEmitter::EmitAdd(const BinOpInfo &op) { } if (op.Ty->isConstantMatrixType()) { - llvm::MatrixBuilder<CGBuilderTy> MB(Builder); + llvm::MatrixBuilder MB(Builder); CodeGenFunction::CGFPOptionsRAII FPOptsRAII(CGF, op.FPFeatures); return MB.CreateAdd(op.LHS, op.RHS); } @@ -3807,7 +3807,7 @@ Value *ScalarExprEmitter::EmitSub(const BinOpInfo &op) { } if (op.Ty->isConstantMatrixType()) { - llvm::MatrixBuilder<CGBuilderTy> MB(Builder); + llvm::MatrixBuilder MB(Builder); CodeGenFunction::CGFPOptionsRAII FPOptsRAII(CGF, op.FPFeatures); return MB.CreateSub(op.LHS, op.RHS); } diff --git a/llvm/include/llvm/IR/MatrixBuilder.h b/llvm/include/llvm/IR/MatrixBuilder.h index 4c8286692ebf3..cbecc6eab4f58 100644 --- a/llvm/include/llvm/IR/MatrixBuilder.h +++ b/llvm/include/llvm/IR/MatrixBuilder.h @@ -30,8 +30,8 @@ class Function; class Twine; class Module; -template <class IRBuilderTy> class MatrixBuilder { - IRBuilderTy &B; +class MatrixBuilder { + IRBuilderBase &B; Module *getModule() { return B.GetInsertBlock()->getParent()->getParent(); } std::pair<Value *, Value *> splatScalarOperandIfNeeded(Value *LHS, @@ -55,7 +55,7 @@ template <class IRBuilderTy> class MatrixBuilder { } public: - MatrixBuilder(IRBuilderTy &Builder) : B(Builder) {} + MatrixBuilder(IRBuilderBase &Builder) : B(Builder) {} /// Create a column major, strided matrix load. /// \p DataPtr - Start address of the matrix read diff --git a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp index 296becb31e8f1..854cea9d8ab1e 100644 --- a/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp +++ b/llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp @@ -718,7 +718,7 @@ class LowerMatrixIntrinsics { Instruction *NewInst = nullptr; IRBuilder<> IB(&I); - MatrixBuilder<IRBuilder<>> Builder(IB); + MatrixBuilder Builder(IB); Value *TA, *TAMA, *TAMB; ConstantInt *R, *K, *C; @@ -779,7 +779,7 @@ class LowerMatrixIntrinsics { match(A, m_Intrinsic<Intrinsic::matrix_transpose>(m_Value(AT))) && match(B, m_Intrinsic<Intrinsic::matrix_transpose>(m_Value((BT))))) { IRBuilder<> IB(&*I); - MatrixBuilder<IRBuilder<>> Builder(IB); + MatrixBuilder Builder(IB); Value *M = Builder.CreateMatrixMultiply( BT, AT, C->getZExtValue(), K->getZExtValue(), R->getZExtValue()); setShapeInfo(M, {C, R}); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits