[clang] cdc0573 - [MatrixBuilder] Remove unnecessary IRBuilder template (NFC)
Nikita Popov via cfe-commits
cfe-commits at lists.llvm.org
Mon Feb 7 07:42:50 PST 2022
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});
More information about the cfe-commits
mailing list