LLVM
8.0.1
|
#include "ARCISelLowering.h"
#include "ARC.h"
#include "ARCMachineFunctionInfo.h"
#include "ARCSubtarget.h"
#include "ARCTargetMachine.h"
#include "MCTargetDesc/ARCInfo.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/Support/Debug.h"
#include <algorithm>
#include "ARCGenCallingConv.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "arc-lower" |
Functions | |
static SDValue | lowerCallResult (SDValue Chain, SDValue Glue, const SmallVectorImpl< CCValAssign > &RVLocs, SDLoc dl, SelectionDAG &DAG, SmallVectorImpl< SDValue > &InVals) |
Lower the result values of a call into the appropriate copies out of physical registers / memory locations. More... | |
static ARCCC::CondCode | ISDCCtoARCCC (ISD::CondCode isdCC) |
static SDValue | LowerVASTART (SDValue Op, SelectionDAG &DAG) |
#define DEBUG_TYPE "arc-lower" |
Definition at line 33 of file ARCISelLowering.cpp.
|
static |
Definition at line 42 of file ARCISelLowering.cpp.
References llvm::ARCCC::EQ, llvm::ARCCC::GE, llvm::ARCCC::GT, llvm::ARCCC::HI, llvm::ARCCC::HS, llvm::ARCCC::LE, llvm_unreachable, llvm::ARCCC::LO, llvm::ARCCC::LS, llvm::ARCCC::LT, llvm::ARCCC::NE, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, and llvm::ISD::SETUNE.
Referenced by llvm::ARCTargetLowering::getTargetNodeName().
|
static |
Lower the result values of a call into the appropriate copies out of physical registers / memory locations.
Definition at line 371 of file ARCISelLowering.cpp.
References llvm::ISD::ADD, llvm::MachineRegisterInfo::addLiveIn(), llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, llvm::CCState::AllocateStack(), llvm::CCState::AnalyzeFormalArguments(), llvm::array_lengthof(), assert(), llvm::CallingConv::C, llvm::CCState::CheckReturn(), Context, llvm::MachineFrameInfo::CreateFixedObject(), llvm::MachineFrameInfo::CreateStackObject(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::SmallVectorBase::empty(), llvm::errs(), llvm::CallingConv::Fast, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::MachinePointerInfo::getFixedStack(), llvm::SelectionDAG::getFrameIndex(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::SelectionDAG::getLoad(), llvm::CCValAssign::getLocMemOffset(), llvm::CCValAssign::getLocReg(), llvm::CCValAssign::getLocVT(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getMemcpy(), llvm::CCState::getNextStackOffset(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDNode::getNumValues(), llvm::MachineFunction::getRegInfo(), llvm::SelectionDAG::getRegister(), llvm::EVT::getSimpleVT(), llvm::SelectionDAG::getStore(), llvm::MVT::getStoreSize(), llvm::SDValue::getValue(), llvm::CCValAssign::getValVT(), llvm::MVT::i32, llvm::MipsISD::Ins, llvm::CCValAssign::isMemLoc(), llvm::CCValAssign::isRegLoc(), LLVM_DEBUG, llvm_unreachable, llvm::SPII::Load, llvm::max(), N, llvm::MVT::Other, llvm::SmallVectorTemplateBase< T >::push_back(), R2, R4, R6, llvm::report_fatal_error(), llvm::ARCISD::RET, llvm::MVT::SimpleTy, Size, llvm::SmallVectorBase::size(), llvm::SPII::Store, and llvm::ISD::TokenFactor.
Referenced by llvm::ARCTargetLowering::getTargetNodeName().
|
static |
Definition at line 734 of file ARCISelLowering.cpp.
References llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getFrameIndex(), llvm::MachineFunction::getInfo(), llvm::SelectionDAG::getMachineFunction(), llvm::SDValue::getOperand(), llvm::TargetLoweringBase::getPointerTy(), llvm::SelectionDAG::getStore(), and llvm::SelectionDAG::getTargetLoweringInfo().
Referenced by llvm::PPCTargetLowering::functionArgumentNeedsConsecutiveRegisters(), llvm::AVRTargetLowering::getCmpLibcallReturnType(), llvm::XCoreTargetLowering::getExceptionSelectorRegister(), llvm::HexagonTargetLowering::getExceptionSelectorRegister(), llvm::X86TargetLowering::getMaxSupportedInterleaveFactor(), llvm::MSP430TargetLowering::getScalarShiftAmountTy(), llvm::ARCTargetLowering::LowerOperation(), and llvm::AArch64TargetLowering::supportSwiftError().