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

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "legalize-types"
 

Functions

static bool isLogicalMaskOp (unsigned Opcode)
 
static bool isSETCCorConvertedSETCC (SDValue N)
 
static EVT FindMemType (SelectionDAG &DAG, const TargetLowering &TLI, unsigned Width, EVT WidenVT, unsigned Align=0, unsigned WidenEx=0)
 
static SDValue BuildVectorFromScalar (SelectionDAG &DAG, EVT VecTy, SmallVectorImpl< SDValue > &LdOps, unsigned Start, unsigned End)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "legalize-types"

Definition at line 29 of file LegalizeVectorTypes.cpp.

Function Documentation

◆ BuildVectorFromScalar()

static SDValue BuildVectorFromScalar ( SelectionDAG DAG,
EVT  VecTy,
SmallVectorImpl< SDValue > &  LdOps,
unsigned  Start,
unsigned  End 
)
static

Definition at line 3699 of file LegalizeVectorTypes.cpp.

References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, assert(), llvm::ISD::BITCAST, llvm::EVT::bitsLT(), llvm::ISD::CONCAT_VECTORS, llvm::WebAssembly::End, llvm::ISD::EXTRACT_SUBVECTOR, llvm::ISD::EXTRACT_VECTOR_ELT, FindMemType(), llvm::MemSDNode::getAAInfo(), llvm::MemSDNode::getAlignment(), llvm::LoadSDNode::getBasePtr(), llvm::StoreSDNode::getBasePtr(), llvm::SelectionDAG::getBuildVector(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getDataLayout(), llvm::SelectionDAG::getExtLoad(), llvm::MachineMemOperand::getFlags(), llvm::SelectionDAG::getLoad(), llvm::MemSDNode::getMemOperand(), llvm::MemSDNode::getMemoryVT(), llvm::SelectionDAG::getNode(), llvm::SelectionDAG::getObjectPtrOffset(), llvm::MemSDNode::getPointerInfo(), llvm::EVT::getSizeInBits(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTargetLoweringInfo(), llvm::SelectionDAG::getTruncStore(), llvm::TargetLoweringBase::getTypeToTransformTo(), llvm::SelectionDAG::getUNDEF(), llvm::SDValue::getValue(), llvm::StoreSDNode::getValue(), llvm::SDNode::getValueSizeInBits(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), llvm::EVT::getVectorElementType(), llvm::TargetLoweringBase::getVectorIdxTy(), llvm::EVT::getVectorNumElements(), llvm::EVT::getVectorVT(), llvm::MachinePointerInfo::getWithOffset(), llvm::ISD::INSERT_VECTOR_ELT, llvm::EVT::isVector(), llvm::HexagonMCInstrInfo::isVector(), llvm::MemSDNode::isVolatile(), llvm::makeArrayRef(), llvm::MinAlign(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::ISD::SCALAR_TO_VECTOR, llvm::SmallVectorTemplateCommon< T >::size(), and llvm::ARM_MB::ST.

◆ FindMemType()

static EVT FindMemType ( SelectionDAG DAG,
const TargetLowering TLI,
unsigned  Width,
EVT  WidenVT,
unsigned  Align = 0,
unsigned  WidenEx = 0 
)
static

◆ isLogicalMaskOp()

static bool isLogicalMaskOp ( unsigned  Opcode)
inlinestatic

Definition at line 2984 of file LegalizeVectorTypes.cpp.

References llvm::ISD::AND, llvm::ISD::OR, and llvm::ISD::XOR.

Referenced by isSETCCorConvertedSETCC().

◆ isSETCCorConvertedSETCC()

static bool isSETCCorConvertedSETCC ( SDValue  N)
inlinestatic

Definition at line 2997 of file LegalizeVectorTypes.cpp.

References llvm::ISD::ANY_EXTEND, assert(), llvm::ISD::BITCAST, llvm::EVT::changeVectorElementTypeToInteger(), llvm::ISD::CONCAT_VECTORS, llvm::dbgs(), DEBUG, llvm::SDNode::dump(), llvm::ISD::EXTRACT_SUBVECTOR, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FCOPYSIGN, llvm::MVT::FIRST_VECTOR_VALUETYPE, llvm::ISD::FP_EXTEND, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::SelectionDAG::getAnyExtendVectorInReg(), llvm::MaskedLoadStoreSDNode::getBasePtr(), llvm::MaskedGatherScatterSDNode::getBasePtr(), llvm::SelectionDAG::getBuildVector(), llvm::MemSDNode::getChain(), llvm::SelectionDAG::getConstant(), llvm::SelectionDAG::getContext(), llvm::SelectionDAG::getDataLayout(), llvm::EVT::getHalfNumVectorElementsVT(), llvm::MaskedGatherScatterSDNode::getIndex(), llvm::MaskedLoadStoreSDNode::getMask(), llvm::MaskedGatherScatterSDNode::getMask(), llvm::SelectionDAG::getMaskedScatter(), llvm::SelectionDAG::getMaskedStore(), llvm::ShuffleVectorSDNode::getMaskElt(), 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::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::EVT::getScalarSizeInBits(), llvm::EVT::getScalarType(), llvm::TargetLoweringBase::getSetCCResultType(), llvm::SelectionDAG::getSignExtendVectorInReg(), llvm::EVT::getSizeInBits(), llvm::TargetLoweringBase::getTypeAction(), llvm::TargetLoweringBase::getTypeToTransformTo(), llvm::SelectionDAG::getUNDEF(), llvm::MaskedStoreSDNode::getValue(), llvm::MaskedGatherScatterSDNode::getValue(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), llvm::EVT::getVectorElementType(), llvm::TargetLoweringBase::getVectorIdxTy(), llvm::EVT::getVectorNumElements(), llvm::SelectionDAG::getVectorShuffle(), llvm::EVT::getVectorVT(), llvm::SelectionDAG::getVTList(), llvm::SelectionDAG::getZeroExtendVectorInReg(), llvm::MVT::i1, llvm::ISD::INSERT_SUBVECTOR, llvm::ISD::isBuildVectorOfConstantSDNodes(), llvm::MaskedStoreSDNode::isCompressingStore(), llvm::EVT::isInteger(), isLogicalMaskOp(), llvm::isPowerOf2_64(), llvm::StoreSDNode::isTruncatingStore(), llvm::TargetLoweringBase::isTypeLegal(), llvm::SDNode::isUndef(), llvm::EVT::isVector(), llvm::MVT::LAST_VECTOR_VALUETYPE, llvm_unreachable, llvm::BitmaskEnumDetail::Mask(), llvm::ISD::MSCATTER, llvm::ISD::MSTORE, N, llvm::MVT::Other, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::ISD::SELECT_CC, llvm::ISD::SETCC, llvm::ISD::SIGN_EXTEND, llvm::ISD::SINT_TO_FP, llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Size, llvm::ARM_MB::ST, llvm::ISD::STORE, llvm::ISD::TokenFactor, llvm::ISD::TRUNCATE, llvm::TargetLoweringBase::TypeLegal, llvm::TargetLoweringBase::TypeSplitVector, llvm::TargetLoweringBase::TypeWidenVector, llvm::ISD::UINT_TO_FP, llvm::SelectionDAG::UnrollVectorOp(), llvm::ISD::VSELECT, llvm::MVT::x86mmx, and llvm::ISD::ZERO_EXTEND.