LLVM  10.0.0svn
Macros | Functions
LegalizeDAG.cpp File Reference
#include "llvm/ADT/APFloat.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/ISDOpcodes.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/CodeGen/MachineMemOperand.h"
#include "llvm/CodeGen/RuntimeLibcalls.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGNodes.h"
#include "llvm/CodeGen/TargetFrameLowering.h"
#include "llvm/CodeGen/TargetLowering.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/CodeGen/ValueTypes.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Type.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Compiler.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MachineValueType.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"
#include <algorithm>
#include <cassert>
#include <cstdint>
#include <tuple>
#include <utility>
Include dependency graph for LegalizeDAG.cpp:

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "legalizedag"
 

Functions

static bool ExpandBVWithShuffles (SDNode *Node, SelectionDAG &DAG, const TargetLowering &TLI, SDValue &Res)
 
static bool isSinCosLibcallAvailable (SDNode *Node, const TargetLowering &TLI)
 Return true if sincos libcall is available. More...
 
static bool useSinCos (SDNode *Node)
 Only issue sincos libcall if both sin and cos are needed. More...
 
static MVT getPromotedVectorElementType (const TargetLowering &TLI, MVT EltVT, MVT NewEltVT)
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "legalizedag"

Definition at line 55 of file LegalizeDAG.cpp.

Function Documentation

◆ ExpandBVWithShuffles()

static bool ExpandBVWithShuffles ( SDNode Node,
SelectionDAG DAG,
const TargetLowering TLI,
SDValue Res 
)
static

◆ getPromotedVectorElementType()

static MVT getPromotedVectorElementType ( const TargetLowering TLI,
MVT  EltVT,
MVT  NewEltVT 
)
static

Definition at line 4056 of file LegalizeDAG.cpp.

References llvm::ISD::AND, llvm::ISD::ANY_EXTEND, assert(), llvm::ISD::BITCAST, llvm::ISD::BITREVERSE, llvm::ISD::BR_CC, llvm::ISD::BSWAP, llvm::ISD::CTLZ, llvm::ISD::CTLZ_ZERO_UNDEF, llvm::ISD::CTPOP, llvm::ISD::CTTZ, llvm::ISD::CTTZ_ZERO_UNDEF, llvm::dbgs(), llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::SDNode::getConstantOperandVal(), llvm::SDNode::getFlags(), llvm::SDValue::getNode(), llvm::APInt::getOneBitSet(), llvm::SDNode::getOpcode(), llvm::SDNode::getOperand(), llvm::MVT::getScalarSizeInBits(), llvm::SDValue::getSimpleValueType(), llvm::SDNode::getSimpleValueType(), llvm::EVT::getSizeInBits(), llvm::MVT::getSizeInBits(), llvm::SDValue::getValue(), llvm::SDNode::getValueType(), llvm::MVT::getVectorVT(), llvm::ISD::INSERT_VECTOR_ELT, llvm::EVT::isInteger(), llvm::MVT::isInteger(), llvm::TargetLoweringBase::isTypeLegal(), llvm::EVT::isVector(), llvm::MVT::isVector(), LLVM_DEBUG, llvm::ISD::MUL, llvm::ISD::OR, llvm::SmallVectorTemplateBase< T >::push_back(), Results, llvm::ISD::SDIV, llvm::ISD::SELECT, llvm::ISD::SETCC, llvm::SDNode::setFlags(), llvm::ISD::SIGN_EXTEND, llvm::ISD::SINT_TO_FP, llvm::ISD::SMUL_LOHI, llvm::ISD::SREM, llvm::ISD::SRL, llvm::ISD::SUB, llvm::ISD::TRUNCATE, llvm::ISD::UDIV, llvm::ISD::UINT_TO_FP, llvm::ISD::UMUL_LOHI, llvm::ISD::UREM, llvm::ISD::VAARG, llvm::ISD::VECTOR_SHUFFLE, llvm::ISD::XOR, and llvm::ISD::ZERO_EXTEND.

◆ isSinCosLibcallAvailable()

static bool isSinCosLibcallAvailable ( SDNode Node,
const TargetLowering TLI 
)
static

◆ useSinCos()

static bool useSinCos ( SDNode Node)
static