diff --git a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp index 40364b5a41de7..d4da8695e9a4d 100644 --- a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp @@ -1047,14 +1047,13 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) { auto Idx = Node->getConstantOperandVal(2); MVT SubVecVT = SubV.getSimpleValueType(); + const RISCVTargetLowering &TLI = *Subtarget->getTargetLowering(); MVT SubVecContainerVT = SubVecVT; // Establish the correct scalable-vector types for any fixed-length type. if (SubVecVT.isFixedLengthVector()) - SubVecContainerVT = RISCVTargetLowering::getContainerForFixedLengthVector( - *CurDAG, SubVecVT, *Subtarget); + SubVecContainerVT = TLI.getContainerForFixedLengthVector(SubVecVT); if (VT.isFixedLengthVector()) - VT = RISCVTargetLowering::getContainerForFixedLengthVector(*CurDAG, VT, - *Subtarget); + VT = TLI.getContainerForFixedLengthVector(VT); const auto *TRI = Subtarget->getRegisterInfo(); unsigned SubRegIdx; @@ -1101,14 +1100,13 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) { MVT InVT = V.getSimpleValueType(); SDLoc DL(V); + const RISCVTargetLowering &TLI = *Subtarget->getTargetLowering(); MVT SubVecContainerVT = VT; // Establish the correct scalable-vector types for any fixed-length type. if (VT.isFixedLengthVector()) - SubVecContainerVT = RISCVTargetLowering::getContainerForFixedLengthVector( - *CurDAG, VT, *Subtarget); + SubVecContainerVT = TLI.getContainerForFixedLengthVector(VT); if (InVT.isFixedLengthVector()) - InVT = RISCVTargetLowering::getContainerForFixedLengthVector( - *CurDAG, InVT, *Subtarget); + InVT = TLI.getContainerForFixedLengthVector(InVT); const auto *TRI = Subtarget->getRegisterInfo(); unsigned SubRegIdx; diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp index 1966dc0a0a4b6..4eda3d3f4b10b 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp @@ -1106,8 +1106,8 @@ RISCVTargetLowering::decomposeSubvectorInsertExtractToSubRegs( } // Return the largest legal scalable vector type that matches VT's element type. -MVT RISCVTargetLowering::getContainerForFixedLengthVector( - const TargetLowering &TLI, MVT VT, const RISCVSubtarget &Subtarget) { +static MVT getContainerForFixedLengthVector(const TargetLowering &TLI, MVT VT, + const RISCVSubtarget &Subtarget) { assert(VT.isFixedLengthVector() && TLI.isTypeLegal(VT) && "Expected legal fixed length vector!"); @@ -1137,14 +1137,14 @@ MVT RISCVTargetLowering::getContainerForFixedLengthVector( } } -MVT RISCVTargetLowering::getContainerForFixedLengthVector( - SelectionDAG &DAG, MVT VT, const RISCVSubtarget &Subtarget) { +static MVT getContainerForFixedLengthVector(SelectionDAG &DAG, MVT VT, + const RISCVSubtarget &Subtarget) { return getContainerForFixedLengthVector(DAG.getTargetLoweringInfo(), VT, Subtarget); } MVT RISCVTargetLowering::getContainerForFixedLengthVector(MVT VT) const { - return getContainerForFixedLengthVector(*this, VT, getSubtarget()); + return ::getContainerForFixedLengthVector(*this, VT, getSubtarget()); } // Grow V to consume an entire RVV register. @@ -1221,8 +1221,7 @@ static SDValue lowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG, MVT VT = Op.getSimpleValueType(); assert(VT.isFixedLengthVector() && "Unexpected vector!"); - MVT ContainerVT = - RISCVTargetLowering::getContainerForFixedLengthVector(DAG, VT, Subtarget); + MVT ContainerVT = getContainerForFixedLengthVector(DAG, VT, Subtarget); SDLoc DL(Op); SDValue Mask, VL; @@ -1383,8 +1382,7 @@ static SDValue lowerBUILD_VECTOR(SDValue Op, SelectionDAG &DAG, SDValue ViaVL = DAG.getConstant(ViaVecVT.getVectorNumElements(), DL, XLenVT); MVT ViaContainerVT = - RISCVTargetLowering::getContainerForFixedLengthVector(DAG, ViaVecVT, - Subtarget); + getContainerForFixedLengthVector(DAG, ViaVecVT, Subtarget); SDValue Splat = DAG.getNode(RISCVISD::VMV_V_X_VL, DL, ViaContainerVT, DAG.getConstant(SplatValue, DL, XLenVT), ViaVL); @@ -1555,8 +1553,7 @@ static SDValue lowerVECTOR_SHUFFLE(SDValue Op, SelectionDAG &DAG, unsigned NumElts = VT.getVectorNumElements(); ShuffleVectorSDNode *SVN = cast(Op.getNode()); - MVT ContainerVT = - RISCVTargetLowering::getContainerForFixedLengthVector(DAG, VT, Subtarget); + MVT ContainerVT = getContainerForFixedLengthVector(DAG, VT, Subtarget); SDValue TrueMask, VL; std::tie(TrueMask, VL) = getDefaultVLOps(VT, ContainerVT, DL, DAG, Subtarget); diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.h b/llvm/lib/Target/RISCV/RISCVISelLowering.h index 202740cf81d32..8e4391a633f47 100644 --- a/llvm/lib/Target/RISCV/RISCVISelLowering.h +++ b/llvm/lib/Target/RISCV/RISCVISelLowering.h @@ -470,10 +470,6 @@ class RISCVTargetLowering : public TargetLowering { unsigned InsertExtractIdx, const RISCVRegisterInfo *TRI); MVT getContainerForFixedLengthVector(MVT VT) const; - static MVT getContainerForFixedLengthVector(const TargetLowering &TLI, MVT VT, - const RISCVSubtarget &Subtarget); - static MVT getContainerForFixedLengthVector(SelectionDAG &DAG, MVT VT, - const RISCVSubtarget &Subtarget); bool shouldRemoveExtendFromGSIndex(EVT VT) const override;