LLVM API Documentation

llvm::SelectionDAG Class Reference

#include <SelectionDAG.h>

Collaboration diagram for llvm::SelectionDAG:
[legend]

List of all members.

Public Types

typedef ilist< SDNode >
::const_iterator 
allnodes_const_iterator
typedef ilist< SDNode >::iterator allnodes_iterator

Public Member Functions

 SelectionDAG (TargetLowering &tli, FunctionLoweringInfo &fli)
 ~SelectionDAG ()
void init (MachineFunction &mf, MachineModuleInfo *mmi, DwarfWriter *dw)
void clear ()
MachineFunction & getMachineFunction () const
const TargetMachine & getTarget () const
TargetLowering & getTargetLoweringInfo () const
FunctionLoweringInfo & getFunctionLoweringInfo () const
MachineModuleInfo * getMachineModuleInfo () const
DwarfWriter * getDwarfWriter () const
void viewGraph (const std::string &Title)
void viewGraph ()
void clearGraphAttrs ()
void setGraphAttrs (const SDNode *N, const char *Attrs)
const std::string getGraphAttrs (const SDNode *N) const
void setGraphColor (const SDNode *N, const char *Color)
void setSubgraphColor (SDNode *N, const char *Color)
allnodes_const_iterator allnodes_begin () const
allnodes_const_iterator allnodes_end () const
allnodes_iterator allnodes_begin ()
allnodes_iterator allnodes_end ()
ilist< SDNode >::size_type allnodes_size () const
const SDValue & getRoot () const
SDValue getEntryNode () const
const SDValue & setRoot (SDValue N)
void Combine (CombineLevel Level, AliasAnalysis &AA, bool Fast)
bool LegalizeTypes ()
void Legalize (bool TypesNeedLegalizing)
void RemoveDeadNodes ()
void DeleteNode (SDNode *N)
SDVTList getVTList (MVT VT)
SDVTList getVTList (MVT VT1, MVT VT2)
SDVTList getVTList (MVT VT1, MVT VT2, MVT VT3)
SDVTList getVTList (MVT VT1, MVT VT2, MVT VT3, MVT VT4)
SDVTList getVTList (const MVT *VTs, unsigned NumVTs)
const MVT * getNodeValueTypes (MVT VT)
 getNodeValueTypes - These are obsolete, use getVTList instead.
const MVT * getNodeValueTypes (MVT VT1, MVT VT2)
const MVT * getNodeValueTypes (MVT VT1, MVT VT2, MVT VT3)
const MVT * getNodeValueTypes (MVT VT1, MVT VT2, MVT VT3, MVT VT4)
const MVT * getNodeValueTypes (const std::vector< MVT > &vtList)
SDValue getConstant (uint64_t Val, MVT VT, bool isTarget=false)
SDValue getConstant (const APInt &Val, MVT VT, bool isTarget=false)
SDValue getConstant (const ConstantInt &Val, MVT VT, bool isTarget=false)
SDValue getIntPtrConstant (uint64_t Val, bool isTarget=false)
SDValue getTargetConstant (uint64_t Val, MVT VT)
SDValue getTargetConstant (const APInt &Val, MVT VT)
SDValue getTargetConstant (const ConstantInt &Val, MVT VT)
SDValue getConstantFP (double Val, MVT VT, bool isTarget=false)
SDValue getConstantFP (const APFloat &Val, MVT VT, bool isTarget=false)
SDValue getConstantFP (const ConstantFP &CF, MVT VT, bool isTarget=false)
SDValue getTargetConstantFP (double Val, MVT VT)
SDValue getTargetConstantFP (const APFloat &Val, MVT VT)
SDValue getTargetConstantFP (const ConstantFP &Val, MVT VT)
SDValue getGlobalAddress (const GlobalValue *GV, MVT VT, int64_t offset=0, bool isTargetGA=false)
SDValue getTargetGlobalAddress (const GlobalValue *GV, MVT VT, int64_t offset=0)
SDValue getFrameIndex (int FI, MVT VT, bool isTarget=false)
SDValue getTargetFrameIndex (int FI, MVT VT)
SDValue getJumpTable (int JTI, MVT VT, bool isTarget=false)
SDValue getTargetJumpTable (int JTI, MVT VT)
SDValue getConstantPool (Constant *C, MVT VT, unsigned Align=0, int Offs=0, bool isT=false)
SDValue getTargetConstantPool (Constant *C, MVT VT, unsigned Align=0, int Offset=0)
SDValue getConstantPool (MachineConstantPoolValue *C, MVT VT, unsigned Align=0, int Offs=0, bool isT=false)
SDValue getTargetConstantPool (MachineConstantPoolValue *C, MVT VT, unsigned Align=0, int Offset=0)
SDValue getBasicBlock (MachineBasicBlock *MBB)
SDValue getBasicBlock (MachineBasicBlock *MBB, DebugLoc dl)
SDValue getExternalSymbol (const char *Sym, MVT VT)
SDValue getExternalSymbol (const char *Sym, DebugLoc dl, MVT VT)
SDValue getTargetExternalSymbol (const char *Sym, MVT VT)
SDValue getTargetExternalSymbol (const char *Sym, DebugLoc dl, MVT VT)
SDValue getArgFlags (ISD::ArgFlagsTy Flags)
SDValue getValueType (MVT)
SDValue getRegister (unsigned Reg, MVT VT)
SDValue getDbgStopPoint (SDValue Root, unsigned Line, unsigned Col, Value *CU)
SDValue getLabel (unsigned Opcode, SDValue Root, unsigned LabelID)
SDValue getLabel (unsigned Opcode, DebugLoc dl, SDValue Root, unsigned LabelID)
SDValue getCopyToReg (SDValue Chain, unsigned Reg, SDValue N)
SDValue getCopyToReg (SDValue Chain, unsigned Reg, SDValue N, SDValue Flag)
SDValue getCopyToReg (SDValue Chain, SDValue Reg, SDValue N, SDValue Flag)
SDValue getCopyFromReg (SDValue Chain, unsigned Reg, MVT VT)
SDValue getCopyFromReg (SDValue Chain, unsigned Reg, MVT VT, SDValue Flag)
SDValue getCondCode (ISD::CondCode Cond)
SDValue getConvertRndSat (MVT VT, SDValue Val, SDValue DTy, SDValue STy, SDValue Rnd, SDValue Sat, ISD::CvtCode Code)
SDValue getZeroExtendInReg (SDValue Op, MVT SrcTy)
SDValue getZeroExtendInReg (SDValue Op, DebugLoc DL, MVT SrcTy)
SDValue getNOT (DebugLoc DL, SDValue Val, MVT VT)
 getNOT - Create a bitwise NOT operation as (XOR Val, -1).
SDValue getCALLSEQ_START (SDValue Chain, SDValue Op)
SDValue getCALLSEQ_END (SDValue Chain, SDValue Op1, SDValue Op2, SDValue InFlag)
SDValue getNode (unsigned Opcode, MVT VT)
SDValue getNode (unsigned Opcode, DebugLoc DL, MVT VT)
SDValue getNode (unsigned Opcode, MVT VT, SDValue N)
SDValue getNode (unsigned Opcode, DebugLoc DL, MVT VT, SDValue N)
SDValue getNode (unsigned Opcode, MVT VT, SDValue N1, SDValue N2)
SDValue getNode (unsigned Opcode, DebugLoc DL, MVT VT, SDValue N1, SDValue N2)
SDValue getNode (unsigned Opcode, MVT VT, SDValue N1, SDValue N2, SDValue N3)
SDValue getNode (unsigned Opcode, DebugLoc DL, MVT VT, SDValue N1, SDValue N2, SDValue N3)
SDValue getNode (unsigned Opcode, MVT VT, SDValue N1, SDValue N2, SDValue N3, SDValue N4)
SDValue getNode (unsigned Opcode, DebugLoc DL, MVT VT, SDValue N1, SDValue N2, SDValue N3, SDValue N4)
SDValue getNode (unsigned Opcode, MVT VT, SDValue N1, SDValue N2, SDValue N3, SDValue N4, SDValue N5)
SDValue getNode (unsigned Opcode, DebugLoc DL, MVT VT, SDValue N1, SDValue N2, SDValue N3, SDValue N4, SDValue N5)
SDValue getNode (unsigned Opcode, MVT VT, const SDUse *Ops, unsigned NumOps)
SDValue getNode (unsigned Opcode, DebugLoc DL, MVT VT, const SDUse *Ops, unsigned NumOps)
SDValue getNode (unsigned Opcode, MVT VT, const SDValue *Ops, unsigned NumOps)
SDValue getNode (unsigned Opcode, DebugLoc DL, MVT VT, const SDValue *Ops, unsigned NumOps)
SDValue getNode (unsigned Opcode, const std::vector< MVT > &ResultTys, const SDValue *Ops, unsigned NumOps)
SDValue getNode (unsigned Opcode, DebugLoc DL, const std::vector< MVT > &ResultTys, const SDValue *Ops, unsigned NumOps)
SDValue getNode (unsigned Opcode, const MVT *VTs, unsigned NumVTs, const SDValue *Ops, unsigned NumOps)
SDValue getNode (unsigned Opcode, DebugLoc DL, const MVT *VTs, unsigned NumVTs, const SDValue *Ops, unsigned NumOps)
SDValue getNode (unsigned Opcode, SDVTList VTs, const SDValue *Ops, unsigned NumOps)
SDValue getNode (unsigned Opcode, DebugLoc DL, SDVTList VTs, const SDValue *Ops, unsigned NumOps)
SDValue getNode (unsigned Opcode, SDVTList VTs)
SDValue getNode (unsigned Opcode, DebugLoc DL, SDVTList VTs)
SDValue getNode (unsigned Opcode, SDVTList VTs, SDValue N)
SDValue getNode (unsigned Opcode, DebugLoc DL, SDVTList VTs, SDValue N)
SDValue getNode (unsigned Opcode, SDVTList VTs, SDValue N1, SDValue N2)
SDValue getNode (unsigned Opcode, DebugLoc DL, SDVTList VTs, SDValue N1, SDValue N2)
SDValue getNode (unsigned Opcode, SDVTList VTs, SDValue N1, SDValue N2, SDValue N3)
SDValue getNode (unsigned Opcode, DebugLoc DL, SDVTList VTs, SDValue N1, SDValue N2, SDValue N3)
SDValue getNode (unsigned Opcode, SDVTList VTs, SDValue N1, SDValue N2, SDValue N3, SDValue N4)
SDValue getNode (unsigned Opcode, DebugLoc DL, SDVTList VTs, SDValue N1, SDValue N2, SDValue N3, SDValue N4)
SDValue getNode (unsigned Opcode, SDVTList VTs, SDValue N1, SDValue N2, SDValue N3, SDValue N4, SDValue N5)
SDValue getNode (unsigned Opcode, DebugLoc DL, SDVTList VTs, SDValue N1, SDValue N2, SDValue N3, SDValue N4, SDValue N5)
SDValue getMemcpy (SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, unsigned Align, bool AlwaysInline, const Value *DstSV, uint64_t DstSVOff, const Value *SrcSV, uint64_t SrcSVOff)
SDValue getMemmove (SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, unsigned Align, const Value *DstSV, uint64_t DstOSVff, const Value *SrcSV, uint64_t SrcSVOff)
SDValue getMemset (SDValue Chain, SDValue Dst, SDValue Src, SDValue Size, unsigned Align, const Value *DstSV, uint64_t DstSVOff)
SDValue getSetCC (MVT VT, SDValue LHS, SDValue RHS, ISD::CondCode Cond)
SDValue getSetCC (DebugLoc DL, MVT VT, SDValue LHS, SDValue RHS, ISD::CondCode Cond)
SDValue getVSetCC (MVT VT, SDValue LHS, SDValue RHS, ISD::CondCode Cond)
SDValue getVSetCC (DebugLoc DL, MVT VT, SDValue LHS, SDValue RHS, ISD::CondCode Cond)
SDValue getSelectCC (SDValue LHS, SDValue RHS, SDValue True, SDValue False, ISD::CondCode Cond)
SDValue getSelectCC (DebugLoc DL, SDValue LHS, SDValue RHS, SDValue True, SDValue False, ISD::CondCode Cond)
SDValue getVAArg (MVT VT, SDValue Chain, SDValue Ptr, SDValue SV)
SDValue getAtomic (unsigned Opcode, MVT MemVT, SDValue Chain, SDValue Ptr, SDValue Cmp, SDValue Swp, const Value *PtrVal, unsigned Alignment=0)
SDValue getAtomic (unsigned Opcode, DebugLoc dl, MVT MemVT, SDValue Chain, SDValue Ptr, SDValue Cmp, SDValue Swp, const Value *PtrVal, unsigned Alignment=0)
SDValue getAtomic (unsigned Opcode, MVT MemVT, SDValue Chain, SDValue Ptr, SDValue Val, const Value *PtrVal, unsigned Alignment=0)
SDValue getAtomic (unsigned Opcode, DebugLoc dl, MVT MemVT, SDValue Chain, SDValue Ptr, SDValue Val, const Value *PtrVal, unsigned Alignment=0)
SDValue getMemIntrinsicNode (unsigned Opcode, const MVT *VTs, unsigned NumVTs, const SDValue *Ops, unsigned NumOps, MVT MemVT, const Value *srcValue, int SVOff, unsigned Align=0, bool Vol=false, bool ReadMem=true, bool WriteMem=true)
SDValue getMemIntrinsicNode (unsigned Opcode, DebugLoc dl, const MVT *VTs, unsigned NumVTs, const SDValue *Ops, unsigned NumOps, MVT MemVT, const Value *srcValue, int SVOff, unsigned Align=0, bool Vol=false, bool ReadMem=true, bool WriteMem=true)
SDValue getMemIntrinsicNode (unsigned Opcode, SDVTList VTList, const SDValue *Ops, unsigned NumOps, MVT MemVT, const Value *srcValue, int SVOff, unsigned Align=0, bool Vol=false, bool ReadMem=true, bool WriteMem=true)
SDValue getMemIntrinsicNode (unsigned Opcode, DebugLoc dl, SDVTList VTList, const SDValue *Ops, unsigned NumOps, MVT MemVT, const Value *srcValue, int SVOff, unsigned Align=0, bool Vol=false, bool ReadMem=true, bool WriteMem=true)
SDValue getMergeValues (const SDValue *Ops, unsigned NumOps)
 getMergeValues - Create a MERGE_VALUES node from the given operands.
