LLVM: lib/Target/CSKY/CSKYISelLowering.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "csky-isel-lowering"
Functions
STATISTIC (NumTailCalls, "Number of tail calls")
static SDValue convertValVTToLocVT (SelectionDAG &DAG, SDValue Val, const CCValAssign &VA, const SDLoc &DL)
static SDValue convertLocVTToValVT (SelectionDAG &DAG, SDValue Val, const CCValAssign &VA, const SDLoc &DL)
static SDValue unpackFromRegLoc (const CSKYSubtarget &Subtarget, SelectionDAG &DAG, SDValue Chain, const CCValAssign &VA, const SDLoc &DL)
static SDValue unpackFromMemLoc (SelectionDAG &DAG, SDValue Chain, const CCValAssign &VA, const SDLoc &DL)
static SDValue unpack64 (SelectionDAG &DAG, SDValue Chain, const CCValAssign &VA, const SDLoc &DL)
static CSKYCP::CSKYCPModifier getModifier (unsigned Flags)
static MachineBasicBlock * emitSelectPseudo (MachineInstr &MI, MachineBasicBlock *BB, unsigned Opcode)

DEBUG_TYPE

#define DEBUG_TYPE "csky-isel-lowering"

convertLocVTToValVT()

Definition at line 215 of file CSKYISelLowering.cpp.

References llvm::CCValAssign::BCvt, DL, llvm::CCValAssign::Full, llvm::CCValAssign::getLocInfo(), llvm::SelectionDAG::getNode(), llvm::CCValAssign::getValVT(), and llvm_unreachable.

Referenced by llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerFormalArguments(), unpackFromRegLoc(), unpackFromRegLoc(), and unpackFromRegLoc().

convertValVTToLocVT()

Definition at line 199 of file CSKYISelLowering.cpp.

References llvm::CCValAssign::BCvt, DL, llvm::CCValAssign::Full, llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getNode(), and llvm_unreachable.

Referenced by llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerReturn(), llvm::RISCVTargetLowering::LowerReturn(), and llvm::SystemZTargetLowering::LowerReturn().

emitSelectPseudo()

Definition at line 963 of file CSKYISelLowering.cpp.

References llvm::MachineInstrBuilder::addMBB(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::addSuccessor(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), DL, llvm::MachineBasicBlock::end(), F, llvm::MachineBasicBlock::getBasicBlock(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), MI, llvm::MachineBasicBlock::splice(), TII, and llvm::MachineBasicBlock::transferSuccessorsAndUpdatePHIs().

Referenced by llvm::RISCVTargetLowering::EmitInstrWithCustomInserter().

getModifier()

Definition at line 766 of file CSKYISelLowering.cpp.

References llvm::CSKYCP::ADDR, assert(), llvm::CSKYCP::GOT, llvm::CSKYCP::GOTOFF, llvm::CSKYII::MO_ADDR32, llvm::CSKYII::MO_GOT32, llvm::CSKYII::MO_GOTOFF, llvm::CSKYII::MO_None, llvm::CSKYII::MO_PLT32, llvm::CSKYCP::NO_MOD, and llvm::CSKYCP::PLT.

STATISTIC()

STATISTIC ( NumTailCalls ,
"Number of tail calls" )

unpack64()

Definition at line 288 of file CSKYISelLowering.cpp.

References assert(), llvm::MachineFrameInfo::CreateFixedObject(), DL, llvm::SelectionDAG::getCopyFromReg(), llvm::MachinePointerInfo::getFixedStack(), llvm::SelectionDAG::getFrameIndex(), llvm::MachineFunction::getFrameInfo(), llvm::SelectionDAG::getLoad(), llvm::CCValAssign::getLocMemOffset(), llvm::CCValAssign::getLocReg(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::MachineFunction::getRegInfo(), llvm::CCValAssign::getValVT(), llvm::Hi, llvm::CCValAssign::isMemLoc(), llvm::CCValAssign::isRegLoc(), and llvm::Lo.

unpackFromMemLoc()

Definition at line 261 of file CSKYISelLowering.cpp.

References llvm::CCValAssign::BCvt, llvm::MachineFrameInfo::CreateFixedObject(), DL, llvm::CCValAssign::Full, llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getExtLoad(), llvm::MachinePointerInfo::getFixedStack(), llvm::SelectionDAG::getFrameIndex(), llvm::MachineFunction::getFrameInfo(), llvm::MVT::getIntegerVT(), llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocMemOffset(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getMachineFunction(), llvm::DataLayout::getPointerSizeInBits(), llvm::EVT::getSizeInBits(), llvm::CCValAssign::getValVT(), llvm_unreachable, and llvm::ISD::NON_EXTLOAD.

Referenced by llvm::LoongArchTargetLowering::LowerFormalArguments(), and llvm::RISCVTargetLowering::LowerFormalArguments().

unpackFromRegLoc()

Definition at line 229 of file CSKYISelLowering.cpp.

References convertLocVTToValVT(), DL, llvm::SelectionDAG::getCopyFromReg(), llvm::CCValAssign::getLocReg(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getMachineFunction(), llvm::MachineFunction::getRegInfo(), llvm::EVT::getSimpleVT(), llvm::CSKYSubtarget::hasFPUv2DoubleFloat(), llvm::CSKYSubtarget::hasFPUv2SingleFloat(), llvm_unreachable, and llvm::MVT::SimpleTy.

Referenced by llvm::LoongArchTargetLowering::LowerFormalArguments(), and llvm::RISCVTargetLowering::LowerFormalArguments().

GPRArgRegs