LLVM API Documentation
#include "MipsSEISelLowering.h"
#include "MipsMachineFunction.h"
#include "MipsRegisterInfo.h"
#include "MipsTargetMachine.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetInstrInfo.h"
Go to the source code of this file.
#define DEBUG_TYPE "mips-isel" |
Definition at line 27 of file MipsSEISelLowering.cpp.
static SDValue extractLOHI | ( | SDValue | Op, |
SDLoc | DL, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 1291 of file MipsSEISelLowering.cpp.
References llvm::ISD::BUILD_PAIR, llvm::SelectionDAG::getNode(), llvm::MVT::i32, llvm::MVT::i64, llvm::MipsISD::MFHI, and llvm::MipsISD::MFLO.
Referenced by lowerDSPIntr().
static SDValue genConstMult | ( | SDValue | X, |
uint64_t | C, | ||
SDLoc | DL, | ||
EVT | VT, | ||
EVT | ShiftTy, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 796 of file MipsSEISelLowering.cpp.
References llvm::ISD::ADD, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::EVT::getSizeInBits(), llvm::isPowerOf2_64(), llvm::Log2_64(), llvm::Log2_64_Ceil(), llvm::ISD::SHL, llvm::ISD::SUB, and llvm::X.
Referenced by performMULCombine().
static SDValue getBuildVectorSplat | ( | EVT | VecTy, |
SDValue | SplatValue, | ||
bool | BigEndian, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 1404 of file MipsSEISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::ISD::BUILD_VECTOR, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::EVT::getVectorNumElements(), llvm::MVT::i32, llvm::MVT::i64, llvm::makeArrayRef(), llvm::ISD::SRL, std::swap(), llvm::ISD::TRUNCATE, llvm::MVT::v2i64, and llvm::MVT::v4i32.
Referenced by lowerMSABinaryBitImmIntr().
static SDValue initAccumulator | ( | SDValue | In, |
SDLoc | DL, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 1283 of file MipsSEISelLowering.cpp.
References llvm::ISD::EXTRACT_ELEMENT, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::MVT::i32, llvm::MipsISD::MTLOHI, and llvm::MVT::Untyped.
Referenced by lowerDSPIntr().
static bool isBitwiseInverse | ( | SDValue | N, |
SDValue | OfNode | ||
) | [static] |
Definition at line 644 of file MipsSEISelLowering.cpp.
References llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), isVectorAllOnes(), and llvm::ISD::XOR.
Referenced by performORCombine().
static bool isConstantOrUndef | ( | const SDValue | Op | ) | [static] |
Definition at line 2290 of file MipsSEISelLowering.cpp.
References llvm::SDNode::getOpcode(), and llvm::ISD::UNDEF.
Referenced by isConstantOrUndefBUILD_VECTOR().
static bool isConstantOrUndefBUILD_VECTOR | ( | const BuildVectorSDNode * | Op | ) | [static] |
Definition at line 2300 of file MipsSEISelLowering.cpp.
References llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), and isConstantOrUndef().
static bool isLegalDSPCondCode | ( | EVT | Ty, |
ISD::CondCode | CC | ||
) | [static] |
Definition at line 951 of file MipsSEISelLowering.cpp.
References llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, and llvm::MVT::v2i16.
Referenced by performSETCCCombine().
static bool isSplatVector | ( | const BuildVectorSDNode * | N | ) | [static] |
Check if the given BuildVectorSDNode is a splat. This method currently relies on DAG nodes being reused when equivalent, so it's possible for this to return false even when isConstantSplat returns true.
Definition at line 2249 of file MipsSEISelLowering.cpp.
References llvm::SDNode::getNumOperands(), and llvm::SDNode::getOperand().
static bool isVectorAllOnes | ( | SDValue | N | ) | [static] |
Definition at line 620 of file MipsSEISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::dyn_cast(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::APInt::isAllOnesValue(), and llvm::BuildVectorSDNode::isConstantSplat().
Referenced by isBitwiseInverse().
Definition at line 600 of file MipsSEISelLowering.cpp.
References llvm::dyn_cast(), llvm::SDValue::getNode(), llvm::BuildVectorSDNode::isConstantSplat(), and Node.
Referenced by performORCombine().
static SDValue lowerDSPIntr | ( | SDValue | Op, |
SelectionDAG & | DAG, | ||
unsigned | Opc | ||
) | [static] |
Definition at line 1309 of file MipsSEISelLowering.cpp.
References extractLOHI(), llvm::SelectionDAG::getMergeValues(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDNode::getNumOperands(), llvm::SDValue::getOpcode(), llvm::SDNode::getOperand(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), I, llvm::MVT::i64, initAccumulator(), llvm::MVT::Other, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::ISD::TargetConstant, llvm::MVT::Untyped, llvm::SDNode::value_begin(), and llvm::SDNode::value_end().
static SDValue lowerMSABinaryBitImmIntr | ( | SDValue | Op, |
SelectionDAG & | DAG, | ||
unsigned | Opc, | ||
SDValue | Imm, | ||
bool | BigEndian | ||
) | [static] |
Definition at line 1440 of file MipsSEISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::ISD::BUILD_VECTOR, getBuildVectorSplat(), llvm::SelectionDAG::getConstant(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::SDNode::getValueType(), llvm::MVT::i32, llvm::MVT::i64, llvm::APInt::lshr(), llvm::ISD::SHL, std::swap(), llvm::APInt::trunc(), llvm::MVT::v2i64, llvm::MVT::v4i32, and llvm::ISD::ZERO_EXTEND.
static SDValue lowerMSABitClear | ( | SDValue | Op, |
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 1483 of file MipsSEISelLowering.cpp.
References llvm::ISD::AND, llvm::tgtok::Bit, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getNOT(), llvm::SDNode::getOperand(), llvm::SDNode::getValueType(), and llvm::ISD::SHL.
static SDValue lowerMSABitClearImm | ( | SDValue | Op, |
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 1493 of file MipsSEISelLowering.cpp.
References llvm::ISD::AND, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::EVT::getSizeInBits(), llvm::SDNode::getValueType(), and llvm::EVT::getVectorElementType().
static SDValue lowerMSACopyIntr | ( | SDValue | Op, |
SelectionDAG & | DAG, | ||
unsigned | Opc | ||
) | [static] |
Definition at line 1358 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::SelectionDAG::getValueType(), llvm::SDNode::getValueType(), and llvm::EVT::getVectorElementType().
static SDValue lowerMSALoadIntr | ( | SDValue | Op, |
SelectionDAG & | DAG, | ||
unsigned | Intr | ||
) | [static] |
Definition at line 2149 of file MipsSEISelLowering.cpp.
References llvm::ISD::ADD, llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), and llvm::SDNode::getValueType().
static SDValue lowerMSASplatImm | ( | SDValue | Op, |
unsigned | ImmOp, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 1400 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getConstant(), llvm::SDNode::getConstantOperandVal(), and llvm::SDNode::getValueType().
static SDValue lowerMSASplatZExt | ( | SDValue | Op, |
unsigned | OpNr, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 1371 of file MipsSEISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::ISD::BUILD_VECTOR, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::SDNode::getValueType(), llvm::EVT::getVectorNumElements(), llvm::MVT::i32, llvm::makeArrayRef(), llvm::MVT::v2i64, and llvm::MVT::v4i32.
static SDValue lowerMSAStoreIntr | ( | SDValue | Op, |
SelectionDAG & | DAG, | ||
unsigned | Intr | ||
) | [static] |
Definition at line 2217 of file MipsSEISelLowering.cpp.
References llvm::ISD::ADD, llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::SelectionDAG::getStore(), and llvm::SDNode::getValueType().
static SDValue lowerVECTOR_SHUFFLE_ILVEV | ( | SDValue | Op, |
EVT | ResTy, | ||
SmallVector< int, 16 > | Indices, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 2473 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::EVT::getVectorNumElements(), llvm::MipsISD::ILVEV, and llvm::SmallVectorTemplateCommon< T, typename >::size().
static SDValue lowerVECTOR_SHUFFLE_ILVL | ( | SDValue | Op, |
EVT | ResTy, | ||
SmallVector< int, 16 > | Indices, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 2533 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::EVT::getVectorNumElements(), llvm::MipsISD::ILVL, and llvm::SmallVectorTemplateCommon< T, typename >::size().
static SDValue lowerVECTOR_SHUFFLE_ILVOD | ( | SDValue | Op, |
EVT | ResTy, | ||
SmallVector< int, 16 > | Indices, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 2503 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::EVT::getVectorNumElements(), llvm::MipsISD::ILVOD, and llvm::SmallVectorTemplateCommon< T, typename >::size().
static SDValue lowerVECTOR_SHUFFLE_ILVR | ( | SDValue | Op, |
EVT | ResTy, | ||
SmallVector< int, 16 > | Indices, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 2563 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::EVT::getVectorNumElements(), llvm::MipsISD::ILVR, and llvm::SmallVectorTemplateCommon< T, typename >::size().
static SDValue lowerVECTOR_SHUFFLE_PCKEV | ( | SDValue | Op, |
EVT | ResTy, | ||
SmallVector< int, 16 > | Indices, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 2594 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::MipsISD::PCKEV, and llvm::SmallVectorTemplateCommon< T, typename >::size().
static SDValue lowerVECTOR_SHUFFLE_PCKOD | ( | SDValue | Op, |
EVT | ResTy, | ||
SmallVector< int, 16 > | Indices, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 2620 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::MipsISD::PCKOD, and llvm::SmallVectorTemplateCommon< T, typename >::size().
static SDValue lowerVECTOR_SHUFFLE_SHF | ( | SDValue | Op, |
EVT | ResTy, | ||
SmallVector< int, 16 > | Indices, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 2415 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::MVT::i32, llvm::MipsISD::SHF, and llvm::SmallVectorTemplateCommon< T, typename >::size().
static SDValue lowerVECTOR_SHUFFLE_VSHF | ( | SDValue | Op, |
EVT | ResTy, | ||
SmallVector< int, 16 > | Indices, | ||
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 2644 of file MipsSEISelLowering.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::ISD::BUILD_VECTOR, llvm::EVT::changeVectorElementTypeToInteger(), llvm::SmallVectorTemplateCommon< T, typename >::end(), llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::SelectionDAG::getTargetConstant(), llvm::EVT::getVectorElementType(), llvm::EVT::getVectorNumElements(), I, llvm_unreachable, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and llvm::MipsISD::VSHF.
static SDValue performADDECombine | ( | SDNode * | N, |
SelectionDAG & | DAG, | ||
TargetLowering::DAGCombinerInfo & | DCI, | ||
const MipsSubtarget & | Subtarget | ||
) | [static] |
Definition at line 528 of file MipsSEISelLowering.cpp.
References llvm::SDNode::getValueType(), llvm::MipsSubtarget::hasMips32(), llvm::MipsSubtarget::hasMips32r6(), llvm::MVT::i32, llvm::TargetLowering::DAGCombinerInfo::isBeforeLegalize(), and selectMADD().
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static SDValue performANDCombine | ( | SDNode * | N, |
SelectionDAG & | DAG, | ||
TargetLowering::DAGCombinerInfo & | DCI, | ||
const MipsSubtarget & | Subtarget | ||
) | [static] |
Definition at line 548 of file MipsSEISelLowering.cpp.
References llvm::dyn_cast(), llvm::ConstantSDNode::getAPIntValue(), llvm::SelectionDAG::getNode(), llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::EVT::getSizeInBits(), llvm::SDNode::getVTList(), llvm::MipsSubtarget::hasMSA(), llvm::makeArrayRef(), llvm::MipsISD::VEXTRACT_SEXT_ELT, and llvm::MipsISD::VEXTRACT_ZEXT_ELT.
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static SDValue performDSPShiftCombine | ( | unsigned | Opc, |
SDNode * | N, | ||
EVT | Ty, | ||
SelectionDAG & | DAG, | ||
const MipsSubtarget & | Subtarget | ||
) | [static] |
Definition at line 847 of file MipsSEISelLowering.cpp.
References llvm::dyn_cast(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::EVT::getSizeInBits(), llvm::EVT::getVectorElementType(), llvm::APInt::getZExtValue(), llvm::MipsSubtarget::hasDSP(), llvm::MVT::i32, llvm::BuildVectorSDNode::isConstantSplat(), and llvm::MipsSubtarget::isLittle().
Referenced by performSHLCombine(), performSRACombine(), and performSRLCombine().
static SDValue performMULCombine | ( | SDNode * | N, |
SelectionDAG & | DAG, | ||
const TargetLowering::DAGCombinerInfo & | DCI, | ||
const MipsSETargetLowering * | TL | ||
) | [static] |
Definition at line 834 of file MipsSEISelLowering.cpp.
References llvm::CallingConv::C, genConstMult(), llvm::SDNode::getOperand(), llvm::MipsTargetLowering::getScalarShiftAmountTy(), llvm::SDNode::getValueType(), and llvm::EVT::isVector().
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static SDValue performORCombine | ( | SDNode * | N, |
SelectionDAG & | DAG, | ||
TargetLowering::DAGCombinerInfo & | DCI, | ||
const MipsSubtarget & | Subtarget | ||
) | [static] |
Definition at line 663 of file MipsSEISelLowering.cpp.
References llvm::ISD::AND, llvm::APInt::getBitWidth(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::SDNode::getValueType(), llvm::MipsSubtarget::hasMSA(), llvm::EVT::is128BitVector(), llvm::APInt::isAllOnesValue(), isBitwiseInverse(), llvm::MipsSubtarget::isLittle(), isVSplat(), and llvm::ISD::VSELECT.
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static SDValue performSETCCCombine | ( | SDNode * | N, |
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 969 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::SDNode::getValueType(), isLegalDSPCondCode(), llvm::MipsISD::SETCC_DSP, llvm::MVT::v2i16, and llvm::MVT::v4i8.
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static SDValue performSHLCombine | ( | SDNode * | N, |
SelectionDAG & | DAG, | ||
TargetLowering::DAGCombinerInfo & | DCI, | ||
const MipsSubtarget & | Subtarget | ||
) | [static] |
Definition at line 871 of file MipsSEISelLowering.cpp.
References llvm::SDNode::getValueType(), performDSPShiftCombine(), llvm::MipsISD::SHLL_DSP, llvm::MVT::v2i16, and llvm::MVT::v4i8.
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static SDValue performSRACombine | ( | SDNode * | N, |
SelectionDAG & | DAG, | ||
TargetLowering::DAGCombinerInfo & | DCI, | ||
const MipsSubtarget & | Subtarget | ||
) | [static] |
Definition at line 894 of file MipsSEISelLowering.cpp.
References llvm::dyn_cast(), llvm::SelectionDAG::getNode(), llvm::SDNode::getNumOperands(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::EVT::getSizeInBits(), llvm::SDNode::getValueType(), llvm::SDNode::getVTList(), llvm::ConstantSDNode::getZExtValue(), llvm::MipsSubtarget::hasDSPR2(), llvm::MipsSubtarget::hasMSA(), llvm::makeArrayRef(), performDSPShiftCombine(), llvm::ISD::SHL, llvm::MipsISD::SHRA_DSP, llvm::MVT::v2i16, llvm::MVT::v4i8, llvm::MipsISD::VEXTRACT_SEXT_ELT, and llvm::MipsISD::VEXTRACT_ZEXT_ELT.
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static SDValue performSRLCombine | ( | SDNode * | N, |
SelectionDAG & | DAG, | ||
TargetLowering::DAGCombinerInfo & | DCI, | ||
const MipsSubtarget & | Subtarget | ||
) | [static] |
Definition at line 940 of file MipsSEISelLowering.cpp.
References llvm::SDNode::getValueType(), llvm::MipsSubtarget::hasDSPR2(), performDSPShiftCombine(), llvm::MipsISD::SHRL_DSP, llvm::MVT::v2i16, and llvm::MVT::v4i8.
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static SDValue performSUBECombine | ( | SDNode * | N, |
SelectionDAG & | DAG, | ||
TargetLowering::DAGCombinerInfo & | DCI, | ||
const MipsSubtarget & | Subtarget | ||
) | [static] |
Definition at line 783 of file MipsSEISelLowering.cpp.
References llvm::SDNode::getValueType(), llvm::MipsSubtarget::hasMips32(), llvm::MVT::i32, llvm::TargetLowering::DAGCombinerInfo::isBeforeLegalize(), and selectMSUB().
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static SDValue performVSELECTCombine | ( | SDNode * | N, |
SelectionDAG & | DAG | ||
) | [static] |
Definition at line 982 of file MipsSEISelLowering.cpp.
References llvm::SelectionDAG::getNode(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::SDNode::getValueType(), llvm::EVT::is128BitVector(), llvm::EVT::isInteger(), llvm::MipsISD::SELECT_CC_DSP, llvm::ISD::SETCC, llvm::MipsISD::SETCC_DSP, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETULE, llvm::ISD::SETULT, Signed, llvm::MVT::v2i16, llvm::MVT::v4i8, llvm::MipsISD::VSMAX, llvm::MipsISD::VSMIN, llvm::MipsISD::VUMAX, and llvm::MipsISD::VUMIN.
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static SDValue performXORCombine | ( | SDNode * | N, |
SelectionDAG & | DAG, | ||
const MipsSubtarget & | Subtarget | ||
) | [static] |
Definition at line 1038 of file MipsSEISelLowering.cpp.
References llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::SDNode::getValueType(), llvm::MipsSubtarget::hasMSA(), llvm::EVT::is128BitVector(), llvm::ISD::isBuildVectorAllOnes(), llvm::EVT::isInteger(), llvm::ISD::OR, and llvm::MipsISD::VNOR.
Referenced by llvm::MipsSETargetLowering::PerformDAGCombine().
static bool selectMADD | ( | SDNode * | ADDENode, |
SelectionDAG * | CurDAG | ||
) | [static] |
Definition at line 392 of file MipsSEISelLowering.cpp.
References llvm::ISD::ADDC, llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::SDValue::getResNo(), llvm::SDValue::hasOneUse(), llvm::MVT::i32, llvm::MipsISD::MAdd, llvm::MipsISD::MAddu, llvm::MipsISD::MFHI, llvm::MipsISD::MFLO, llvm::MipsISD::MTLOHI, llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::ISD::SMUL_LOHI, llvm::ISD::UMUL_LOHI, llvm::MVT::Untyped, and llvm::SDValue::use_empty().
Referenced by performADDECombine().
static bool selectMSUB | ( | SDNode * | SUBENode, |
SelectionDAG * | CurDAG | ||
) | [static] |
Definition at line 464 of file MipsSEISelLowering.cpp.
References llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::SDValue::getResNo(), llvm::MVT::Glue, llvm::SDValue::hasOneUse(), llvm::MVT::i32, llvm::MipsISD::MFHI, llvm::MipsISD::MFLO, llvm::MipsISD::MSub, llvm::MipsISD::MSubu, llvm::MipsISD::MTLOHI, llvm::SelectionDAG::ReplaceAllUsesOfValueWith(), llvm::ISD::SMUL_LOHI, llvm::ISD::SUBC, llvm::ISD::UMUL_LOHI, llvm::MVT::Untyped, and llvm::SDValue::use_empty().
Referenced by performSUBECombine().
cl::opt<bool> EnableMipsTailCalls("enable-mips-tail-calls", cl::Hidden, cl::desc("MIPS: Enable tail calls."), cl::init(false)) [static] |
cl::opt<bool> NoDPLoadStore("mno-ldc1-sdc1", cl::init(false), cl::desc("Expand double precision loads and ""stores to their single precision ""counterparts")) [static] |
Referenced by llvm::MipsSETargetLowering::MipsSETargetLowering().