SDValue getMergeValues (const SDValue *Ops, unsigned NumOps, DebugLoc dl)
 DebugLoc-aware version.
SDValue getCall (unsigned CallingConv, bool IsVarArgs, bool IsTailCall, bool isInreg, SDVTList VTs, const SDValue *Operands, unsigned NumOperands)
SDValue getCall (unsigned CallingConv, DebugLoc dl, bool IsVarArgs, bool IsTailCall, bool isInreg, SDVTList VTs, const SDValue *Operands, unsigned NumOperands)
SDValue getLoad (MVT VT, SDValue Chain, SDValue Ptr, const Value *SV, int SVOffset, bool isVolatile=false, unsigned Alignment=0)
SDValue getLoad (MVT VT, DebugLoc dl, SDValue Chain, SDValue Ptr, const Value *SV, int SVOffset, bool isVolatile=false, unsigned Alignment=0)
SDValue getExtLoad (ISD::LoadExtType ExtType, MVT VT, SDValue Chain, SDValue Ptr, const Value *SV, int SVOffset, MVT EVT, bool isVolatile=false, unsigned Alignment=0)
SDValue getExtLoad (ISD::LoadExtType ExtType, DebugLoc dl, MVT VT, SDValue Chain, SDValue Ptr, const Value *SV, int SVOffset, MVT EVT, bool isVolatile=false, unsigned Alignment=0)
SDValue getIndexedLoad (SDValue OrigLoad, SDValue Base, SDValue Offset, ISD::MemIndexedMode AM)
SDValue getIndexedLoad (SDValue OrigLoad, DebugLoc dl, SDValue Base, SDValue Offset, ISD::MemIndexedMode AM)
SDValue getLoad (ISD::MemIndexedMode AM, ISD::LoadExtType ExtType, MVT VT, SDValue Chain, SDValue Ptr, SDValue Offset, const Value *SV, int SVOffset, MVT EVT, bool isVolatile=false, unsigned Alignment=0)
SDValue getLoad (ISD::MemIndexedMode AM, DebugLoc dl, ISD::LoadExtType ExtType, MVT VT, SDValue Chain, SDValue Ptr, SDValue Offset, const Value *SV, int SVOffset, MVT EVT, bool isVolatile=false, unsigned Alignment=0)
SDValue getStore (SDValue Chain, SDValue Val, SDValue Ptr, const Value *SV, int SVOffset, bool isVolatile=false, unsigned Alignment=0)
SDValue getStore (SDValue Chain, DebugLoc dl, SDValue Val, SDValue Ptr, const Value *SV, int SVOffset, bool isVolatile=false, unsigned Alignment=0)
SDValue getTruncStore (SDValue Chain, SDValue Val, SDValue Ptr, const Value *SV, int SVOffset, MVT TVT, bool isVolatile=false, unsigned Alignment=0)
SDValue getTruncStore (SDValue Chain, DebugLoc dl, SDValue Val, SDValue Ptr, const Value *SV, int SVOffset, MVT TVT, bool isVolatile=false, unsigned Alignment=0)
SDValue getIndexedStore (SDValue OrigStoe, SDValue Base, SDValue Offset, ISD::MemIndexedMode AM)
SDValue getIndexedStore (SDValue OrigStoe, DebugLoc dl, SDValue Base, SDValue Offset, ISD::MemIndexedMode AM)
SDValue getSrcValue (const Value *v)
 getSrcValue - Construct a node to track a Value* through the backend.
SDValue getMemOperand (const MachineMemOperand &MO)
SDValue getShiftAmountOperand (SDValue Op)
SDValue UpdateNodeOperands (SDValue N, SDValue Op)
SDValue UpdateNodeOperands (SDValue N, SDValue Op1, SDValue Op2)
SDValue UpdateNodeOperands (SDValue N, SDValue Op1, SDValue Op2, SDValue Op3)
SDValue UpdateNodeOperands (SDValue N, SDValue Op1, SDValue Op2, SDValue Op3, SDValue Op4)
SDValue UpdateNodeOperands (SDValue N, SDValue Op1, SDValue Op2, SDValue Op3, SDValue Op4, SDValue Op5)
SDValue UpdateNodeOperands (SDValue N, const SDValue *Ops, unsigned NumOps)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT, SDValue Op1)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT, SDValue Op1, SDValue Op2)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT, const SDValue *Ops, unsigned NumOps)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT1, MVT VT2)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT1, MVT VT2, const SDValue *Ops, unsigned NumOps)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT1, MVT VT2, MVT VT3, const SDValue *Ops, unsigned NumOps)
SDNode * SelectNodeTo (SDNode *N, unsigned MachineOpc, MVT VT1, MVT VT2, MVT VT3, MVT VT4, const SDValue *Ops, unsigned NumOps)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT1, MVT VT2, SDValue Op1)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT1, MVT VT2, SDValue Op1, SDValue Op2)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT1, MVT VT2, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, MVT VT1, MVT VT2, MVT VT3, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * SelectNodeTo (SDNode *N, unsigned TargetOpc, SDVTList VTs, const SDValue *Ops, unsigned NumOps)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT, SDValue Op1)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT, SDValue Op1, SDValue Op2)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT, const SDValue *Ops, unsigned NumOps)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT1, MVT VT2)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT1, MVT VT2, const SDValue *Ops, unsigned NumOps)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT1, MVT VT2, MVT VT3, const SDValue *Ops, unsigned NumOps)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT1, MVT VT2, SDValue Op1)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT1, MVT VT2, SDValue Op1, SDValue Op2)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, MVT VT1, MVT VT2, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * MorphNodeTo (SDNode *N, unsigned Opc, SDVTList VTs, const SDValue *Ops, unsigned NumOps)
SDNode * getTargetNode (unsigned Opcode, MVT VT)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT)
SDNode * getTargetNode (unsigned Opcode, MVT VT, SDValue Op1)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT, SDValue Op1)
SDNode * getTargetNode (unsigned Opcode, MVT VT, SDValue Op1, SDValue Op2)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT, SDValue Op1, SDValue Op2)
SDNode * getTargetNode (unsigned Opcode, MVT VT, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * getTargetNode (unsigned Opcode, MVT VT, const SDValue *Ops, unsigned NumOps)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT, const SDValue *Ops, unsigned NumOps)
SDNode * getTargetNode (unsigned Opcode, MVT VT1, MVT VT2)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT1, MVT VT2)
SDNode * getTargetNode (unsigned Opcode, MVT VT1, MVT VT2, SDValue Op1)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT1, MVT VT2, SDValue Op1)
SDNode * getTargetNode (unsigned Opcode, MVT VT1, MVT VT2, SDValue Op1, SDValue Op2)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT1, MVT VT2, SDValue Op1, SDValue Op2)
SDNode * getTargetNode (unsigned Opcode, MVT VT1, MVT VT2, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT1, MVT VT2, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * getTargetNode (unsigned Opcode, MVT VT1, MVT VT2, const SDValue *Ops, unsigned NumOps)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT1, MVT VT2, const SDValue *Ops, unsigned NumOps)
SDNode * getTargetNode (unsigned Opcode, MVT VT1, MVT VT2, MVT VT3, SDValue Op1, SDValue Op2)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT1, MVT VT2, MVT VT3, SDValue Op1, SDValue Op2)
SDNode * getTargetNode (unsigned Opcode, MVT VT1, MVT VT2, MVT VT3, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT1, MVT VT2, MVT VT3, SDValue Op1, SDValue Op2, SDValue Op3)
SDNode * getTargetNode (unsigned Opcode, MVT VT1, MVT VT2, MVT VT3, const SDValue *Ops, unsigned NumOps)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT1, MVT VT2, MVT VT3, const SDValue *Ops, unsigned NumOps)
SDNode * getTargetNode (unsigned Opcode, MVT VT1, MVT VT2, MVT VT3, MVT VT4, const SDValue *Ops, unsigned NumOps)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, MVT VT1, MVT VT2, MVT VT3, MVT VT4, const SDValue *Ops, unsigned NumOps)
SDNode * getTargetNode (unsigned Opcode, const std::vector< MVT > &ResultTys, const SDValue *Ops, unsigned NumOps)
SDNode * getTargetNode (unsigned Opcode, DebugLoc dl, const std::vector< MVT > &ResultTys, const SDValue *Ops, unsigned NumOps)
SDNode * getNodeIfExists (unsigned Opcode, SDVTList VTs, const SDValue *Ops, unsigned NumOps)
void RemoveDeadNode (SDNode *N, DAGUpdateListener *UpdateListener=0)
void RemoveDeadNodes (SmallVectorImpl< SDNode * > &DeadNodes, DAGUpdateListener *UpdateListener=0)
void ReplaceAllUsesWith (SDValue From, SDValue Op, DAGUpdateListener *UpdateListener=0)
void ReplaceAllUsesWith (SDNode *From, SDNode *To, DAGUpdateListener *UpdateListener=0)
void ReplaceAllUsesWith (SDNode *From, const SDValue *To, DAGUpdateListener *UpdateListener=0)
void ReplaceAllUsesOfValueWith (SDValue From, SDValue To, DAGUpdateListener *UpdateListener=0)
void ReplaceAllUsesOfValuesWith (const SDValue *From, const SDValue *To, unsigned Num, DAGUpdateListener *UpdateListener=0)
unsigned AssignTopologicalOrder ()
void RepositionNode (allnodes_iterator Position, SDNode *N)
void dump () const
SDValue CreateStackTemporary (MVT VT, unsigned minAlign=1)
SDValue CreateStackTemporary (MVT VT1, MVT VT2)
SDValue FoldConstantArithmetic (unsigned Opcode, MVT VT, ConstantSDNode *Cst1, ConstantSDNode *Cst2)
 FoldConstantArithmetic -.
SDValue FoldSetCC (MVT VT, SDValue N1, SDValue N2, ISD::CondCode Cond, DebugLoc dl)
 FoldSetCC - Constant fold a setcc to true or false.
bool SignBitIsZero (SDValue Op, unsigned Depth=0) const
bool MaskedValueIsZero (SDValue Op, const APInt &Mask, unsigned Depth=0) const
void ComputeMaskedBits (SDValue Op, const APInt &Mask, APInt &KnownZero, APInt &KnownOne, unsigned Depth=0) const
unsigned ComputeNumSignBits (SDValue Op, unsigned Depth=0) const
bool isVerifiedDebugInfoDesc (SDValue Op) const
SDValue getShuffleScalarElt (const SDNode *N, unsigned Idx)

Static Public Member Functions

static bool isCommutativeBinOp (unsigned Opcode)

Public Attributes

std::map< const SDNode
*, std::string > 
NodeGraphAttrs

Classes

class  DAGUpdateListener


Detailed Description

SelectionDAG class - This is used to represent a portion of an LLVM function in a low-level Data Dependence DAG representation suitable for instruction selection. This DAG is constructed as the first step of instruction selection in order to allow implementation of machine specific optimizations and code simplifications.

The representation used by the SelectionDAG is a target-independent representation, which has some similarities to the GCC RTL representation, but is significantly more simple, powerful, and is a graph form instead of a linear form.

Definition at line 75 of file SelectionDAG.h.


Member Typedef Documentation

Definition at line 170 of file SelectionDAG.h.

Definition at line 173 of file SelectionDAG.h.


Constructor & Destructor Documentation

SelectionDAG::SelectionDAG ( TargetLowering &  tli,
FunctionLoweringInfo &  fli 
)

Definition at line 789 of file SelectionDAG.cpp.

SelectionDAG::~SelectionDAG (  ) 

Definition at line 803 of file SelectionDAG.cpp.


Member Function Documentation

void SelectionDAG::init ( MachineFunction &  mf,
MachineModuleInfo *  mmi,
DwarfWriter *  dw 
)

