LLVM  4.0.0
Macros | Functions
LegalizeDAG.cpp File Reference
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/Triple.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineJumpTableInfo.h"
#include "llvm/CodeGen/SelectionDAG.h"
#include "llvm/CodeGen/SelectionDAGNodes.h"
#include "llvm/IR/CallingConv.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DataLayout.h"
#include "llvm/IR/DebugInfo.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/raw_ostream.h"
#include "llvm/Target/TargetFrameLowering.h"
#include "llvm/Target/TargetLowering.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetSubtargetInfo.h"
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 canCombineSinCosLibcall (SDNode *Node, const TargetLowering &TLI, const TargetMachine &TM)
 Return true if sincos libcall is available and can be used to combine sin and cos. 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

#define DEBUG_TYPE   "legalizedag"

Definition at line 40 of file LegalizeDAG.cpp.

Function Documentation

static bool canCombineSinCosLibcall ( SDNode Node,
const TargetLowering TLI,
const TargetMachine TM 
)
static

Return true if sincos libcall is available and can be used to combine sin and cos.

Definition at line 2131 of file LegalizeDAG.cpp.

References llvm::TargetMachine::getTargetTriple(), llvm::Triple::isGNUEnvironment(), isSinCosLibcallAvailable(), llvm::TargetMachine::Options, and llvm::TargetOptions::UnsafeFPMath.

static bool ExpandBVWithShuffles ( SDNode Node,
SelectionDAG DAG,
const TargetLowering TLI,
SDValue Res 
)
static
static MVT getPromotedVectorElementType ( const TargetLowering TLI,
MVT  EltVT,
MVT  NewEltVT 
)
static
static bool isSinCosLibcallAvailable ( SDNode Node,
const TargetLowering TLI 
)
static
static bool useSinCos ( SDNode Node)
static