|
LLVM
4.0.0
|
#include "SparcISelLowering.h"#include "MCTargetDesc/SparcMCExpr.h"#include "SparcMachineFunctionInfo.h"#include "SparcRegisterInfo.h"#include "SparcTargetMachine.h"#include "SparcTargetObjectFile.h"#include "llvm/ADT/StringSwitch.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 105 of file SparcISelLowering.cpp.
References llvm::CCState::addLoc(), llvm::CCState::AllocateStack(), assert(), llvm::MVT::f128, llvm::MVT::f32, llvm::MVT::f64, llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::MVT::getSizeInBits(), llvm::MVT::i64, and Offset.
|
static |
Definition at line 150 of file SparcISelLowering.cpp.
References llvm::CCState::addLoc(), llvm::CCValAssign::AExt, llvm::CCState::AllocateStack(), assert(), llvm::MVT::f32, llvm::CCValAssign::getCustomReg(), llvm::CCValAssign::getMem(), llvm::CCValAssign::getReg(), llvm::MVT::getSizeInBits(), llvm::MVT::i32, llvm::MVT::i64, and Offset.
|
static |
Definition at line 81 of file SparcISelLowering.cpp.
References llvm::CCState::addLoc(), llvm::CCState::AllocateReg(), and llvm::CCValAssign::getCustomReg().
|
static |
Definition at line 53 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 40 of file SparcISelLowering.cpp.
References llvm::CCState::addLoc(), assert(), llvm::CCValAssign::getCustomMem(), and llvm::ISD::ArgFlagsTy::isSRet().
|
static |
Definition at line 1088 of file SparcISelLowering.cpp.
References assert(), 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(), i, llvm::MVT::i128, llvm::MVT::i64, llvm::CCValAssign::isRegLoc(), Offset, 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 1425 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 2631 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 2638 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(), Offset, Ptr, and llvm::MachineFrameInfo::setFrameAddressIsTaken().
Referenced by LowerFRAMEADDR(), and LowerRETURNADDR().
|
static |
Definition at line 693 of file SparcISelLowering.cpp.
References llvm::dyn_cast(), E, G, llvm::Module::getFunction(), llvm::MachineFunction::getFunction(), llvm::SelectionDAG::getMachineFunction(), llvm::GlobalValue::getParent(), llvm::CallSiteBase< FunTy, BBTy, ValTy, UserTy, UseTy, InstrTy, CallTy, InvokeTy, IterTy >::hasFnAttr(), and llvm::Function::hasFnAttribute().
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 1407 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 1037 of file SparcISelLowering.cpp.
References I, and fuzzer::strcmp.
Referenced by llvm::SparcTargetLowering::getSRetArgSize().
|
static |
Definition at line 1902 of file SparcISelLowering.cpp.
References llvm::SPISD::CMPFCC, llvm::SPISD::CMPICC, llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::isNullConstant(), llvm::isOneConstant(), 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 2910 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 3007 of file SparcISelLowering.cpp.
References llvm::isStrongerThanMonotonic().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2437 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 2567 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::getCopyToReg(), llvm::SparcSubtarget::getFrameLowering(), llvm::SelectionDAG::getMachineFunction(), llvm::SelectionDAG::getMergeValues(), llvm::MachineFunction::getName(), llvm::SelectionDAG::getNode(), llvm::SDValue::getOperand(), llvm::TargetFrameLowering::getStackAlignment(), llvm::SparcSubtarget::getStackPointerBias(), llvm::SDValue::getValue(), llvm::SDNode::getValueType(), llvm::SparcSubtarget::is64Bit(), llvm::report_fatal_error(), and llvm::ISD::SUB.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2307 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 2323 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 2754 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, assert(), 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::MemSDNode::getPointerInfo(), llvm::SelectionDAG::getTargetConstant(), llvm::SDValue::getValueType(), llvm::MVT::i32, llvm::SDValue::isUndef(), llvm::MVT::Other, and llvm::ISD::TokenFactor.
Referenced by LowerLOAD().
|
static |
Definition at line 2809 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, assert(), llvm::dyn_cast(), 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::SelectionDAG::getStore(), llvm::SelectionDAG::getTargetConstant(), llvm::StoreSDNode::getValue(), llvm::SDValue::getValueType(), llvm::MVT::i32, llvm::SDValue::isUndef(), llvm::MVT::Other, and llvm::ISD::TokenFactor.
Referenced by LowerSTORE().
|
static |
Definition at line 2720 of file SparcISelLowering.cpp.
References assert(), llvm::MVT::f32, llvm::MVT::f64, llvm::ISD::FABS, llvm::ISD::FNEG, llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getMachineNode(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getTargetExtractSubreg(), llvm::SelectionDAG::getTargetInsertSubreg(), llvm::SDValue::getValueType(), and llvm::DataLayout::isLittleEndian().
Referenced by LowerFNEGorFABS().
|
static |
Definition at line 2867 of file SparcISelLowering.cpp.
References assert(), llvm::MVT::f128, llvm::MVT::f64, llvm::ISD::FABS, llvm::ISD::FNEG, llvm::SDValue::getNode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::getValueType(), and LowerF64Op().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2340 of file SparcISelLowering.cpp.
References assert(), 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 2397 of file SparcISelLowering.cpp.
References assert(), 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 2676 of file SparcISelLowering.cpp.
References llvm::SDValue::getConstantOperandVal(), and getFRAMEADDR().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2797 of file SparcISelLowering.cpp.
References llvm::MVT::f128, llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getNode(), and LowerF128Load().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2685 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(), Offset, Ptr, llvm::MachineFrameInfo::setReturnAddressIsTaken(), and llvm::TargetLowering::verifyReturnAddressArgumentIsConstant().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2474 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 2369 of file SparcISelLowering.cpp.
References assert(), 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 2845 of file SparcISelLowering.cpp.
References llvm::ISD::BITCAST, llvm::MVT::f128, llvm::MemSDNode::getAAInfo(), llvm::MemSDNode::getAlignment(), llvm::StoreSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::MachineMemOperand::getFlags(), llvm::MemSDNode::getMemOperand(), llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::MemSDNode::getPointerInfo(), llvm::SelectionDAG::getStore(), llvm::StoreSDNode::getValue(), llvm::MVT::i64, LowerF128Store(), and llvm::MVT::v2i32.
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2418 of file SparcISelLowering.cpp.
References assert(), 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 2961 of file SparcISelLowering.cpp.
References AMDGPU::RuntimeMD::KeyName::Args, assert(), 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 2544 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(), llvm::SDNode::getValueType(), and fuzzer::min().
Referenced by llvm::SparcTargetLowering::LowerOperation().
|
static |
Definition at line 2524 of file SparcISelLowering.cpp.
References llvm::ISD::ADD, 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(), Offset, and llvm::MachineFrameInfo::setFrameAddressIsTaken().
Referenced by llvm::SparcTargetLowering::LowerOperation().
Definition at line 187 of file SparcISelLowering.cpp.
Referenced by llvm::SparcTargetLowering::LowerCall_32(), and llvm::SparcTargetLowering::LowerCall_64().
1.8.6