init - Prepare this SelectionDAG to process code in the given MachineFunction.

Definition at line 796 of file SelectionDAG.cpp.

References DW, MF, and MMI.

Referenced by llvm::SelectionDAGISel::runOnFunction().

void SelectionDAG::clear (  ) 

clear - Clear state and free memory necessary to make this SelectionDAG ready to process a new block.

Definition at line 814 of file SelectionDAG.cpp.

References getEntryNode(), llvm::BumpPtrAllocator::Reset(), Root, and llvm::SDNode::UseList.

Referenced by llvm::SelectionDAGLowering::clear().

MachineFunction& llvm::SelectionDAG::getMachineFunction (  )  const [inline]

const TargetMachine & SelectionDAG::getTarget (  )  const

TargetLowering& llvm::SelectionDAG::getTargetLoweringInfo (  )  const [inline]

FunctionLoweringInfo& llvm::SelectionDAG::getFunctionLoweringInfo (  )  const [inline]

Definition at line 137 of file SelectionDAG.h.

Referenced by llvm::RegsForValue::getCopyFromRegs().

MachineModuleInfo* llvm::SelectionDAG::getMachineModuleInfo (  )  const [inline]

DwarfWriter* llvm::SelectionDAG::getDwarfWriter (  )  const [inline]

Definition at line 139 of file SelectionDAG.h.

Referenced by llvm::FunctionLoweringInfo::set().

void SelectionDAG::viewGraph ( const std::string &  Title  ) 

viewGraph - Pop up a GraphViz/gv window with the DAG rendered using 'dot'.

viewGraph - Pop up a ghostview window with the reachable parts of the DAG rendered using 'dot'.

Definition at line 261 of file SelectionDAGPrinter.cpp.

References llvm::cerr(), getMachineFunction(), llvm::Intrinsic::getName(), and llvm::ViewGraph().

void SelectionDAG::viewGraph (  ) 

Definition at line 274 of file SelectionDAGPrinter.cpp.

void SelectionDAG::clearGraphAttrs (  ) 

clearGraphAttrs - Clear all previously defined node graph attributes. Intended to be used from a debugging tool (eg. gdb).

clearGraphAttrs - Clear all previously defined node graph attributes. Intended to be used from a debugging tool (eg. gdb).

Definition at line 280 of file SelectionDAGPrinter.cpp.

References llvm::cerr(), and NodeGraphAttrs.

void SelectionDAG::setGraphAttrs ( const SDNode *  N,
const char *  Attrs 
)

setGraphAttrs - Set graph attributes for a node. (eg. "color=red".)

Definition at line 292 of file SelectionDAGPrinter.cpp.

References llvm::cerr(), and NodeGraphAttrs.

const std::string SelectionDAG::getGraphAttrs ( const SDNode *  N  )  const

getGraphAttrs - Get graph attributes for a node. (eg. "color=red".) Used from getNodeAttributes.

getGraphAttrs - Get graph attributes for a node. (eg. "color=red".) Used from getNodeAttributes.

Definition at line 304 of file SelectionDAGPrinter.cpp.

References llvm::cerr(), and NodeGraphAttrs.

Referenced by llvm::DOTGraphTraits< SelectionDAG * >::getNodeAttributes().

void SelectionDAG::setGraphColor ( const SDNode *  N,
const char *  Color 
)

setGraphColor - Convenience for setting node color attribute.

Definition at line 322 of file SelectionDAGPrinter.cpp.

References llvm::cerr(), and NodeGraphAttrs.

void SelectionDAG::setSubgraphColor ( SDNode *  N,
const char *  Color 
)

setGraphColor - Convenience for setting subgraph color attribute.

setSubgraphColor - Convenience for setting subgraph color attribute.

Definition at line 366 of file SelectionDAGPrinter.cpp.

References llvm::cerr().

allnodes_const_iterator llvm::SelectionDAG::allnodes_begin (  )  const [inline]

allnodes_const_iterator llvm::SelectionDAG::allnodes_end (  )  const [inline]

allnodes_iterator llvm::SelectionDAG::allnodes_begin (  )  [inline]

Definition at line 174 of file SelectionDAG.h.

allnodes_iterator llvm::SelectionDAG::allnodes_end (  )  [inline]

Definition at line 175 of file SelectionDAG.h.

ilist<SDNode>::size_type llvm::SelectionDAG::allnodes_size (  )  const [inline]

Definition at line 176 of file SelectionDAG.h.

Referenced by AssignTopologicalOrder().

const SDValue& llvm::SelectionDAG::getRoot (  )  const [inline]

SDValue llvm::SelectionDAG::getEntryNode (  )  const [inline]

const SDValue& llvm::SelectionDAG::setRoot ( SDValue  N  )  [inline]

void SelectionDAG::Combine ( CombineLevel  Level,
AliasAnalysis &  AA,
bool  Fast 
)

Combine - This iterates over the nodes in the SelectionDAG, folding certain types of nodes together, or eliminating superfluous nodes. The Level argument controls whether Combine is allowed to produce nodes and types that are illegal on the target.

run - This is the main entry point to this class.

Definition at line 6104 of file DAGCombiner.cpp.

bool SelectionDAG::LegalizeTypes (  ) 

LegalizeTypes - This transforms the SelectionDAG into a SelectionDAG that only uses types natively supported by the target. Returns "true" if it made any changes.

Note that this is an involved process that may invalidate pointers into the graph.

LegalizeTypes - This transforms the SelectionDAG into a SelectionDAG that only uses types natively supported by the target. Returns "true" if it made any changes.

Note that this is an involved process that may invalidate pointers into the graph.

Definition at line 1062 of file LegalizeTypes.cpp.

void SelectionDAG::Legalize ( bool  TypesNeedLegalizing  ) 

Legalize - This transforms the SelectionDAG into a SelectionDAG that is compatible with the target instruction selector, as indicated by the TargetLowering object.

Note that this is an involved process that may invalidate pointers into the graph.

run - This is the main entry point to this class.

Definition at line 8630 of file LegalizeDAG.cpp.

void SelectionDAG::RemoveDeadNodes (  ) 

RemoveDeadNodes - This method deletes all unreachable nodes in the SelectionDAG.

RemoveDeadNodes - This method deletes all unreachable nodes in the SelectionDAG.

Definition at line 521 of file SelectionDAG.cpp.

References allnodes_begin(), allnodes_end(), llvm::PIC16ISD::Dummy, E, getRoot(), llvm::HandleSDNode::getValue(), llvm::SmallVectorImpl< T >::push_back(), and setRoot().

Referenced by MorphNodeTo(), RemoveDeadNode(), and llvm::DAGTypeLegalizer::run().

void SelectionDAG::DeleteNode ( SDNode *  N  ) 

DeleteNode - Remove the specified node from the system. This node must have no referrers.

Definition at line 576 of file SelectionDAG.cpp.

SDVTList SelectionDAG::getVTList ( MVT  VT  ) 

SDVTList SelectionDAG::getVTList ( MVT  VT1,
MVT  VT2 
)

Definition at line 4304 of file SelectionDAG.cpp.

References llvm::BumpPtrAllocator::Allocate(), E, and makeVTList().

SDVTList SelectionDAG::getVTList ( MVT  VT1,
MVT  VT2,
MVT  VT3 
)

Definition at line 4318 of file SelectionDAG.cpp.

References llvm::BumpPtrAllocator::Allocate(), E, and makeVTList().

SDVTList SelectionDAG::getVTList ( MVT  VT1,
MVT  VT2,
MVT  VT3,
MVT  VT4 
)

Definition at line 4334 of file SelectionDAG.cpp.

References llvm::BumpPtrAllocator::Allocate(), E, and makeVTList().

SDVTList SelectionDAG::getVTList ( const MVT *  VTs,
unsigned  NumVTs 
)

Definition at line 4351 of file SelectionDAG.cpp.

References llvm::BumpPtrAllocator::Allocate(), E, getVTList(), and makeVTList().

const MVT* llvm::SelectionDAG::getNodeValueTypes ( MVT  VT  )  [inline]

getNodeValueTypes - These are obsolete, use getVTList instead.

Definition at line 237 of file SelectionDAG.h.

References getVTList(), and llvm::SDVTList::VTs.

Referenced by getCALLSEQ_START(), getCopyFromReg(), getCopyToReg(), getNode(), and getTargetNode().

const MVT* llvm::SelectionDAG::getNodeValueTypes ( MVT  VT1,
MVT  VT2 
) [inline]

Definition at line 240 of file SelectionDAG.h.

References getVTList(), and llvm::SDVTList::VTs.

const MVT* llvm::SelectionDAG::getNodeValueTypes ( MVT  VT1,
MVT  VT2,
MVT  VT3 
) [inline]

Definition at line 243 of file SelectionDAG.h.

References getVTList(), and llvm::SDVTList::VTs.

const MVT* llvm::SelectionDAG::getNodeValueTypes ( MVT  VT1,
MVT  VT2,
MVT  VT3,
MVT  VT4 
) [inline]

Definition at line 246 of file SelectionDAG.h.

References getVTList(), and llvm::SDVTList::VTs.

const MVT* llvm::SelectionDAG::getNodeValueTypes ( const std::vector< MVT > &  vtList  )  [inline]

Definition at line 249 of file SelectionDAG.h.

References getVTList().

SDValue SelectionDAG::getConstant ( uint64_t  Val,
MVT  VT,
bool  isTarget = false 
)

Definition at line 864 of file SelectionDAG.cpp.

References llvm::MVT::getSizeInBits(), llvm::MVT::getVectorElementType(), and llvm::MVT::isVector().

