|
LLVM
3.7.0
|
#include "SparcISelLowering.h"#include "MCTargetDesc/SparcMCExpr.h"#include "SparcMachineFunctionInfo.h"#include "SparcRegisterInfo.h"#include "SparcTargetMachine.h"#include "SparcTargetObjectFile.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 81 of file SparcISelLowering.cpp.
References llvm::CCState::addLoc(), llvm::CCState::AllocateStack(), llvm::MVT::f128, llvm::MVT::f32, llvm::MVT::f64, llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::MVT::getSizeInBits(), llvm::MVT::i64, and size.
|
static |
Definition at line 126 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 52 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 39 of file SparcISelLowering.cpp.
References llvm::CCState::addLoc(), llvm::CCValAssign::getCustomMem(), and llvm::ISD::ArgFlagsTy::isSRet().
|
static |
Definition at line 1010 of file SparcISelLowering.cpp.
References llvm::CCValAssign::BCvt, llvm::MVT::f128, llvm::MVT::f64, llvm::CCValAssign::getCustomReg(), llvm::CCValAssign::getLocInfo(), llvm::CCValAssign::getLocReg(), llvm::CCValAssign::getLocVT(), llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::CCValAssign::getValNo(), llvm::CCValAssign::getValVT(), llvm::MVT::i128, 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 1344 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 2434 of file SparcISelLowering.cpp.
References llvm::SPISD::FLUSHW, llvm::SelectionDAG::getEntryNode(), llvm::SelectionDAG::getNode(), and llvm::MVT::Other.
Referenced by getFRAMEADDR().
|
static |
Definition at line 2441 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getEntryNode(), getFLUSHW(), llvm::MachineFunction::getFrameInfo(), llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getNode(), llvm::SparcSubtarget::getStackPointerBias(), llvm::SDValue::getValueType(), llvm::SparcSubtarget::is64Bit(), and llvm::MachineFrameInfo::setFrameAddressIsTaken().
Referenced by LowerFRAMEADDR(), and LowerRETURNADDR().
|
static |
Definition at line 662 of file SparcISelLowering.cpp.
References llvm::dyn_cast(), G, llvm::MachineFunction::getFunction(), llvm::Module::getFunction(), llvm::SelectionDAG::getMachineFunction(), llvm::GlobalValue::getParent(), llvm::CallSiteBase< FunTy, BBTy, 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 1326 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().
Definition at line 959 of file SparcISelLowering.cpp.
References I.
Referenced by llvm::SparcTargetLowering::getSRetArgSize().
|
static |
Definition at line 1745 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 2680 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::MipsISD::Hi, llvm::MVT::i32, llvm::MVT::i64, llvm_unreachable, llvm::MipsISD::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 2777 of file SparcISelLowering.cpp.
References llvm::Monotonic.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2293 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 2410 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::SparcSubtarget::getStackPointerBias(), llvm::SDValue::getValue(), llvm::SDNode::getValueType(), llvm::SparcSubtarget::is64Bit(), llvm::SP, and llvm::ISD::SUB.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2163 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 2179 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 2554 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 2605 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 2525 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 LowerFNEGorFABS().
|
static |
Definition at line 2648 of file SparcISelLowering.cpp.
References llvm::MVT::f128, llvm::MVT::f64, llvm::ISD::FABS, llvm::ISD::FNEG, 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 2196 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 2253 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 2480 of file SparcISelLowering.cpp.
References llvm::SDValue::getConstantOperandVal(), and getFRAMEADDR().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2489 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::MachineFunction::addLiveIn(), llvm::SDValue::getConstantOperandVal(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getEntryNode(), getFRAMEADDR(), 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::SparcSubtarget::is64Bit(), llvm::MachineFrameInfo::setReturnAddressIsTaken(), and llvm::TargetLowering::verifyReturnAddressArgumentIsConstant().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2330 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 2225 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 2274 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 2731 of file SparcISelLowering.cpp.
References llvm::ISD::EXTRACT_ELEMENT, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getMergeValues(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SelectionDAG::getSetCC(), llvm::SDValue::getValueType(), llvm::MVT::i128, llvm::MVT::i32, llvm::MVT::i64, llvm::TargetLowering::makeLibCall(), llvm::RTLIB::MUL_I128, llvm::ISD::SETNE, llvm::ISD::SMULO, llvm::ISD::SRA, llvm::ISD::UMULO, and llvm::SDNode::use_empty().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2386 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::DL, 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(), llvm::SDNode::getValueType(), and fuzzer::min().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2366 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::DL, llvm::SelectionDAG::getDataLayout(), 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 163 of file SparcISelLowering.cpp.
Referenced by llvm::SparcTargetLowering::LowerCall_32(), and llvm::SparcTargetLowering::LowerCall_64().
1.8.6