LLVM  6.0.0svn
Macros | Functions
LegalizeFloatTypes.cpp File Reference
#include "LegalizeTypes.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
Include dependency graph for LegalizeFloatTypes.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "legalize-types"
 

Functions

static RTLIB::Libcall GetFPLibCall (EVT VT, RTLIB::Libcall Call_F32, RTLIB::Libcall Call_F64, RTLIB::Libcall Call_F80, RTLIB::Libcall Call_F128, RTLIB::Libcall Call_PPCF128)
 GetFPLibCall - Return the right libcall for the given floating point type. More...
 
static ISD::NodeType GetPromotionOpcode (EVT OpVT, EVT RetVT)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "legalize-types"

Definition at line 27 of file LegalizeFloatTypes.cpp.

Function Documentation

◆ GetFPLibCall()

static RTLIB::Libcall GetFPLibCall ( EVT  VT,
RTLIB::Libcall  Call_F32,
RTLIB::Libcall  Call_F64,
RTLIB::Libcall  Call_F80,
RTLIB::Libcall  Call_F128,
RTLIB::Libcall  Call_PPCF128 
)
static

GetFPLibCall - Return the right libcall for the given floating point type.

Definition at line 30 of file LegalizeFloatTypes.cpp.

References llvm::ISD::ADD, llvm::ISD::AND, llvm::ISD::ANY_EXTEND, llvm::lltok::APFloat, assert(), llvm::ISD::BITCAST, llvm::APFloat::bitcastToAPInt(), llvm::EVT::bitsGE(), llvm::EVT::bitsLE(), llvm::ISD::BR_CC, llvm::ISD::BUILD_PAIR, llvm::ISD::BUILD_VECTOR, C, llvm::APInt::clearBit(), llvm::ISD::ConstantFP, llvm::ISD::CopyFromReg, llvm::ISD::CopyToReg, llvm::dbgs(), DEBUG, llvm::SDNode::dump(), llvm::SelectionDAG::EVTToAPFloatSemantics(), llvm::ISD::EXTRACT_ELEMENT, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::MVT::f128, llvm::MVT::f16, llvm::MVT::f32, llvm::MVT::f64, llvm::MVT::f80, llvm::ISD::FABS, llvm::ISD::FADD, llvm::ISD::FCEIL, llvm::ISD::FCOPYSIGN, llvm::ISD::FCOS, llvm::ISD::FDIV, llvm::ISD::FEXP, llvm::ISD::FEXP2, llvm::ISD::FFLOOR, first, llvm::MVT::FIRST_INTEGER_VALUETYPE, llvm::ISD::FLOG, llvm::ISD::FLOG10, llvm::ISD::FLOG2, llvm::ISD::FMA, llvm::ISD::FMAXNUM, llvm::ISD::FMINNUM, llvm::ISD::FMUL, llvm::ISD::FNEARBYINT, llvm::ISD::FNEG, llvm::ISD::FP16_TO_FP, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_ROUND_INREG, llvm::ISD::FP_TO_FP16, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ISD::FPOW, llvm::ISD::FPOWI, llvm::ISD::FREM, llvm::ISD::FRINT, llvm::ISD::FROUND, llvm::ISD::FSIN, llvm::ISD::FSQRT, llvm::ISD::FSUB, llvm::ISD::FTRUNC, llvm::APInt::getAllOnesValue(), llvm::LoadSDNode::getBasePtr(), llvm::StoreSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getCondCode(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getConstantFP(), llvm::SDNode::getConstantOperandVal(), llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getDataLayout(), llvm::LoadSDNode::getExtensionType(), llvm::SelectionDAG::getExtLoad(), llvm::RTLIB::getFPEXT(), llvm::RTLIB::getFPROUND(), llvm::RTLIB::getFPTOSINT(), llvm::RTLIB::getFPTOUINT(), llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getLoad(), llvm::MemSDNode::getMemOperand(), llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::SDNode::getNumOperands(), llvm::SDNode::getNumValues(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::APInt::getRawData(), llvm::SelectionDAG::getSelect(), llvm::SelectionDAG::getSelectCC(), llvm::SelectionDAG::getSetCC(), llvm::TargetLoweringBase::getShiftAmountTy(), llvm::EVT::getSimpleVT(), llvm::RTLIB::getSINTTOFP(), llvm::EVT::getSizeInBits(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTruncStore(), llvm::TargetLoweringBase::getTypeToTransformTo(), llvm::RTLIB::getUINTTOFP(), llvm::SelectionDAG::getUNDEF(), llvm::SelectionDAG::getVAArg(), llvm::SDValue::getValue(), llvm::StoreSDNode::getValue(), llvm::ConstantFPSDNode::getValueAPF(), llvm::SDValue::getValueType(), llvm::SelectionDAG::getValueType(), llvm::SDNode::getValueType(), llvm::EVT::getVectorElementType(), llvm::MipsISD::Hi, llvm::MVT::i128, llvm::MVT::i32, llvm::MVT::i64, llvm::DataLayout::isBigEndian(), llvm::EVT::isByteSized(), llvm::ISD::isNormalLoad(), llvm::ISD::isNormalStore(), llvm::StoreSDNode::isTruncatingStore(), llvm::ISD::isUNINDEXEDLoad(), llvm::ISD::isUNINDEXEDStore(), llvm::MVT::LAST_INTEGER_VALUETYPE, llvm::ARM_MB::LD, llvm_unreachable, llvm::MipsISD::Lo, llvm::ISD::LOAD, llvm::TargetLowering::makeLibCall(), llvm::BitmaskEnumDetail::Mask(), llvm::ISD::MERGE_VALUES, llvm::MachineMemOperand::MODereferenceable, llvm::MachineMemOperand::MOInvariant, N, llvm::ISD::NON_EXTLOAD, llvm::ISD::OR, llvm::APFloatBase::PPCDoubleDouble(), llvm::MVT::ppcf128, llvm::ISD::Register, llvm::ISD::SELECT, llvm::ISD::SELECT_CC, llvm::ISD::SETCC, llvm::ISD::SETEQ, llvm::ISD::SETGE, llvm::ISD::SETLT, llvm::ISD::SETNE, llvm::ISD::SETOEQ, llvm::ISD::SETUNE, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND, Signed, llvm::MVT::SimpleTy, llvm::ISD::SINT_TO_FP, llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Size, llvm::TargetLowering::softenSetCCOperands(), llvm::ISD::SRL, llvm::ARM_MB::ST, llvm::ISD::STORE, llvm::ISD::SUB, llvm::ISD::TRUNCATE, llvm::TargetLoweringBase::TypePromoteFloat, llvm::TargetLoweringBase::TypeSoftenFloat, llvm::ISD::UINT_TO_FP, llvm::ISD::UNDEF, llvm::SelectionDAG::UpdateNodeOperands(), llvm::ISD::VAARG, and llvm::ISD::ZERO_EXTEND.

◆ GetPromotionOpcode()

static ISD::NodeType GetPromotionOpcode ( EVT  OpVT,
EVT  RetVT 
)
static

Definition at line 1777 of file LegalizeFloatTypes.cpp.

References assert(), llvm::ISD::BITCAST, llvm::APFloat::bitcastToAPInt(), C, llvm::ISD::ConstantFP, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::MVT::f16, llvm::ISD::FABS, llvm::ISD::FADD, llvm::ISD::FCEIL, llvm::ISD::FCOPYSIGN, llvm::ISD::FCOS, llvm::ISD::FDIV, llvm::ISD::FEXP, llvm::ISD::FEXP2, llvm::ISD::FFLOOR, llvm::ISD::FLOG, llvm::ISD::FLOG10, llvm::ISD::FLOG2, llvm::ISD::FMA, llvm::ISD::FMAD, llvm::ISD::FMAXNAN, llvm::ISD::FMAXNUM, llvm::ISD::FMINNAN, llvm::ISD::FMINNUM, llvm::ISD::FMUL, llvm::ISD::FNEARBYINT, llvm::ISD::FNEG, llvm::ISD::FP16_TO_FP, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_TO_FP16, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ISD::FPOW, llvm::ISD::FPOWI, llvm::ISD::FREM, llvm::ISD::FRINT, llvm::ISD::FROUND, llvm::ISD::FSIN, llvm::ISD::FSQRT, llvm::ISD::FSUB, llvm::ISD::FTRUNC, llvm::MemSDNode::getAAInfo(), llvm::LSBaseSDNode::getAddressingMode(), llvm::MemSDNode::getAlignment(), llvm::LoadSDNode::getBasePtr(), llvm::StoreSDNode::getBasePtr(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getContext(), llvm::LoadSDNode::getExtensionType(), llvm::MachineMemOperand::getFlags(), llvm::SDNode::getFlags(), llvm::EVT::getIntegerVT(), llvm::SelectionDAG::getIntPtrConstant(), llvm::SelectionDAG::getLoad(), llvm::MemSDNode::getMemOperand(), llvm::SDValue::getNode(), llvm::SelectionDAG::getNode(), llvm::LoadSDNode::getOffset(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::MemSDNode::getPointerInfo(), llvm::SelectionDAG::getSetCC(), llvm::EVT::getSizeInBits(), llvm::SelectionDAG::getStore(), llvm::TargetLoweringBase::getTypeToTransformTo(), llvm::SelectionDAG::getUNDEF(), llvm::SDValue::getValue(), llvm::StoreSDNode::getValue(), llvm::ConstantFPSDNode::getValueAPF(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), llvm::EVT::getVectorElementType(), llvm::EVT::getVectorNumElements(), llvm::MipsISD::Hi, llvm_unreachable, llvm::MipsISD::Lo, llvm::ISD::LOAD, llvm::MachineMemOperand::MODereferenceable, llvm::MachineMemOperand::MOInvariant, N, llvm::report_fatal_error(), llvm::ISD::SELECT, llvm::ISD::SELECT_CC, llvm::ISD::SETCC, llvm::ISD::SINT_TO_FP, llvm::ARM_MB::ST, llvm::ISD::STORE, llvm::TargetLoweringBase::TypeScalarizeVector, llvm::TargetLoweringBase::TypeSplitVector, llvm::TargetLoweringBase::TypeWidenVector, llvm::ISD::UINT_TO_FP, and llvm::ISD::UNDEF.