Referenced by BuildGetId(), BuildIntrinsicOp(), llvm::TargetLowering::BuildSDIV(), BuildSplatI(), llvm::TargetLowering::BuildUDIV(), BuildVSLDOI(), CommuteVectorShuffle(), CommuteVectorShuffleMask(), CreateCopyOfByValArgument(), ExpandBIT_CONVERT(), ExpandConstantFP(), ExpandFCOPYSIGNToBitwiseOps(), llvm::PIC16TargetLowering::ExpandLoad(), ExpandSRx(), llvm::PIC16TargetLowering::ExpandStore(), ExpandUnalignedLoad(), ExpandUnalignedStore(), FoldConstantArithmetic(), FoldSetCC(), GeneratePerfectShuffle(), getARMCmp(), llvm::SPU::getBorrowGenerateShufMask(), llvm::SPU::getCarryGenerateShufMask(), getConstant(), getCopyFromParts(), getCopyToParts(), GetExponent(), getIndexedAddressParts(), getIntPtrConstant(), getMemBasePlusOffset(), getMemsetStringVal(), getMemsetValue(), getMOVLMask(), getNode(), getNOT(), llvm::PIC16TargetLowering::getPIC16Cmp(), getShuffleVectorZeroOrUndef(), GetSignificand(), getSwapEltZeroMask(), getTargetConstant(), getUnpackhMask(), getUnpacklMask(), llvm::SelectionDAGLowering::getValue(), getVShift(), getZeroExtendInReg(), isBLACompatibleAddress(), isLSAAddress(), llvm::SparcTargetLowering::LowerArguments(), llvm::TargetLowering::LowerArguments(), LowerBR_CC(), LowerBUILD_VECTOR(), LowerBuildVectorv16i8(), LowerCALL(), llvm::PIC16TargetLowering::LowerCALL(), llvm::PIC16TargetLowering::LowerCallArguments(), llvm::PIC16TargetLowering::LowerCallReturn(), llvm::IA64TargetLowering::LowerCallTo(), LowerConstantFP(), LowerConstantPool(), LowerCTPOP(), LowerDYNAMIC_STACKALLOC(), LowerEXTRACT_VECTOR_ELT(), LowerFCOPYSIGN(), LowerGlobalAddress(), LowerI8Math(), LowerINSERT_VECTOR_ELT(), LowerJumpTable(), LowerLOAD(), LowerMemOpCallTo(), llvm::IA64TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), LowerRET(), LowerSCALAR_TO_VECTOR(), LowerSELECT_CC(), LowerSETCC(), llvm::SPU::LowerSplat_v2i64(), LowerSTORE(), LowerTRUNCATE(), LowerVAARG(), LowerVASTART(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE_4wide(), LowerVECTOR_SHUFFLEv8i16(), NormalizeMask(), llvm::SPUTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformShiftCombine(), PerformSTORECombine(), PromoteSplat(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), RewriteAsNarrowerShuffle(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedConstant(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), TranslateX86CC(), llvm::SelectionDAGLowering::visitBitTestCase(), llvm::SelectionDAGLowering::visitBitTestHeader(), llvm::SelectionDAGLowering::visitJumpTableHeader(), and llvm::SelectionDAGLowering::visitSwitchCase().

SDValue SelectionDAG::getConstant ( const APInt &  Val,
MVT  VT,
bool  isTarget = false 
)

Definition at line 872 of file SelectionDAG.cpp.

References llvm::ConstantInt::get(), and getConstant().

SDValue SelectionDAG::getConstant ( const ConstantInt &  Val,
MVT  VT,
bool  isTarget = false 
)

SDValue SelectionDAG::getIntPtrConstant ( uint64_t  Val,
bool  isTarget = false 
)

SDValue llvm::SelectionDAG::getTargetConstant ( uint64_t  Val,
MVT  VT 
) [inline]

SDValue llvm::SelectionDAG::getTargetConstant ( const APInt &  Val,
MVT  VT 
) [inline]

Definition at line 264 of file SelectionDAG.h.

References getConstant().

SDValue llvm::SelectionDAG::getTargetConstant ( const ConstantInt &  Val,
MVT  VT 
) [inline]

Definition at line 267 of file SelectionDAG.h.

References getConstant().

SDValue SelectionDAG::getConstantFP ( double  Val,
MVT  VT,
bool  isTarget = false 
)

SDValue SelectionDAG::getConstantFP ( const APFloat &  Val,
MVT  VT,
bool  isTarget = false 
)

Definition at line 913 of file SelectionDAG.cpp.

References llvm::ConstantFP::get(), and getConstantFP().

SDValue SelectionDAG::getConstantFP ( const ConstantFP &  CF,
MVT  VT,
bool  isTarget = false 
)

SDValue llvm::SelectionDAG::getTargetConstantFP ( double  Val,
MVT  VT 
) [inline]

Definition at line 273 of file SelectionDAG.h.

References getConstantFP().

Referenced by getZeroVector().

SDValue llvm::SelectionDAG::getTargetConstantFP ( const APFloat &  Val,
MVT  VT 
) [inline]

Definition at line 276 of file SelectionDAG.h.

References getConstantFP().

SDValue llvm::SelectionDAG::getTargetConstantFP ( const ConstantFP &  Val,
MVT  VT 
) [inline]

Definition at line 279 of file SelectionDAG.h.

References getConstantFP().

SDValue SelectionDAG::getGlobalAddress ( const GlobalValue *  GV,
MVT  VT,
int64_t  offset = 0,
bool  isTargetGA = false 
)

SDValue llvm::SelectionDAG::getTargetGlobalAddress ( const GlobalValue *  GV,
MVT  VT,
int64_t  offset = 0 
) [inline]

SDValue SelectionDAG::getFrameIndex ( int  FI,
MVT  VT,
bool  isTarget = false 
)

SDValue llvm::SelectionDAG::getTargetFrameIndex ( int  FI,
MVT  VT 
) [inline]

SDValue SelectionDAG::getJumpTable ( int  JTI,
MVT  VT,
bool  isTarget = false 
)

SDValue llvm::SelectionDAG::getTargetJumpTable ( int  JTI,
MVT  VT 
) [inline]

Definition at line 293 of file SelectionDAG.h.

References getJumpTable().

Referenced by LowerJumpTable().

SDValue SelectionDAG::getConstantPool ( Constant *  C,
MVT  VT,
unsigned  Align = 0,
int  Offs = 0,
bool  isT = false 
)

SDValue llvm::SelectionDAG::getTargetConstantPool ( Constant *  C,
MVT  VT,
unsigned  Align = 0,
int  Offset = 0 
) [inline]

SDValue SelectionDAG::getConstantPool ( MachineConstantPoolValue *  C,
MVT  VT,
unsigned  Align = 0,
int  Offs = 0,
bool  isT = false 
)

SDValue llvm::SelectionDAG::getTargetConstantPool ( MachineConstantPoolValue *  C,
MVT  VT,
unsigned  Align = 0,
int  Offset = 0 
) [inline]

Definition at line 304 of file SelectionDAG.h.

References Align, getConstantPool(), and Offset.

SDValue SelectionDAG::getBasicBlock ( MachineBasicBlock *  MBB  ) 

SDValue SelectionDAG::getBasicBlock ( MachineBasicBlock *  MBB,
DebugLoc  dl 
)

SDValue SelectionDAG::getExternalSymbol ( const char *  Sym,
MVT  VT 
)

SDValue SelectionDAG::getExternalSymbol ( const char *  Sym,
DebugLoc  dl,
MVT  VT 
)

Definition at line 1137 of file SelectionDAG.cpp.

SDValue SelectionDAG::getTargetExternalSymbol ( const char *  Sym,
MVT  VT 
)

SDValue SelectionDAG::getTargetExternalSymbol ( const char *  Sym,
DebugLoc  dl,
MVT  VT 
)

Definition at line 1155 of file SelectionDAG.cpp.

SDValue SelectionDAG::getArgFlags ( ISD::ArgFlagsTy  Flags  ) 

SDValue SelectionDAG::getValueType ( MVT  VT  ) 

SDValue SelectionDAG::getRegister ( unsigned  Reg,
MVT  VT 
)

SDValue SelectionDAG::getDbgStopPoint ( SDValue  Root,
unsigned  Line,
unsigned  Col,
Value *  CU 
)

Definition at line 1211 of file SelectionDAG.cpp.

SDValue SelectionDAG::getLabel ( unsigned  Opcode,
SDValue  Root,
unsigned  LabelID 
)

SDValue SelectionDAG::getLabel ( unsigned  Opcode,
DebugLoc  dl,
SDValue  Root,
unsigned  LabelID 
)

SDValue llvm::SelectionDAG::getCopyToReg ( SDValue  Chain,
unsigned  Reg,
SDValue  N 
) [inline]

SDValue llvm::SelectionDAG::getCopyToReg ( SDValue  Chain,
unsigned  Reg,
SDValue  N,
SDValue  Flag 
) [inline]

SDValue llvm::SelectionDAG::getCopyToReg ( SDValue  Chain,
SDValue  Reg,
SDValue  N,
SDValue  Flag 
) [inline]

SDValue llvm::SelectionDAG::getCopyFromReg ( SDValue  Chain,
unsigned  Reg,
MVT  VT 
) [inline]

SDValue llvm::SelectionDAG::getCopyFromReg ( SDValue  Chain,
unsigned  Reg,
MVT  VT,
SDValue  Flag 
) [inline]

SDValue SelectionDAG::getCondCode ( ISD::CondCode  Cond  ) 

Definition at line 1165 of file SelectionDAG.cpp.

Referenced by getSelectCC(), getSetCC(), and getVSetCC().

SDValue SelectionDAG::getConvertRndSat ( MVT  VT,
SDValue  Val,
SDValue  DTy,
SDValue  STy,
SDValue  Rnd,
SDValue  Sat,
ISD::CvtCode  Code 
)

Returns the ConvertRndSat Note: Avoid using this node because it may disappear in the future and most targets don't support it.

Definition at line 1178 of file SelectionDAG.cpp.

References E.

SDValue SelectionDAG::getZeroExtendInReg ( SDValue  Op,
MVT  SrcTy 
)

getZeroExtendInReg - Return the expression required to zero extend the Op value assuming it was the smaller SrcTy value.

Definition at line 832 of file SelectionDAG.cpp.

References llvm::ISD::AND, getConstant(), llvm::APInt::getLowBitsSet(), getNode(), llvm::MVT::getSizeInBits(), llvm::SDValue::getValueSizeInBits(), llvm::SDValue::getValueType(), and Imm.

SDValue SelectionDAG::getZeroExtendInReg ( SDValue  Op,
DebugLoc  DL,
MVT  SrcTy 
)

SDValue SelectionDAG::getNOT ( DebugLoc  DL,
SDValue  Val,
MVT  VT 
)

getNOT - Create a bitwise NOT operation as (XOR Val, -1).

getNOT - Create a bitwise NOT operation as (XOR Val, -1).

Definition at line 850 of file SelectionDAG.cpp.

References llvm::ISD::BUILD_VECTOR, llvm::APInt::getAllOnesValue(), getConstant(), getNode(), llvm::MVT::getSizeInBits(), llvm::MVT::getVectorElementType(), llvm::MVT::getVectorNumElements(), llvm::MVT::isVector(), and llvm::ISD::XOR.

Referenced by llvm::TargetLowering::SimplifySetCC().

SDValue llvm::SelectionDAG::getCALLSEQ_START ( SDValue  Chain,
SDValue  Op 
) [inline]

getCALLSEQ_START - Return a new CALLSEQ_START node, which always must have a flag result (to ensure it's not CSE'd).

Definition at line 380 of file SelectionDAG.h.

References llvm::ISD::CALLSEQ_START, llvm::MVT::Flag, getNode(), getNodeValueTypes(), and llvm::MVT::Other.

Referenced by LowerCALL(), llvm::PIC16TargetLowering::LowerCALL(), llvm::IA64TargetLowering::LowerCallTo(), and llvm::AlphaTargetLowering::LowerCallTo().

SDValue llvm::SelectionDAG::getCALLSEQ_END ( SDValue  Chain,
SDValue  Op1,
SDValue  Op2,
SDValue  InFlag 
) [inline]

SDValue SelectionDAG::getNode ( unsigned  Opcode,
MVT  VT 
)

getNode - Gets or creates the specified node.

Definition at line 2181 of file SelectionDAG.cpp.

References llvm::DebugLoc::getUnknownLoc().

Referenced by BuildGetId(), BuildIntrinsicOp(), llvm::TargetLowering::BuildSDIV(), BuildSplatI(), llvm::TargetLowering::BuildUDIV(), BuildVSLDOI(), CanonicalizeMovddup(), combineSelectAndUse(), combineShlAddConstant(), CommuteVectorShuffle(), CommuteVectorShuffleMask(), ExpandBIT_CONVERT(), llvm::PIC16TargetLowering::ExpandExternalSymbol(), ExpandFCOPYSIGNToBitwiseOps(), llvm::PIC16TargetLowering::ExpandFrameIndex(), llvm::PIC16TargetLowering::ExpandGlobalAddress(), llvm::PIC16TargetLowering::ExpandLoad(), ExpandSRx(), llvm::PIC16TargetLowering::ExpandStore(), ExpandUnalignedLoad(), ExpandUnalignedStore(), FoldSetCC(), GeneratePerfectShuffle(), getARMCmp(), llvm::SPU::getBorrowGenerateShufMask(), getCALLSEQ_END(), getCALLSEQ_START(), llvm::SPU::getCarryGenerateShufMask(), getConstant(), getConstantFP(), llvm::SelectionDAGLowering::getControlRoot(), getCopyFromParts(), getCopyFromReg(), llvm::RegsForValue::getCopyFromRegs(), getCopyToParts(), getCopyToReg(), llvm::RegsForValue::getCopyToRegs(), GetExponent(), getExtLoad(), getLoad(), getMemBasePlusOffset(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), getMemset(), getMemsetStringVal(), getMemsetValue(), getMergeValues(), getMOVLMask(), GetNegatedExpression(), getNode(), getNOT(), getOnesVector(), llvm::PIC16TargetLowering::getPIC16Cmp(), llvm::X86TargetLowering::getPICJumpTableRelocBase(), llvm::TargetLowering::getPICJumpTableRelocBase(), llvm::SelectionDAGLowering::GetRegistersForValue(), llvm::SelectionDAGLowering::getRoot(), getSelectCC(), getSetCC(), getShiftAmountOperand(), getShuffleScalarElt(), getShuffleVectorZeroOrUndef(), GetSignificand(), getStore(), getSwapEltZeroMask(), getTargetNode(), getTruncStore(), getUnpackhMask(), getUnpacklMask(), getVAArg(), llvm::SelectionDAGLowering::getValue(), getVFPCmp(), getVSetCC(), getVShift(), getVZextMovL(), getZeroExtendInReg(), getZeroVector(), llvm::PIC16TargetLowering::LowerADD(), llvm::SparcTargetLowering::LowerArguments(), llvm::TargetLowering::LowerArguments(), llvm::IA64TargetLowering::LowerArguments(), llvm::PIC16TargetLowering::LowerBinOp(), llvm::PIC16TargetLowering::LowerBR_CC(), LowerBR_CC(), LowerBUILD_VECTOR(), LowerBuildVectorv16i8(), LowerBuildVectorv8i16(), LowerByteImmed(), LowerCALL(), llvm::PIC16TargetLowering::LowerCALL(), llvm::PIC16TargetLowering::LowerCallArguments(), llvm::PIC16TargetLowering::LowerCallReturn(), llvm::TargetLowering::LowerCallTo(), llvm::IA64TargetLowering::LowerCallTo(), llvm::AlphaTargetLowering::LowerCallTo(), LowerConstantFP(), LowerCONSTANTPOOL(), LowerConstantPool(), LowerCTPOP(), LowerDYNAMIC_STACKALLOC(), LowerEXTRACT_VECTOR_ELT(), LowerFCOPYSIGN(), LowerFORMAL_ARGUMENT(), llvm::PIC16TargetLowering::LowerFORMAL_ARGUMENTS(), LowerFORMAL_ARGUMENTS(), LowerFP_TO_INT(), LowerFP_TO_SINT(), LowerGlobalAddress(), LowerGLOBALADDRESS(), LowerI8Math(), LowerINSERT_VECTOR_ELT(), LowerINT_TO_FP(), LowerINTRINSIC_WO_CHAIN(), LowerJumpTable(), LowerLOAD(), LowerMemOpCallTo(), llvm::IA64TargetLowering::LowerOperation(), llvm::AlphaTargetLowering::LowerOperation(), LowerRET(), LowerSCALAR_TO_VECTOR(), llvm::PIC16TargetLowering::LowerSELECT_CC(), LowerSELECT_CC(), LowerSETCC(), LowerSINT_TO_FP(), llvm::SPU::LowerSplat_v2i64(), LowerSTORE(), llvm::PIC16TargetLowering::LowerSUB(), LowerToTLSExecModel(), LowerToTLSGeneralDynamicModel32(), LowerToTLSGeneralDynamicModel64(), LowerTRUNCATE(), LowerVAARG(), LowerVASTART(), LowerVECTOR_SHUFFLE(), LowerVECTOR_SHUFFLE_4wide(), LowerVECTOR_SHUFFLEv8i16(), MoveBelowCallSeqStart(), NormalizeMask(), PerformBuildVectorCombine(), llvm::SPUTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), PerformSELECTCombine(), PerformShiftCombine(), PerformSTORECombine(), PromoteSplat(), llvm::X86TargetLowering::ReplaceNodeResults(), llvm::PPCTargetLowering::ReplaceNodeResults(), RewriteAsNarrowerShuffle(), llvm::TargetLowering::TargetLoweringOpt::ShrinkDemandedConstant(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifySetCC(), llvm::SelectionDAGLowering::visitBitTestCase(), llvm::SelectionDAGLowering::visitBitTestHeader(), llvm::SelectionDAGLowering::visitJumpTable(), llvm::SelectionDAGLowering::visitJumpTableHeader(), and llvm::SelectionDAGLowering::visitSwitchCase().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
MVT  VT 
)

Definition at line 2185 of file SelectionDAG.cpp.

References AddNodeIDNode(), E, llvm::SDNode::getSDVTList(), and getVTList().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
MVT  VT,
SDValue  N 
)

