LLVM 20.0.0git
|
#include "CSKYISelLowering.h"
#include "CSKYCallingConv.h"
#include "CSKYConstantPoolValue.h"
#include "CSKYMachineFunctionInfo.h"
#include "CSKYRegisterInfo.h"
#include "CSKYSubtarget.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/Support/Debug.h"
#include "CSKYGenCallingConv.inc"
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) |
Variables | |
static const MCPhysReg | GPRArgRegs [] = {CSKY::R0, CSKY::R1, CSKY::R2, CSKY::R3} |
#define DEBUG_TYPE "csky-isel-lowering" |
Definition at line 28 of file CSKYISelLowering.cpp.
|
static |
Definition at line 215 of file CSKYISelLowering.cpp.
References llvm::CCValAssign::BCvt, llvm::ISD::BITCAST, DL, llvm::CCValAssign::Full, llvm::CCValAssign::getLocInfo(), llvm::SelectionDAG::getNode(), llvm::CCValAssign::getValVT(), and llvm_unreachable.
Referenced by llvm::SystemZTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerFormalArguments(), and unpackFromRegLoc().
|
static |
Definition at line 199 of file CSKYISelLowering.cpp.
References llvm::CCValAssign::BCvt, llvm::ISD::BITCAST, DL, llvm::CCValAssign::Full, llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getNode(), and llvm_unreachable.
Referenced by llvm::SystemZTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerCall(), llvm::RISCVTargetLowering::LowerCall(), llvm::LoongArchTargetLowering::LowerReturn(), llvm::RISCVTargetLowering::LowerReturn(), and llvm::SystemZTargetLowering::LowerReturn().
|
static |
Definition at line 962 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().
|
static |
Definition at line 765 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 | ( | NumTailCalls | , |
"Number of tail calls" | |||
) |
|
static |
Definition at line 288 of file CSKYISelLowering.cpp.
References assert(), llvm::CSKYISD::BITCAST_FROM_LOHI, 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.
|
static |
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().
|
static |
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().
Definition at line 34 of file CSKYISelLowering.cpp.