LLVM API Documentation
#include "SparcISelLowering.h"
#include "SparcMachineFunctionInfo.h"
#include "SparcRegisterInfo.h"
#include "SparcTargetMachine.h"
#include "MCTargetDesc/SparcBaseInfo.h"
#include "llvm/CodeGen/CallingConvLower.h"
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstrBuilder.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/TargetLoweringObjectFileImpl.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Module.h"
#include "llvm/Support/ErrorHandling.h"
#include "SparcGenCallingConv.inc"
Go to the source code of this file.
|
static |
Definition at line 80 of file SparcISelLowering.cpp.
References llvm::CCState::addLoc(), llvm::CCState::AllocateStack(), llvm::MVT::f32, llvm::MVT::f64, llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::MVT::getSizeInBits(), and llvm::MVT::i64.
|
static |
Definition at line 119 of file SparcISelLowering.cpp.
References llvm::CCState::addLoc(), llvm::CCValAssign::AExt, llvm::CCState::AllocateStack(), llvm::MVT::f32, llvm::CCValAssign::getCustomReg(), llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::MVT::getSizeInBits(), llvm::MVT::i32, and llvm::MVT::i64.
|
static |
Definition at line 51 of file SparcISelLowering.cpp.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), llvm::CCState::AllocateStack(), llvm::CCValAssign::getCustomMem(), and llvm::CCValAssign::getCustomReg().
|
static |
Definition at line 38 of file SparcISelLowering.cpp.
References llvm::CCState::addLoc(), llvm::CCValAssign::getCustomMem(), and llvm::ISD::ArgFlagsTy::isSRet().
|
static |
Definition at line 997 of file SparcISelLowering.cpp.
References llvm::CCValAssign::BCvt, llvm::MVT::f64, llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocReg(), llvm::CCValAssign::getLocVT(), llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::CCValAssign::getValNo(), llvm::CCValAssign::getValVT(), llvm::MVT::i64, llvm::CCValAssign::isRegLoc(), and llvm::SmallVectorTemplateCommon< T >::size().
Referenced by llvm::SparcTargetLowering::LowerCall_64().
|
static |
FPCondCCodeToFCC - Convert a DAG floatingp oint condition code to a SPARC FCC condition.
Definition at line 1279 of file SparcISelLowering.cpp.
References llvm::SPCC::FCC_E, llvm::SPCC::FCC_G, llvm::SPCC::FCC_GE, llvm::SPCC::FCC_L, llvm::SPCC::FCC_LE, llvm::SPCC::FCC_LG, llvm::SPCC::FCC_NE, llvm::SPCC::FCC_O, llvm::SPCC::FCC_U, llvm::SPCC::FCC_UE, llvm::SPCC::FCC_UG, llvm::SPCC::FCC_UGE, llvm::SPCC::FCC_UL, llvm::SPCC::FCC_ULE, llvm_unreachable, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETGT, llvm::ISD::SETLE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETO, llvm::ISD::SETOEQ, llvm::ISD::SETOGE, llvm::ISD::SETOGT, llvm::ISD::SETOLE, llvm::ISD::SETOLT, llvm::ISD::SETONE, llvm::ISD::SETUEQ, llvm::ISD::SETUGE, llvm::ISD::SETUGT, llvm::ISD::SETULE, llvm::ISD::SETULT, llvm::ISD::SETUNE, and llvm::ISD::SETUO.
Referenced by LowerBR_CC(), and LowerSELECT_CC().
|
static |
Definition at line 2311 of file SparcISelLowering.cpp.
References llvm::SPISD::FLUSHW, llvm::SelectionDAG::getEntryNode(), llvm::SelectionDAG::getNode(), and llvm::MVT::Other.
Referenced by LowerFRAMEADDR(), and LowerRETURNADDR().
|
static |
Definition at line 652 of file SparcISelLowering.cpp.
References llvm::dyn_cast(), G, llvm::MachineFunction::getFunction(), llvm::Module::getFunction(), llvm::SelectionDAG::getMachineFunction(), llvm::GlobalValue::getParent(), llvm::CallSiteBase< FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy, IterTy >::hasFnAttr(), llvm::Function::hasFnAttribute(), and llvm::Attribute::ReturnsTwice.
Referenced by llvm::SparcTargetLowering::LowerCall_32(), and llvm::SparcTargetLowering::LowerCall_64().
|
static |
IntCondCCodeToICC - Convert a DAG integer condition code to a SPARC ICC condition.
Definition at line 1261 of file SparcISelLowering.cpp.
References llvm::SPCC::ICC_CC, llvm::SPCC::ICC_CS, llvm::SPCC::ICC_E, llvm::SPCC::ICC_G, llvm::SPCC::ICC_GE, llvm::SPCC::ICC_GU, llvm::SPCC::ICC_L, llvm::SPCC::ICC_LE, llvm::SPCC::ICC_LEU, llvm::SPCC::ICC_NE, llvm_unreachable, 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, and llvm::ISD::SETULT.
Referenced by LowerBR_CC(), and LowerSELECT_CC().
|
static |
Definition at line 946 of file SparcISelLowering.cpp.
References I, and llvm::LibFunc::strcmp.
Referenced by llvm::SparcTargetLowering::getSRetArgSize().
|
static |
Definition at line 1633 of file SparcISelLowering.cpp.
References llvm::SPISD::CMPFCC, llvm::SPISD::CMPICC, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SPISD::SELECT_FCC, llvm::SPISD::SELECT_ICC, llvm::SPISD::SELECT_XCC, and llvm::ISD::SETNE.
Referenced by LowerBR_CC(), and LowerSELECT_CC().
|
static |
Definition at line 2550 of file SparcISelLowering.cpp.
References llvm::ISD::ADDC, llvm::ISD::ADDE, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getMergeValues(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::getValue(), llvm::SDValue::getValueType(), llvm::SelectionDAG::getVTList(), llvm::MVT::Glue, llvm::HexagonISD::Hi, llvm::MVT::i32, llvm::MVT::i64, llvm_unreachable, llvm::HexagonISD::Lo, llvm::ISD::OR, llvm::ISD::SHL, llvm::ISD::SRL, llvm::ISD::SUBC, llvm::ISD::SUBE, llvm::ISD::TRUNCATE, and llvm::ISD::ZERO_EXTEND.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2176 of file SparcISelLowering.cpp.
References llvm::SPISD::BRFCC, llvm::SPISD::BRICC, llvm::SPISD::BRXCC, llvm::SPISD::CMPFCC, llvm::SPISD::CMPICC, llvm::MVT::f128, FPCondCCodeToFCC(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm::MVT::Glue, llvm::MVT::i32, IntCondCCodeToICC(), llvm::EVT::isInteger(), LookThroughSetCC(), llvm::SparcTargetLowering::LowerF128Compare(), and llvm::MVT::Other.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2292 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::SelectionDAG::getMergeValues(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SDValue::getValue(), llvm::MVT::i32, and llvm::ISD::SUB.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2046 of file SparcISelLowering.cpp.
References llvm::MVT::f32, llvm::MVT::f64, llvm::RTLIB::FPEXT_F32_F128, llvm::RTLIB::FPEXT_F64_F128, llvm::TargetLoweringBase::getLibcallName(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm_unreachable, and llvm::SparcTargetLowering::LowerF128Op().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2062 of file SparcISelLowering.cpp.
References llvm::MVT::f128, llvm::MVT::f32, llvm::MVT::f64, llvm::RTLIB::FPROUND_F128_F32, llvm::RTLIB::FPROUND_F128_F64, llvm::TargetLoweringBase::getLibcallName(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm_unreachable, and llvm::SparcTargetLowering::LowerF128Op().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2415 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::dyn_cast(), llvm::MVT::f128, llvm::MVT::f64, llvm::MemSDNode::getAlignment(), llvm::LoadSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMachineNode(), llvm::SelectionDAG::getMergeValues(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::LoadSDNode::getOffset(), llvm::SDValue::getOpcode(), llvm::MemSDNode::getPointerInfo(), llvm::SelectionDAG::getTargetConstant(), llvm::SDValue::getValueType(), llvm::MVT::i32, llvm::TargetOpcode::IMPLICIT_DEF, llvm::TargetOpcode::INSERT_SUBREG, llvm::MVT::Other, llvm::ISD::TokenFactor, and llvm::ISD::UNDEF.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2467 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::dyn_cast(), llvm::TargetOpcode::EXTRACT_SUBREG, llvm::MVT::f64, llvm::MemSDNode::getAlignment(), llvm::StoreSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getMachineNode(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::StoreSDNode::getOffset(), llvm::SDValue::getOpcode(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTargetConstant(), llvm::StoreSDNode::getValue(), llvm::SDValue::getValueType(), llvm::MVT::i32, llvm::MVT::Other, llvm::ISD::TokenFactor, and llvm::ISD::UNDEF.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2386 of file SparcISelLowering.cpp.
References llvm::MVT::f32, llvm::MVT::f64, llvm::ISD::FABS, llvm::ISD::FNEG, llvm::SelectionDAG::getMachineNode(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SelectionDAG::getTargetExtractSubreg(), llvm::SelectionDAG::getTargetInsertSubreg(), llvm::SDValue::getValueType(), and llvm::TargetOpcode::IMPLICIT_DEF.
Referenced by LowerFABS(), and LowerFNEG().
|
static |
Definition at line 2521 of file SparcISelLowering.cpp.
References llvm::MVT::f128, llvm::MVT::f64, llvm::ISD::FABS, llvm::SelectionDAG::getMachineNode(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SelectionDAG::getTargetExtractSubreg(), llvm::SelectionDAG::getTargetInsertSubreg(), llvm::SDValue::getValueType(), llvm::TargetOpcode::IMPLICIT_DEF, and LowerF64Op().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2511 of file SparcISelLowering.cpp.
References llvm::MVT::f128, llvm::MVT::f64, llvm::ISD::FNEG, llvm::SDValue::getValueType(), llvm::SparcTargetLowering::LowerF128Op(), and LowerF64Op().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2079 of file SparcISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::MVT::f128, llvm::MVT::f32, llvm::MVT::f64, llvm::RTLIB::FPTOSINT_F128_I32, llvm::RTLIB::FPTOSINT_F128_I64, llvm::SPISD::FTOI, llvm::SPISD::FTOX, llvm::TargetLoweringBase::getLibcallName(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm::MVT::i32, llvm::MVT::i64, llvm::TargetLoweringBase::isTypeLegal(), and llvm::SparcTargetLowering::LowerF128Op().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2136 of file SparcISelLowering.cpp.
References llvm::MVT::f128, llvm::RTLIB::FPTOUINT_F128_I32, llvm::RTLIB::FPTOUINT_F128_I64, llvm::TargetLoweringBase::getLibcallName(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm::MVT::i32, llvm::MVT::i64, llvm::TargetLoweringBase::isTypeLegal(), and llvm::SparcTargetLowering::LowerF128Op().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2318 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::SDValue::getConstantOperandVal(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getEntryNode(), getFLUSHW(), llvm::MachineFunction::getFrameInfo(), llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::SDValue::getValueType(), llvm::MVT::i32, and llvm::MachineFrameInfo::setFrameAddressIsTaken().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2349 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::MachineFunction::addLiveIn(), llvm::SDValue::getConstantOperandVal(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getEntryNode(), getFLUSHW(), llvm::MachineFunction::getFrameInfo(), llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::TargetLoweringBase::getPointerTy(), llvm::TargetLoweringBase::getRegClassFor(), llvm::SDValue::getValueType(), llvm::MVT::i32, llvm::MachineFrameInfo::setFrameAddressIsTaken(), and llvm::MachineFrameInfo::setReturnAddressIsTaken().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2213 of file SparcISelLowering.cpp.
References llvm::SPISD::CMPFCC, llvm::SPISD::CMPICC, llvm::MVT::f128, FPCondCCodeToFCC(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm::MVT::Glue, llvm::MVT::i32, IntCondCCodeToICC(), llvm::EVT::isInteger(), LookThroughSetCC(), llvm::SparcTargetLowering::LowerF128Compare(), llvm::SPISD::SELECT_FCC, llvm::SPISD::SELECT_ICC, and llvm::SPISD::SELECT_XCC.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2108 of file SparcISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::MVT::f128, llvm::MVT::f32, llvm::MVT::f64, llvm::TargetLoweringBase::getLibcallName(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm::MVT::i32, llvm::MVT::i64, llvm::TargetLoweringBase::isTypeLegal(), llvm::SPISD::ITOF, llvm::SparcTargetLowering::LowerF128Op(), llvm::RTLIB::SINTTOFP_I32_F128, llvm::RTLIB::SINTTOFP_I64_F128, and llvm::SPISD::XTOF.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2157 of file SparcISelLowering.cpp.
References llvm::MVT::f128, llvm::TargetLoweringBase::getLibcallName(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), llvm::MVT::i32, llvm::MVT::i64, llvm::TargetLoweringBase::isTypeLegal(), llvm::SparcTargetLowering::LowerF128Op(), llvm::RTLIB::UINTTOFP_I32_F128, and llvm::RTLIB::UINTTOFP_I64_F128.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2269 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getLoad(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDNode::getOperand(), llvm::EVT::getSizeInBits(), llvm::SelectionDAG::getStore(), llvm::SDValue::getValue(), llvm::SDValue::getValueType(), and llvm::SDNode::getValueType().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2249 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::TargetLoweringBase::getPointerTy(), llvm::SelectionDAG::getRegister(), llvm::SelectionDAG::getStore(), llvm::SparcMachineFunctionInfo::getVarArgsFrameOffset(), and llvm::MachineFrameInfo::setFrameAddressIsTaken().
Referenced by llvm::SparcTargetLowering::LowerOperation().
Definition at line 156 of file SparcISelLowering.cpp.
Referenced by llvm::SparcTargetLowering::LowerCall_32(), and llvm::SparcTargetLowering::LowerCall_64().