Definition at line 2202 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
MVT  VT,
SDValue  N 
)

Definition at line 2206 of file SelectionDAG.cpp.

References AddNodeIDNode(), llvm::ISD::ANY_EXTEND, llvm::lltok::APFloat, llvm::ISD::BIT_CONVERT, llvm::APFloat::bitcastToAPInt(), llvm::MVT::bitsGT(), llvm::MVT::bitsLT(), llvm::APInt::bitsToDouble(), llvm::APInt::bitsToFloat(), llvm::ISD::BSWAP, llvm::APInt::byteSwap(), llvm::CallingConv::C, llvm::APFloat::changeSign(), llvm::APFloat::clearSign(), llvm::ISD::CONCAT_VECTORS, llvm::APFloat::convert(), llvm::APFloat::convertFromAPInt(), llvm::APFloat::convertToInteger(), llvm::APInt::countLeadingZeros(), llvm::APInt::countPopulation(), llvm::APInt::countTrailingZeros(), llvm::ISD::CTLZ, llvm::ISD::CTPOP, llvm::ISD::CTTZ, E, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::MVT::f32, llvm::MVT::f64, llvm::ISD::FABS, llvm::MVT::Flag, llvm::ISD::FNEG, llvm::ISD::FP_EXTEND, llvm::ISD::FP_ROUND, llvm::ISD::FP_TO_SINT, llvm::ISD::FP_TO_UINT, llvm::ISD::FSUB, getConstant(), getConstantFP(), llvm::SDValue::getConstantOperandVal(), getNode(), llvm::SDValue::getNode(), llvm::SDValue::getOpcode(), llvm::SDNode::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::MVT::getSizeInBits(), llvm::SDValue::getValueType(), llvm::MVT::getVectorElementType(), getVTList(), llvm::APInt::getZExtValue(), llvm::MVT::i32, llvm::MVT::i64, llvm::integerPartWidth, llvm::MVT::isFloatingPoint(), llvm::MVT::isInteger(), llvm::MVT::isVector(), llvm::ISD::MERGE_VALUES, MVTToAPFloatSemantics(), llvm::APFloat::opInvalidOp, llvm::MVT::ppcf128, llvm::APFloat::rmNearestTiesToEven, llvm::APFloat::rmTowardZero, llvm::ISD::SCALAR_TO_VECTOR, llvm::ISD::SIGN_EXTEND, llvm::ISD::SINT_TO_FP, llvm::ISD::TokenFactor, llvm::ISD::TRUNCATE, llvm::ISD::UINT_TO_FP, llvm::ISD::UNDEF, llvm::UnsafeFPMath, V, Val, and llvm::ISD::ZERO_EXTEND.

SDValue SelectionDAG::getNode ( unsigned  Opcode,
MVT  VT,
SDValue  N1,
SDValue  N2 
)

Definition at line 2451 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
MVT  VT,
SDValue  N1,
SDValue  N2 
)

Definition at line 2456 of file SelectionDAG.cpp.

References llvm::APFloat::add(), llvm::ISD::ADD, llvm::ISD::ADDC, llvm::ISD::ADDE, AddNodeIDNode(), llvm::ISD::AND, llvm::APInt::ashr(), llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::MVT::bitsLE(), llvm::ISD::BUILD_PAIR, llvm::ISD::BUILD_VECTOR, llvm::CallingConv::C, llvm::ISD::CONCAT_VECTORS, llvm::APFloat::copySign(), llvm::APFloat::divide(), llvm::dyn_cast(), E, llvm::ISD::EntryToken, llvm::ISD::EXTRACT_ELEMENT, llvm::ISD::EXTRACT_SUBVECTOR, llvm::ISD::EXTRACT_VECTOR_ELT, llvm::ISD::FADD, llvm::ISD::FCOPYSIGN, llvm::ISD::FDIV, llvm::MVT::Flag, llvm::ISD::FMUL, FoldConstantArithmetic(), llvm::ISD::FP_ROUND, llvm::ISD::FP_ROUND_INREG, llvm::ISD::FREM, llvm::ISD::FSUB, llvm::APInt::getAllOnesValue(), llvm::ConstantSDNode::getAPIntValue(), llvm::APInt::getBitWidth(), getConstant(), getConstantFP(), getNode(), llvm::SDValue::getNode(), llvm::SDValue::getNumOperands(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::MVT::getSizeInBits(), llvm::ConstantFPSDNode::getValueAPF(), llvm::SDValue::getValueType(), llvm::MVT::getVectorNumElements(), getVTList(), llvm::MVT::i1, llvm::ISD::INSERT_VECTOR_ELT, isCommutativeBinOp(), llvm::MVT::isFloatingPoint(), llvm::MVT::isInteger(), llvm::MVT::isVector(), llvm::APFloat::mod(), llvm::ISD::MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, llvm::APFloat::multiply(), llvm::SDNode::op_begin(), llvm::SDNode::op_end(), llvm::APFloat::opDivByZero, llvm::APFloat::opInvalidOp, llvm::ISD::OR, llvm::MVT::Other, llvm::MVT::ppcf128, llvm::APFloat::rmNearestTiesToEven, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SDIV, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SRA, llvm::ISD::SREM, llvm::ISD::SRL, llvm::ISD::SUB, llvm::APFloat::subtract(), std::swap(), llvm::ISD::TokenFactor, llvm::APInt::trunc(), llvm::ISD::UDIV, llvm::ISD::UNDEF, llvm::UnsafeFPMath, llvm::ISD::UREM, V1, Val, and llvm::ISD::XOR.

SDValue SelectionDAG::getNode ( unsigned  Opcode,
MVT  VT,
SDValue  N1,
SDValue  N2,
SDValue  N3 
)

Definition at line 2816 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
MVT  VT,
SDValue  N1,
SDValue  N2,
SDValue  N3 
)

SDValue SelectionDAG::getNode ( unsigned  Opcode,
MVT  VT,
SDValue  N1,
SDValue  N2,
SDValue  N3,
SDValue  N4 
)

Definition at line 2902 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
MVT  VT,
SDValue  N1,
SDValue  N2,
SDValue  N3,
SDValue  N4 
)

Definition at line 2908 of file SelectionDAG.cpp.

References getNode().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
MVT  VT,
SDValue  N1,
SDValue  N2,
SDValue  N3,
SDValue  N4,
SDValue  N5 
)

Definition at line 2915 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
MVT  VT,
SDValue  N1,
SDValue  N2,
SDValue  N3,
SDValue  N4,
SDValue  N5 
)

Definition at line 2921 of file SelectionDAG.cpp.

References getNode().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
MVT  VT,
const SDUse *  Ops,
unsigned  NumOps 
)

Definition at line 4046 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
MVT  VT,
const SDUse *  Ops,
unsigned  NumOps 
)

Definition at line 4051 of file SelectionDAG.cpp.

References getNode().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
MVT  VT,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4067 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
MVT  VT,
const SDValue *  Ops,
unsigned  NumOps 
)

SDValue SelectionDAG::getNode ( unsigned  Opcode,
const std::vector< MVT > &  ResultTys,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4129 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
const std::vector< MVT > &  ResultTys,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4135 of file SelectionDAG.cpp.

References getNode(), and getNodeValueTypes().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
const MVT *  VTs,
unsigned  NumVTs,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4142 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
const MVT *  VTs,
unsigned  NumVTs,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4148 of file SelectionDAG.cpp.

References getNode(), and makeVTList().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
SDVTList  VTs,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4156 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
SDVTList  VTs,
const SDValue *  Ops,
unsigned  NumOps 
)

SDValue SelectionDAG::getNode ( unsigned  Opcode,
SDVTList  VTs 
)

Definition at line 4233 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
SDVTList  VTs 
)

Definition at line 4237 of file SelectionDAG.cpp.

References getNode().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
SDVTList  VTs,
SDValue  N 
)

Definition at line 4241 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
SDVTList  VTs,
SDValue  N 
)

Definition at line 4246 of file SelectionDAG.cpp.

References getNode().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
SDVTList  VTs,
SDValue  N1,
SDValue  N2 
)

Definition at line 4252 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
SDVTList  VTs,
SDValue  N1,
SDValue  N2 
)

Definition at line 4257 of file SelectionDAG.cpp.

References getNode().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
SDVTList  VTs,
SDValue  N1,
SDValue  N2,
SDValue  N3 
)

Definition at line 4263 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
SDVTList  VTs,
SDValue  N1,
SDValue  N2,
SDValue  N3 
)

Definition at line 4268 of file SelectionDAG.cpp.

References getNode().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
SDVTList  VTs,
SDValue  N1,
SDValue  N2,
SDValue  N3,
SDValue  N4 
)

Definition at line 4274 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
SDVTList  VTs,
SDValue  N1,
SDValue  N2,
SDValue  N3,
SDValue  N4 
)

Definition at line 4280 of file SelectionDAG.cpp.

References getNode().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
SDVTList  VTs,
SDValue  N1,
SDValue  N2,
SDValue  N3,
SDValue  N4,
SDValue  N5 
)

Definition at line 4287 of file SelectionDAG.cpp.

References getNode(), and llvm::DebugLoc::getUnknownLoc().

SDValue SelectionDAG::getNode ( unsigned  Opcode,
DebugLoc  DL,
SDVTList  VTs,
SDValue  N1,
SDValue  N2,
SDValue  N3,
SDValue  N4,
SDValue  N5 
)

Definition at line 4293 of file SelectionDAG.cpp.

References getNode().

SDValue SelectionDAG::getMemcpy ( SDValue  Chain,
SDValue  Dst,
SDValue  Src,
SDValue  Size,
unsigned  Align,
bool  AlwaysInline,
const Value *  DstSV,
uint64_t  DstSVOff,
const Value *  SrcSV,
uint64_t  SrcSVOff 
)

SDValue SelectionDAG::getMemmove ( SDValue  Chain,
SDValue  Dst,
SDValue  Src,
SDValue  Size,
unsigned  Align,
const Value *  DstSV,
uint64_t  DstOSVff,
const Value *  SrcSV,
uint64_t  SrcSVOff 
)

SDValue SelectionDAG::getMemset ( SDValue  Chain,
SDValue  Dst,
SDValue  Src,
SDValue  Size,
unsigned  Align,
const Value *  DstSV,
uint64_t  DstSVOff 
)

SDValue llvm::SelectionDAG::getSetCC ( MVT  VT,
SDValue  LHS,
SDValue  RHS,
ISD::CondCode  Cond 
) [inline]

SDValue llvm::SelectionDAG::getSetCC ( DebugLoc  DL,
MVT  VT,
SDValue  LHS,
SDValue  RHS,
ISD::CondCode  Cond 
) [inline]

Definition at line 488 of file SelectionDAG.h.

References getCondCode(), getNode(), and llvm::ISD::SETCC.

SDValue llvm::SelectionDAG::getVSetCC ( MVT  VT,
SDValue  LHS,
SDValue  RHS,
ISD::CondCode  Cond 
) [inline]

getVSetCC - Helper function to make it easier to build VSetCC's nodes if you just have an ISD::CondCode instead of an SDValue.

Definition at line 496 of file SelectionDAG.h.

References getCondCode(), getNode(), llvm::DebugLoc::getUnknownLoc(), and llvm::ISD::VSETCC.

SDValue llvm::SelectionDAG::getVSetCC ( DebugLoc  DL,
MVT  VT,
SDValue  LHS,
SDValue  RHS,
ISD::CondCode  Cond 
) [inline]

Definition at line 501 of file SelectionDAG.h.

References getCondCode(), getNode(), and llvm::ISD::VSETCC.

SDValue llvm::SelectionDAG::getSelectCC ( SDValue  LHS,
SDValue  RHS,
SDValue  True,
SDValue  False,
ISD::CondCode  Cond 
) [inline]

getSelectCC - Helper function to make it easier to build SelectCC's if you just have an ISD::CondCode instead of an SDValue.

Definition at line 509 of file SelectionDAG.h.

References getCondCode(), getNode(), llvm::DebugLoc::getUnknownLoc(), llvm::SDValue::getValueType(), and llvm::ISD::SELECT_CC.

Referenced by combineSelectAndUse().

SDValue llvm::SelectionDAG::getSelectCC ( DebugLoc  DL,
SDValue  LHS,
SDValue  RHS,
SDValue  True,
SDValue  False,
ISD::CondCode  Cond 
) [inline]

SDValue SelectionDAG::getVAArg ( MVT  VT,
SDValue  Chain,
SDValue  Ptr,
SDValue  SV 
)

getVAArg - VAArg produces a result and token chain, and takes a pointer and a source value as input.

Definition at line 4039 of file SelectionDAG.cpp.

References getNode(), getVTList(), llvm::MVT::Other, and llvm::ISD::VAARG.

SDValue SelectionDAG::getAtomic ( unsigned  Opcode,
MVT  MemVT,
SDValue  Chain,
SDValue  Ptr,
SDValue  Cmp,
SDValue  Swp,
const Value *  PtrVal,
unsigned  Alignment = 0 
)

getAtomic - Gets a node for an atomic op, produces result and chain and takes 3 operands

Definition at line 3412 of file SelectionDAG.cpp.

References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::ISD::ATOMIC_CMP_SWAP, E, llvm::MVT::getRawBits(), llvm::SDValue::getValueType(), getVTList(), and llvm::MVT::Other.

SDValue SelectionDAG::getAtomic ( unsigned  Opcode,
DebugLoc  dl,
MVT  MemVT,
SDValue  Chain,
SDValue  Ptr,
SDValue  Cmp,
SDValue  Swp,
const Value *  PtrVal,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getAtomic ( unsigned  Opcode,
MVT  MemVT,
SDValue  Chain,
SDValue  Ptr,
SDValue  Val,
const Value *  PtrVal,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getAtomic ( unsigned  Opcode,
DebugLoc  dl,
MVT  MemVT,
SDValue  Chain,
SDValue  Ptr,
SDValue  Val,
const Value *  PtrVal,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getMemIntrinsicNode ( unsigned  Opcode,
const MVT *  VTs,
unsigned  NumVTs,
const SDValue *  Ops,
unsigned  NumOps,
MVT  MemVT,
const Value *  srcValue,
int  SVOff,
unsigned  Align = 0,
bool  Vol = false,
bool  ReadMem = true,
bool  WriteMem = true 
)

getMemIntrinsicNode - Creates a MemIntrinsicNode that may produce a result and takes a list of operands.

Definition at line 3576 of file SelectionDAG.cpp.

References makeVTList().

Referenced by getMemIntrinsicNode().

SDValue SelectionDAG::getMemIntrinsicNode ( unsigned  Opcode,
DebugLoc  dl,
const MVT *  VTs,
unsigned  NumVTs,
const SDValue *  Ops,
unsigned  NumOps,
MVT  MemVT,
const Value *  srcValue,
int  SVOff,
unsigned  Align = 0,
bool  Vol = false,
bool  ReadMem = true,
bool  WriteMem = true 
)

Definition at line 3588 of file SelectionDAG.cpp.

References getMemIntrinsicNode(), and makeVTList().

SDValue SelectionDAG::getMemIntrinsicNode ( unsigned  Opcode,
SDVTList  VTList,
const SDValue *  Ops,
unsigned  NumOps,
MVT  MemVT,
const Value *  srcValue,
int  SVOff,
unsigned  Align = 0,
bool  Vol = false,
bool  ReadMem = true,
bool  WriteMem = true 
)

SDValue SelectionDAG::getMemIntrinsicNode ( unsigned  Opcode,
DebugLoc  dl,
SDVTList  VTList,
const SDValue *  Ops,
unsigned  NumOps,
MVT  MemVT,
const Value *  srcValue,
int  SVOff,
unsigned  Align = 0,
bool  Vol = false,
bool  ReadMem = true,
bool  WriteMem = true 
)

SDValue SelectionDAG::getMergeValues ( const SDValue *  Ops,
unsigned  NumOps 
)

getMergeValues - Create a MERGE_VALUES node from the given operands.

getMergeValues - Create a MERGE_VALUES node from the given operands. Allowed to return something different (and simpler) if Simplify is true.

Definition at line 3550 of file SelectionDAG.cpp.

References getNode(), llvm::SDValue::getValueType(), getVTList(), llvm::ISD::MERGE_VALUES, llvm::SmallVectorImpl< T >::push_back(), and llvm::SmallVectorImpl< T >::reserve().

Referenced by ExpandUnalignedLoad(), llvm::SelectionDAGLowering::getValue(), LowerCALL(), llvm::PIC16TargetLowering::LowerCallReturn(), LowerDYNAMIC_STACKALLOC(), and LowerVAARG().

SDValue SelectionDAG::getMergeValues ( const SDValue *  Ops,
unsigned  NumOps,
DebugLoc  dl 
)

SDValue SelectionDAG::getCall ( unsigned  CallingConv,
bool  IsVarArgs,
bool  IsTailCall,
bool  isInreg,
SDVTList  VTs,
const SDValue *  Operands,
unsigned  NumOperands 
)

getCall - Create a CALL node from the given information.

Definition at line 3656 of file SelectionDAG.cpp.

References llvm::FoldingSetNodeID::AddInteger(), AddNodeIDNode(), llvm::ISD::CALL, and E.

Referenced by llvm::PIC16TargetLowering::LowerCALL(), and llvm::TargetLowering::LowerCallTo().

SDValue SelectionDAG::getCall ( unsigned  CallingConv,
DebugLoc  dl,
bool  IsVarArgs,
bool  IsTailCall,
bool  isInreg,
SDVTList  VTs,
const SDValue *  Operands,
unsigned  NumOperands 
)

SDValue SelectionDAG::getLoad ( MVT  VT,
SDValue  Chain,
SDValue  Ptr,
const Value *  SV,
int  SVOffset,
bool  isVolatile = false,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getLoad ( MVT  VT,
DebugLoc  dl,
SDValue  Chain,
SDValue  Ptr,
const Value *  SV,
int  SVOffset,
bool  isVolatile = false,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getExtLoad ( ISD::LoadExtType  ExtType,
MVT  VT,
SDValue  Chain,
SDValue  Ptr,
const Value *  SV,
int  SVOffset,
MVT  EVT,
bool  isVolatile = false,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getExtLoad ( ISD::LoadExtType  ExtType,
DebugLoc  dl,
MVT  VT,
SDValue  Chain,
SDValue  Ptr,
const Value *  SV,
int  SVOffset,
MVT  EVT,
bool  isVolatile = false,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getIndexedLoad ( SDValue  OrigLoad,
SDValue  Base,
SDValue  Offset,
ISD::MemIndexedMode  AM 
)

SDValue SelectionDAG::getIndexedLoad ( SDValue  OrigLoad,
DebugLoc  dl,
SDValue  Base,
SDValue  Offset,
ISD::MemIndexedMode  AM 
)

SDValue SelectionDAG::getLoad ( ISD::MemIndexedMode  AM,
ISD::LoadExtType  ExtType,
MVT  VT,
SDValue  Chain,
SDValue  Ptr,
SDValue  Offset,
const Value *  SV,
int  SVOffset,
MVT  EVT,
bool  isVolatile = false,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getLoad ( ISD::MemIndexedMode  AM,
DebugLoc  dl,
ISD::LoadExtType  ExtType,
MVT  VT,
SDValue  Chain,
SDValue  Ptr,
SDValue  Offset,
const Value *  SV,
int  SVOffset,
MVT  EVT,
bool  isVolatile = false,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getStore ( SDValue  Chain,
SDValue  Val,
SDValue  Ptr,
const Value *  SV,
int  SVOffset,
bool  isVolatile = false,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getStore ( SDValue  Chain,
DebugLoc  dl,
SDValue  Val,
SDValue  Ptr,
const Value *  SV,
int  SVOffset,
bool  isVolatile = false,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getTruncStore ( SDValue  Chain,
SDValue  Val,
SDValue  Ptr,
const Value *  SV,
int  SVOffset,
MVT  TVT,
bool  isVolatile = false,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getTruncStore ( SDValue  Chain,
DebugLoc  dl,
SDValue  Val,
SDValue  Ptr,
const Value *  SV,
int  SVOffset,
MVT  TVT,
bool  isVolatile = false,
unsigned  Alignment = 0 
)

SDValue SelectionDAG::getIndexedStore ( SDValue  OrigStoe,
SDValue  Base,
SDValue  Offset,
ISD::MemIndexedMode  AM 
)

SDValue SelectionDAG::getIndexedStore ( SDValue  OrigStoe,
DebugLoc  dl,
SDValue  Base,
SDValue  Offset,
ISD::MemIndexedMode  AM 
)

SDValue SelectionDAG::getSrcValue ( const Value *  v  ) 

getSrcValue - Construct a node to track a Value* through the backend.

Definition at line 1254 of file SelectionDAG.cpp.

References AddNodeIDNode(), E, llvm::Value::getType(), getVTList(), llvm::MVT::Other, and llvm::ISD::SRCVALUE.

SDValue SelectionDAG::getMemOperand ( const MachineMemOperand &  MO  ) 

getMemOperand - Construct a node to track a memory reference through the backend.

Definition at line 1273 of file SelectionDAG.cpp.

References AddNodeIDNode(), E, llvm::Value::getType(), llvm::MachineMemOperand::getValue(), getVTList(), llvm::ISD::MEMOPERAND, llvm::MVT::Other, and llvm::MachineMemOperand::Profile().

Referenced by llvm::PPCTargetLowering::PerformDAGCombine().

SDValue SelectionDAG::getShiftAmountOperand ( SDValue  Op  ) 

getShiftAmountOperand - Return the specified value casted to the target's desired shift amount type.

getShiftAmountOperand - Return the specified value casted to the target's desired shift amount type.

Definition at line 1297 of file SelectionDAG.cpp.

References llvm::MVT::bitsGT(), getNode(), llvm::TargetLowering::getShiftAmountTy(), llvm::SDValue::getValueType(), llvm::MVT::isVector(), TLI, llvm::ISD::TRUNCATE, and llvm::ISD::ZERO_EXTEND.

SDValue SelectionDAG::UpdateNodeOperands ( SDValue  InN,
SDValue  Op 
)

UpdateNodeOperands - *Mutate* the specified node in-place to have the specified operands. If the resultant node already exists in the DAG, this does not modify the specified node, instead it returns the node that already exists. If the resultant node does not exist in the DAG, the input node is returned. As a degenerate case, if you specify the same input operands as the node already has, the input node is returned.

UpdateNodeOperands - *Mutate* the specified node in-place to have the specified operands. If the resultant node already exists in the DAG, this does not modify the specified node, instead it returns the node that already exists. If the resultant node does not exist in the DAG, the input node is returned. As a degenerate case, if you specify the same input operands as the node already has, the input node is returned.

Definition at line 4389 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), llvm::SDNode::getNumOperands(), llvm::SDNode::getOperand(), llvm::SDValue::getResNo(), llvm::SDNode::OperandList, and llvm::SDUse::set().

Referenced by CheckDAGForTailCallsAndFixThem(), MoveBelowCallSeqStart(), MoveBelowTokenFactor(), and UpdateNodeOperands().

SDValue SelectionDAG::UpdateNodeOperands ( SDValue  N,
SDValue  Op1,
SDValue  Op2 
)

SDValue SelectionDAG::UpdateNodeOperands ( SDValue  N,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4445 of file SelectionDAG.cpp.

References UpdateNodeOperands().

SDValue SelectionDAG::UpdateNodeOperands ( SDValue  N,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3,
SDValue  Op4 
)

Definition at line 4451 of file SelectionDAG.cpp.

References UpdateNodeOperands().

SDValue SelectionDAG::UpdateNodeOperands ( SDValue  N,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3,
SDValue  Op4,
SDValue  Op5 
)

Definition at line 4458 of file SelectionDAG.cpp.

References UpdateNodeOperands().

SDValue SelectionDAG::UpdateNodeOperands ( SDValue  N,
const SDValue *  Ops,
unsigned  NumOps 
)

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  MachineOpc,
MVT  VT 
)

SelectNodeTo - These are used for target selectors to *mutate* the specified node to have the specified return type, Target opcode, and operands. Note that target opcodes are stored as ~TargetOpcode in the node opcode field. The resultant node is returned.

SelectNodeTo - These are wrappers around MorphNodeTo that accept a machine opcode.

Definition at line 4516 of file SelectionDAG.cpp.

References getVTList().

Referenced by SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT,
SDValue  Op1 
)

Definition at line 4522 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT,
SDValue  Op1,
SDValue  Op2 
)

Definition at line 4529 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4537 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4545 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT1,
MVT  VT2 
)

Definition at line 4559 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT1,
MVT  VT2,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4552 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT1,
MVT  VT2,
MVT  VT3,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4565 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  MachineOpc,
MVT  VT1,
MVT  VT2,
MVT  VT3,
MVT  VT4,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4572 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT1,
MVT  VT2,
SDValue  Op1 
)

Definition at line 4579 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT1,
MVT  VT2,
SDValue  Op1,
SDValue  Op2 
)

Definition at line 4587 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT1,
MVT  VT2,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4595 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
MVT  VT1,
MVT  VT2,
MVT  VT3,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4604 of file SelectionDAG.cpp.

References getVTList(), and SelectNodeTo().

SDNode * SelectionDAG::SelectNodeTo ( SDNode *  N,
unsigned  TargetOpc,
SDVTList  VTs,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4613 of file SelectionDAG.cpp.

References MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT 
)

MorphNodeTo - These *mutate* the specified node to have the specified return type, opcode, and operands.

Definition at line 4619 of file SelectionDAG.cpp.

References getVTList().

Referenced by MorphNodeTo(), and SelectNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT,
SDValue  Op1 
)

Definition at line 4625 of file SelectionDAG.cpp.

References getVTList(), and MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT,
SDValue  Op1,
SDValue  Op2 
)

Definition at line 4632 of file SelectionDAG.cpp.

References getVTList(), and MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4640 of file SelectionDAG.cpp.

References getVTList(), and MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4648 of file SelectionDAG.cpp.

References getVTList(), and MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT1,
MVT  VT2 
)

Definition at line 4662 of file SelectionDAG.cpp.

References getVTList(), and MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT1,
MVT  VT2,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4655 of file SelectionDAG.cpp.

References getVTList(), and MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT1,
MVT  VT2,
MVT  VT3,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4668 of file SelectionDAG.cpp.

References getVTList(), and MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT1,
MVT  VT2,
SDValue  Op1 
)

Definition at line 4675 of file SelectionDAG.cpp.

References getVTList(), and MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT1,
MVT  VT2,
SDValue  Op1,
SDValue  Op2 
)

Definition at line 4683 of file SelectionDAG.cpp.

References getVTList(), and MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
MVT  VT1,
MVT  VT2,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4691 of file SelectionDAG.cpp.

References getVTList(), and MorphNodeTo().

SDNode * SelectionDAG::MorphNodeTo ( SDNode *  N,
unsigned  Opc,
SDVTList  VTs,
const SDValue *  Ops,
unsigned  NumOps 
)

MorphNodeTo - These *mutate* the specified node to have the specified return type, opcode, and operands.

Note that MorphNodeTo returns the resultant node. If there is already a node of the specified opcode and operands, it returns that node instead of the current one.

Using MorphNodeTo is faster than creating a new node and swapping it in with ReplaceAllUsesWith both because it often avoids allocating a new node, and because it doesn't require CSE recalculation for any of the node's users.

Definition at line 4712 of file SelectionDAG.cpp.

References AddNodeIDNode(), llvm::BumpPtrAllocator::Allocate(), llvm::SmallPtrSet< PtrType, SmallSize >::begin(), E, llvm::SmallPtrSet< PtrType, SmallSize >::end(), llvm::MVT::Flag, llvm::SDUse::getNode(), llvm::SmallPtrSet< PtrType, SmallSize >::insert(), llvm::SDNode::isMachineOpcode(), llvm::SDNode::NodeType, llvm::SDNode::NumOperands, llvm::SDNode::NumValues, llvm::SDVTList::NumVTs, llvm::SDNode::op_begin(), llvm::SDNode::op_end(), llvm::SDNode::OperandList, llvm::SDNode::OperandsNeedDelete, llvm::SmallVectorImpl< T >::push_back(), RemoveDeadNodes(), llvm::SDUse::set(), llvm::SDUse::setInitial(), llvm::SDUse::setUser(), llvm::SDNode::use_empty(), llvm::SDNode::ValueList, and llvm::SDVTList::VTs.

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT 
)

getTargetNode - These are used for target selectors to create a new node with specified return type(s), target opcode, and operands.

Note that getTargetNode returns the resultant node. If there is already a node of the specified opcode and operands, it returns that node instead of the current one.

getTargetNode - These are used for target selectors to create a new node with specified return type(s), target opcode, and operands.

Note that getTargetNode returns the resultant node. If there is already a node of the specified opcode and operands, it returns that node instead of the current one.

Definition at line 4789 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and getNode().

Referenced by llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegImmShift(), and llvm::X86InstrInfo::unfoldMemoryOperand().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT 
)

Definition at line 4792 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and getNode().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT,
SDValue  Op1 
)

Definition at line 4796 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and getNode().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT,
SDValue  Op1 
)

Definition at line 4799 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and getNode().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT,
SDValue  Op1,
SDValue  Op2 
)

Definition at line 4804 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and getNode().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT,
SDValue  Op1,
SDValue  Op2 
)

Definition at line 4808 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and getNode().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4813 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and getNode().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4818 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and getNode().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4824 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and getNode().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4828 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), and getNode().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT1,
MVT  VT2 
)

Definition at line 4833 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT1,
MVT  VT2 
)

Definition at line 4838 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT1,
MVT  VT2,
SDValue  Op1 
)

Definition at line 4845 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT1,
MVT  VT2,
SDValue  Op1 
)

Definition at line 4850 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT1,
MVT  VT2,
SDValue  Op1,
SDValue  Op2 
)

Definition at line 4856 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT1,
MVT  VT2,
SDValue  Op1,
SDValue  Op2 
)

Definition at line 4863 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT1,
MVT  VT2,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4871 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT1,
MVT  VT2,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4878 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT1,
MVT  VT2,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4886 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT1,
MVT  VT2,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4891 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT1,
MVT  VT2,
MVT  VT3,
SDValue  Op1,
SDValue  Op2 
)

Definition at line 4898 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT1,
MVT  VT2,
MVT  VT3,
SDValue  Op1,
SDValue  Op2 
)

Definition at line 4904 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT1,
MVT  VT2,
MVT  VT3,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4912 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT1,
MVT  VT2,
MVT  VT3,
SDValue  Op1,
SDValue  Op2,
SDValue  Op3 
)

Definition at line 4919 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT1,
MVT  VT2,
MVT  VT3,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4928 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT1,
MVT  VT2,
MVT  VT3,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4933 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
MVT  VT1,
MVT  VT2,
MVT  VT3,
MVT  VT4,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4940 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
MVT  VT1,
MVT  VT2,
MVT  VT3,
MVT  VT4,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4951 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
const std::vector< MVT > &  ResultTys,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4963 of file SelectionDAG.cpp.

References getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getTargetNode ( unsigned  Opcode,
DebugLoc  dl,
const std::vector< MVT > &  ResultTys,
const SDValue *  Ops,
unsigned  NumOps 
)

Definition at line 4970 of file SelectionDAG.cpp.

References getNode(), and getNodeValueTypes().

SDNode * SelectionDAG::getNodeIfExists ( unsigned  Opcode,
SDVTList  VTList,
const SDValue *  Ops,
unsigned  NumOps 
)

getNodeIfExists - Get the specified node if it's already available, or else return NULL.

getNodeIfExists - Get the specified node if it's already available, or else return NULL.

Definition at line 4980 of file SelectionDAG.cpp.

References AddNodeIDNode(), E, llvm::MVT::Flag, llvm::SDVTList::NumVTs, and llvm::SDVTList::VTs.

void SelectionDAG::RemoveDeadNode ( SDNode *  N,
DAGUpdateListener *  UpdateListener = 0 
)

RemoveDeadNode - Remove the specified node from the system. If any of its operands then becomes dead, remove them as well. Inform UpdateListener for each node deleted.

Definition at line 571 of file SelectionDAG.cpp.

References RemoveDeadNodes().

Referenced by llvm::TargetLowering::LowerArguments().

void SelectionDAG::RemoveDeadNodes ( SmallVectorImpl< SDNode * > &  DeadNodes,
DAGUpdateListener *  UpdateListener = 0 
)

RemoveDeadNodes - This method deletes the unreachable nodes in the given list, and any nodes that become unreachable as a result.

RemoveDeadNodes - This method deletes the unreachable nodes in the given list, and any nodes that become unreachable as a result.

Definition at line 541 of file SelectionDAG.cpp.

References E, llvm::SmallVectorImpl< T >::empty(), llvm::SDUse::getNode(), llvm::SelectionDAG::DAGUpdateListener::NodeDeleted(), llvm::SDNode::op_begin(), llvm::SDNode::op_end(), Operand, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorImpl< T >::push_back(), llvm::SDUse::set(), and llvm::SDNode::use_empty().

void SelectionDAG::ReplaceAllUsesWith ( SDValue  FromN,
SDValue  To,
DAGUpdateListener *  UpdateListener = 0 
)

ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG. Use the first version if 'From' is known to have a single result, use the second if you have two nodes with identical results, use the third otherwise.

These methods all take an optional UpdateListener, which (if not null) is informed about nodes that are deleted and modified due to recursive changes in the dag.

These functions only replace all existing uses. It's possible that as these replacements are being performed, CSE may cause the From node to be given new uses. These new uses of From are left in place, and not automatically transfered to To.

ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG.

This version assumes From has a single result value.

Definition at line 4997 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), llvm::SDNode::getNumValues(), llvm::SDValue::getResNo(), llvm::SDUse::set(), llvm::SDNode::use_begin(), and llvm::SDNode::use_end().

Referenced by ReplaceAllUsesOfValueWith(), and ReplaceAllUsesWith().

void SelectionDAG::ReplaceAllUsesWith ( SDNode *  From,
SDNode *  To,
DAGUpdateListener *  UpdateListener = 0 
)

ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG.

This version assumes From/To have matching types and numbers of result values.

Definition at line 5040 of file SelectionDAG.cpp.

References llvm::SDNode::getNumValues(), llvm::SDNode::use_iterator::getUse(), llvm::SDNode::getVTList(), llvm::SDUse::setNode(), llvm::SDNode::use_begin(), llvm::SDNode::use_end(), and llvm::SDVTList::VTs.

void SelectionDAG::ReplaceAllUsesWith ( SDNode *  From,
const SDValue *  To,
DAGUpdateListener *  UpdateListener = 0 
)

ReplaceAllUsesWith - Modify anything using 'From' to use 'To' instead. This can cause recursive merging of nodes in the DAG.

This version can replace From with any result values. To must match the number and types of values returned by From.

Definition at line 5080 of file SelectionDAG.cpp.

References llvm::SDNode::getNumValues(), llvm::SDUse::getResNo(), llvm::SDNode::use_iterator::getUse(), ReplaceAllUsesWith(), llvm::SDUse::set(), llvm::SDNode::use_begin(), and llvm::SDNode::use_end().

void SelectionDAG::ReplaceAllUsesOfValueWith ( SDValue  From,
SDValue  To,
DAGUpdateListener *  UpdateListener = 0 
)

ReplaceAllUsesOfValueWith - Replace any uses of From with To, leaving uses of other values produced by From.Val alone.

ReplaceAllUsesOfValueWith - Replace any uses of From with To, leaving uses of other values produced by From.getNode() alone. The Deleted vector is handled the same way as for ReplaceAllUsesWith.

Definition at line 5115 of file SelectionDAG.cpp.

References llvm::SDValue::getNode(), llvm::SDNode::getNumValues(), llvm::SDValue::getResNo(), llvm::SDUse::getResNo(), llvm::SDNode::use_iterator::getUse(), ReplaceAllUsesWith(), llvm::SDUse::set(), llvm::SDNode::use_begin(), and llvm::SDNode::use_end().

Referenced by llvm::PIC16TargetLowering::PerformPIC16LoadCombine(), and ReplaceAllUsesOfValuesWith().

void SelectionDAG::ReplaceAllUsesOfValuesWith ( const SDValue *  From,
const SDValue *  To,
unsigned  Num,
DAGUpdateListener *  UpdateListener = 0 
)

ReplaceAllUsesOfValuesWith - Like ReplaceAllUsesOfValueWith, but for multiple values at once. This correctly handles the case where there is an overlap between the From values and the To values.

ReplaceAllUsesOfValuesWith - Replace any uses of From with To, leaving uses of other values produced by From.getNode() alone. The same value may appear in both the From and To list. The Deleted vector is handled the same way as for ReplaceAllUsesWith.

Definition at line 5188 of file SelectionDAG.cpp.

References llvm::SmallVectorImpl< T >::begin(), E, llvm::SmallVectorImpl< T >::end(), llvm::SDValue::getNode(), llvm::SDUse::getResNo(), llvm::SDValue::getResNo(), llvm::SmallVectorImpl< T >::push_back(), ReplaceAllUsesOfValueWith(), llvm::SDUse::set(), llvm::SmallVectorImpl< T >::size(), llvm::SDNode::use_begin(), llvm::SDNode::use_end(), and Uses.

unsigned SelectionDAG::AssignTopologicalOrder (  ) 

AssignTopologicalOrder - Topological-sort the AllNodes list and a assign a unique node id for each node in the DAG based on their topological order. Returns the number of nodes.

AssignTopologicalOrder - Assign a unique node id for each node in the DAG based on their topological order. It returns the maximum id and a vector of the SDNodes* in assigned order by reference.

Definition at line 5246 of file SelectionDAG.cpp.

References allnodes_begin(), allnodes_end(), allnodes_size(), E, llvm::ISD::EntryToken, llvm::SDNode::getNodeId(), llvm::SDNode::getNumOperands(), Q, llvm::SDNode::setNodeId(), llvm::SDNode::use_begin(), and llvm::SDNode::use_end().

Referenced by llvm::SelectionDAGISel::SelectRootInit().

void llvm::SelectionDAG::RepositionNode ( allnodes_iterator  Position,
SDNode *  N 
) [inline]

RepositionNode - Move node N in the AllNodes list to be immediately before the given iterator Position. This may be used to update the topological ordering when the list of nodes is modified.

Definition at line 861 of file SelectionDAG.h.

static bool llvm::SelectionDAG::isCommutativeBinOp ( unsigned  Opcode  )  [inline, static]

isCommutativeBinOp - Returns true if the opcode is a commutative binary operation.

Definition at line 867 of file SelectionDAG.h.

References llvm::ISD::ADD, llvm::ISD::ADDC, llvm::ISD::ADDE, llvm::ISD::AND, llvm::ISD::FADD, llvm::ISD::FMUL, llvm::ISD::MUL, llvm::ISD::MULHS, llvm::ISD::MULHU, llvm::ISD::OR, llvm::ISD::SMUL_LOHI, llvm::ISD::UMUL_LOHI, and llvm::ISD::XOR.

Referenced by getNode(), and llvm::TargetLowering::SimplifySetCC().

void SelectionDAG::dump (  )  const

Definition at line 6045 of file SelectionDAG.cpp.

Referenced by LowerSTORE().

SDValue SelectionDAG::CreateStackTemporary ( MVT  VT,
unsigned  minAlign = 1 
)

CreateStackTemporary - Create a stack temporary, suitable for holding the specified value type. If minAlign is specified, the slot size will have at least that alignment.

CreateStackTemporary - Create a stack temporary, suitable for holding the specified value type.

Definition at line 1308 of file SelectionDAG.cpp.

References llvm::MachineFrameInfo::CreateStackObject(), FrameIdx, getFrameIndex(), llvm::MachineFunction::getFrameInfo(), getMachineFunction(), llvm::TargetLowering::getPointerTy(), llvm::TargetData::getPrefTypeAlignment(), llvm::MVT::getStoreSizeInBits(), llvm::TargetLowering::getTargetData(), llvm::MVT::getTypeForMVT(), and TLI.

Referenced by ExpandUnalignedLoad(), ExpandUnalignedStore(), and LowerCALL().

SDValue SelectionDAG::CreateStackTemporary ( MVT  VT1,
MVT  VT2 
)

CreateStackTemporary - Create a stack temporary suitable for holding either of the specified value types.

CreateStackTemporary - Create a stack temporary suitable for holding either of the specified value types.

Definition at line 1321 of file SelectionDAG.cpp.

References Align, FrameIdx, getFrameIndex(), llvm::MachineFunction::getFrameInfo(), getMachineFunction(), llvm::TargetLowering::getPointerTy(), llvm::TargetData::getPrefTypeAlignment(), llvm::MVT::getStoreSizeInBits(), llvm::TargetLowering::getTargetData(), llvm::MVT::getTypeForMVT(), TD, and TLI.

SDValue SelectionDAG::FoldConstantArithmetic ( unsigned  Opcode,
MVT  VT,
ConstantSDNode *  Cst1,
ConstantSDNode *  Cst2 
)

SDValue SelectionDAG::FoldSetCC ( MVT  VT,
SDValue  N1,
SDValue  N2,
ISD::CondCode  Cond,
DebugLoc  dl 
)

bool SelectionDAG::SignBitIsZero ( SDValue  Op,
unsigned  Depth = 0 
) const

SignBitIsZero - Return true if the sign bit of Op is known to be zero. We use this predicate to simplify operations downstream.

SignBitIsZero - Return true if the sign bit of Op is known to be zero. We use this predicate to simplify operations downstream.

Definition at line 1439 of file SelectionDAG.cpp.

References llvm::APInt::getSignBit(), llvm::SDValue::getValueSizeInBits(), and MaskedValueIsZero().

bool SelectionDAG::MaskedValueIsZero ( SDValue  Op,
const APInt &  Mask,
unsigned  Depth = 0 
) const

MaskedValueIsZero - Return true if 'Op & Mask' is known to be zero. We use this predicate to simplify operations downstream. Op and Mask are known to be the same type.

MaskedValueIsZero - Return true if 'V & Mask' is known to be zero. We use this predicate to simplify operations downstream. Mask is known to be zero for bits that V cannot have.

Definition at line 1447 of file SelectionDAG.cpp.

References ComputeMaskedBits().

Referenced by llvm::SelectionDAGISel::CheckAndMask(), SignBitIsZero(), and llvm::TargetLowering::SimplifySetCC().

void SelectionDAG::ComputeMaskedBits ( SDValue  Op,
const APInt &  Mask,
APInt &  KnownZero,
APInt &  KnownOne,
unsigned  Depth = 0 
) const

ComputeMaskedBits - Determine which of the bits specified in Mask are known to be either zero or one and return them in the KnownZero/KnownOne bitsets. This code only analyzes bits in Mask, in order to short-circuit processing. Targets can implement the computeMaskedBitsForTargetNode method in the TargetLowering class to allow target nodes to be understood.

ComputeMaskedBits - Determine which of the bits specified in Mask are known to be either zero or one and return them in the KnownZero/KnownOne bitsets. This code only analyzes bits in Mask, in order to short-circuit processing.

Definition at line 1459 of file SelectionDAG.cpp.

References llvm::ISD::ADD, llvm::ISD::AND, llvm::ISD::ANY_EXTEND, llvm::ISD::AssertZext, llvm::ISD::BUILTIN_OP_END, llvm::TargetLowering::computeMaskedBitsForTargetNode(), llvm::ISD::Constant, llvm::ISD::CTLZ, llvm::ISD::CTPOP, llvm::ISD::CTTZ, llvm::ISD::FGETSIGN, llvm::APInt::getAllOnesValue(), llvm::APInt::getBitWidth(), llvm::TargetLowering::getBooleanContents(), llvm::APInt::getBoolValue(), llvm::APInt::getHighBitsSet(), llvm::APInt::getLowBitsSet(), llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getNode(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::getResNo(), llvm::APInt::getSignBit(), llvm::MVT::getSizeInBits(), llvm::SDValue::getValueType(), llvm::ISD::INTRINSIC_VOID, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::INTRINSIC_WO_CHAIN, llvm::APInt::isPowerOf2(), llvm::APInt::isStrictlyPositive(), llvm::ISD::isZEXTLoad(), llvm::ISD::LOAD, llvm::Log2_32(), llvm::APInt::lshr(), llvm::ISD::MUL, llvm::ISD::OR, llvm::ISD::SADDO, llvm::ISD::SELECT, llvm::ISD::SELECT_CC, llvm::ISD::SETCC, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SMULO, llvm::ISD::SRA, llvm::ISD::SREM, llvm::ISD::SRL, llvm::ISD::SSUBO, llvm::ISD::SUB, TLI, llvm::APInt::trunc(), llvm::ISD::TRUNCATE, llvm::ISD::UADDO, llvm::ISD::UDIV, llvm::ISD::UMULO, llvm::ISD::UREM, llvm::ISD::USUBO, llvm::ISD::XOR, llvm::ISD::ZERO_EXTEND, llvm::TargetLowering::ZeroOrOneBooleanContent, and llvm::APInt::zext().

Referenced by llvm::SelectionDAGISel::CheckOrMask(), llvm::SparcTargetLowering::computeMaskedBitsForTargetNode(), llvm::ARMTargetLowering::computeMaskedBitsForTargetNode(), ComputeNumSignBits(), MaskedValueIsZero(), llvm::PPCTargetLowering::SelectAddressRegImm(), llvm::PPCTargetLowering::SelectAddressRegImmShift(), llvm::PPCTargetLowering::SelectAddressRegReg(), llvm::TargetLowering::SimplifyDemandedBits(), and ValueHasExactlyOneBitSet().

unsigned SelectionDAG::ComputeNumSignBits ( SDValue  Op,
unsigned  Depth = 0 
) const

ComputeNumSignBits - Return the number of times the sign bit of the register is replicated into the other bits. We know that at least 1 bit is always equal to the sign bit (itself), but other cases can give us information. For example, immediately after an "SRA X, 2", we know that the top 3 bits are all equal to each other, so we return 3. Targets can implement the ComputeNumSignBitsForTarget method in the TargetLowering class to allow target nodes to be understood.

ComputeNumSignBits - Return the number of times the sign bit of the register is replicated into the other bits. We know that at least 1 bit is always equal to the sign bit (itself), but other cases can give us information. For example, immediately after an "SRA X, 2", we know that the top 3 bits are all equal to each other, so we return 3.

Definition at line 1916 of file SelectionDAG.cpp.

References llvm::ISD::ADD, llvm::ISD::AND, llvm::ISD::AssertSext, llvm::ISD::AssertZext, llvm::ISD::BUILTIN_OP_END, llvm::CallingConv::C, ComputeMaskedBits(), llvm::TargetLowering::ComputeNumSignBitsForTargetNode(), llvm::ISD::Constant, llvm::APInt::countLeadingOnes(), llvm::APInt::countLeadingZeros(), llvm::APInt::getAllOnesValue(), llvm::APInt::getBitWidth(), llvm::TargetLowering::getBooleanContents(), llvm::LoadSDNode::getExtensionType(), llvm::MemSDNode::getMemoryVT(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDValue::getResNo(), llvm::MVT::getSizeInBits(), llvm::SDValue::getValueType(), llvm::ISD::INTRINSIC_VOID, llvm::ISD::INTRINSIC_W_CHAIN, llvm::ISD::INTRINSIC_WO_CHAIN, llvm::MVT::isInteger(), llvm::APInt::isNegative(), llvm::ISD::LOAD, llvm::ISD::OR, llvm::ISD::ROTL, llvm::ISD::ROTR, llvm::ISD::SADDO, llvm::ISD::SELECT, llvm::ISD::SETCC, llvm::ISD::SEXTLOAD, llvm::ISD::SHL, llvm::ISD::SIGN_EXTEND, llvm::ISD::SIGN_EXTEND_INREG, llvm::ISD::SMULO, llvm::ISD::SRA, llvm::ISD::SSUBO, llvm::ISD::SUB, TLI, llvm::ISD::TRUNCATE, llvm::ISD::UADDO, llvm::ISD::UMULO, llvm::ISD::USUBO, Val, llvm::ISD::XOR, llvm::TargetLowering::ZeroOrNegativeOneBooleanContent, and llvm::ISD::ZEXTLOAD.

bool SelectionDAG::isVerifiedDebugInfoDesc ( SDValue  Op  )  const

isVerifiedDebugInfoDesc - Returns true if the specified SDValue has been verified as a debug information descriptor.

Definition at line 2137 of file SelectionDAG.cpp.

References llvm::dyn_cast(), llvm::GlobalAddressSDNode::getGlobal(), getMachineModuleInfo(), llvm::GlobalAddressSDNode::getOffset(), GV, llvm::MachineModuleInfo::hasDebugInfo(), and MMI.

SDValue SelectionDAG::getShuffleScalarElt ( const SDNode *  N,
unsigned  i 
)

getShuffleScalarElt - Returns the scalar element that will make up the ith element of the result of the vector shuffle.

getShuffleScalarElt - Returns the scalar element that will make up the ith element of the result of the vector shuffle.

Definition at line 2150 of file SelectionDAG.cpp.

References llvm::ISD::BIT_CONVERT, llvm::ISD::BUILD_VECTOR, llvm::SDNode::getDebugLoc(), llvm::SDValue::getNode(), getNode(), llvm::SDValue::getNumOperands(), llvm::SDValue::getOpcode(), llvm::SDValue::getOperand(), llvm::SDNode::getOperand(), llvm::SDValue::getValueType(), llvm::SDNode::getValueType(), llvm::MVT::getVectorElementType(), llvm::MVT::getVectorNumElements(), Idx, Index, llvm::MVT::isVector(), llvm::ISD::SCALAR_TO_VECTOR, llvm::ISD::UNDEF, V, and llvm::ISD::VECTOR_SHUFFLE.

Referenced by EltsFromConsecutiveLoads(), and getNumOfConsecutiveZeros().


Member Data Documentation

std::map<const SDNode *, std::string> llvm::SelectionDAG::NodeGraphAttrs

Definition at line 147 of file SelectionDAG.h.

Referenced by clearGraphAttrs(), getGraphAttrs(), setGraphAttrs(), and setGraphColor().


The documentation for this class was generated from the following files: