Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:SDNode

63 void SelectionDAG::DAGUpdateListener::NodeDeleted(SDNode*, SDNode*) {}
64 void SelectionDAG::DAGUpdateListener::NodeUpdated(SDNode*) {}
97 bool ISD::isBuildVectorAllOnes(const SDNode *N) {
145 bool ISD::isBuildVectorAllZeros(const SDNode *N) {
185 bool ISD::isScalarToVector(const SDNode *N) {
206 bool ISD::allOperandsUndef(const SDNode *N) {
320 // SDNode Profile Support
363 /// AddNodeIDCustom - If this is an SDNode with special info, add this info to
365 static void AddNodeIDCustom(FoldingSetNodeID &ID, const SDNode *N) {
494 static void AddNodeIDNode(FoldingSetNodeID &ID, const SDNode *N) {
501 // Handle SDNode leafs with special info.
528 static bool doNotCSE(SDNode *N) {
554 SmallVector<SDNode*, 128> DeadNodes;
569 void SelectionDAG::RemoveDeadNodes(SmallVectorImpl<SDNode *> &DeadNodes) {
574 SDNode *N = DeadNodes.pop_back_val();
584 for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); I != E; ) {
586 SDNode *Operand = Use.getNode();
598 void SelectionDAG::RemoveDeadNode(SDNode *N){
599 SmallVector<SDNode*, 16> DeadNodes(1, N);
609 void SelectionDAG::DeleteNode(SDNode *N) {
618 void SelectionDAG::DeleteNodeNotInCSEMaps(SDNode *N) {
628 void SelectionDAG::DeallocateNode(SDNode *N) {
638 // If any of the SDDbgValue nodes refer to this SDNode, invalidate them.
648 bool SelectionDAG::RemoveNodeFromCSEMaps(SDNode *N) {
705 SelectionDAG::AddModifiedNodeToCSEMaps(SDNode *N) {
709 SDNode *Existing = CSEMap.GetOrInsertNode(N);
733 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N, SDValue Op,
742 SDNode *Node = CSEMap.FindNodeOrInsertPos(ID, InsertPos);
750 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N,
760 SDNode *Node = CSEMap.FindNodeOrInsertPos(ID, InsertPos);
769 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N,
778 SDNode *Node = CSEMap.FindNodeOrInsertPos(ID, InsertPos);
784 static void VerifyNodeCommon(SDNode *N) {
808 for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); I != E; ++I) {
821 /// VerifySDNode - Sanity check the given SDNode. Aborts if it is invalid.
822 static void VerifySDNode(SDNode *N) {
823 // The SDNode allocators cannot be used to allocate nodes with fields that are
824 // not present in an SDNode!
850 static void VerifyMachineNode(SDNode *N) {
909 static_cast<SDNode*>(0));
994 SDNode *N = NULL;
1036 SDNode *N = NULL;
1106 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1109 SDNode *N = new (NodeAllocator) GlobalAddressSDNode(Opc, DL.getIROrder(),
1123 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1126 SDNode *N = new (NodeAllocator) FrameIndexSDNode(FI, VT, isTarget);
1142 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1145 SDNode *N = new (NodeAllocator) JumpTableSDNode(JTI, VT, isTarget,
1169 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1172 SDNode *N = new (NodeAllocator) ConstantPoolSDNode(isTarget, C, VT, Offset,
1197 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1200 SDNode *N = new (NodeAllocator) ConstantPoolSDNode(isTarget, C, VT, Offset,
1215 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1218 SDNode *N = new (NodeAllocator) TargetIndexSDNode(Index, VT, Offset,
1230 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1233 SDNode *N = new (NodeAllocator) BasicBlockSDNode(MBB);
1244 SDNode *&N = VT.isExtended() ?
1254 SDNode *&N = ExternalSymbols[Sym];
1263 SDNode *&N =
1373 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1377 // SDNode doesn't have access to it. This memory will be "leaked" when
1403 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1418 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1421 SDNode *N = new (NodeAllocator) RegisterSDNode(RegNo, VT);
1432 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1435 SDNode *N = new (NodeAllocator) RegisterMaskSDNode(RegMask);
1447 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1450 SDNode *N = new (NodeAllocator) EHLabelSDNode(dl.getIROrder(), dl.getDebugLoc(), Root, Label);
1469 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1472 SDNode *N = new (NodeAllocator) BlockAddressSDNode(Opc, VT, BA, Offset,
1488 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1491 SDNode *N = new (NodeAllocator) SrcValueSDNode(V);
1504 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1507 SDNode *N = new (NodeAllocator) MDNodeSDNode(MD);
2292 // If we are looking at the loaded value of the SDNode.
2411 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
2414 SDNode *N = new (NodeAllocator) SDNode(Opcode, DL.getIROrder(), DL.getDebugLoc(), getVTList(VT));
2665 SDNode *N;
2672 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
2689 SDNode *Cst1, SDNode *Cst2) {
3237 SDNode *N;
3244 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
3342 SDNode *N;
3349 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
3390 for (SDNode::use_iterator U = getEntryNode().getNode()->use_begin(),
4126 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4130 SDNode *N = new (NodeAllocator) AtomicSDNode(Opcode, dl.getIROrder(), dl.getDebugLoc(), VTs, MemVT, Chain,
4199 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4203 SDNode *N = new (NodeAllocator) AtomicSDNode(Opcode, dl.getIROrder(), dl.getDebugLoc(), VTs, MemVT, Chain,
4257 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4261 SDNode *N = new (NodeAllocator) AtomicSDNode(Opcode, dl.getIROrder(), dl.getDebugLoc(), VTs, MemVT, Chain,
4337 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4457 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4461 SDNode *N = new (NodeAllocator) LoadSDNode(Ops, dl.getIROrder(), dl.getDebugLoc(), VTs, AM, ExtType,
4547 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4551 SDNode *N = new (NodeAllocator) StoreSDNode(Ops, dl.getIROrder(), dl.getDebugLoc(), VTs, ISD::UNINDEXED,
4615 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4619 SDNode *N = new (NodeAllocator) StoreSDNode(Ops, dl.getIROrder(), dl.getDebugLoc(), VTs, ISD::UNINDEXED,
4640 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
4643 SDNode *N = new (NodeAllocator) StoreSDNode(Ops, dl.getIROrder(), dl.getDebugLoc(), VTs, AM,
4707 SDNode *N;
4715 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
4718 N = new (NodeAllocator) SDNode(Opcode, DL.getIROrder(), DL.getDebugLoc(), VTs, Ops, NumOps);
4721 N = new (NodeAllocator) SDNode(Opcode, DL.getIROrder(), DL.getDebugLoc(), VTs, Ops, NumOps);
4775 SDNode *N;
4780 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
4791 N = new (NodeAllocator) SDNode(Opcode, DL.getIROrder(), DL.getDebugLoc(), VTList, Ops, NumOps);
4803 N = new (NodeAllocator) SDNode(Opcode, DL.getIROrder(), DL.getDebugLoc(), VTList, Ops, NumOps);
4850 return makeVTList(SDNode::getValueTypeList(VT), 1);
4933 SDNode *SelectionDAG::UpdateNodeOperands(SDNode *N, SDValue Op) {
4941 if (SDNode *Existing = FindModifiedNodeSlot(N, Op, InsertPos))
4957 SDNode *SelectionDAG::UpdateNodeOperands(SDNode *N, SDValue Op1, SDValue Op2) {
4966 if (SDNode *Existing = FindModifiedNodeSlot(N, Op1, Op2, InsertPos))
4985 SDNode *SelectionDAG::
4986 UpdateNodeOperands(SDNode *N, SDValue Op1, SDValue Op2, SDValue Op3) {
4991 SDNode *SelectionDAG::
4992 UpdateNodeOperands(SDNode *N, SDValue Op1, SDValue Op2,
4998 SDNode *SelectionDAG::
4999 UpdateNodeOperands(SDNode *N, SDValue Op1, SDValue Op2,
5005 SDNode *SelectionDAG::
5006 UpdateNodeOperands(SDNode *N, const SDValue *Ops, unsigned NumOps) {
5024 if (SDNode *Existing = FindModifiedNodeSlot(N, Ops, NumOps, InsertPos))
5044 void SDNode::DropOperands() {
5056 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5062 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5069 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5077 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5085 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5092 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5099 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5105 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5112 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5119 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5127 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5135 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5144 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5153 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5169 SDNode *SelectionDAG::UpdadeSDLocOnMergedSDNode(SDNode *N, SDLoc OLoc) {
5192 SDNode *SelectionDAG::MorphNodeTo(SDNode *N, unsigned Opc,
5200 if (SDNode *ON = CSEMap.FindNodeOrInsertPos(ID, IP))
5214 SmallPtrSet<SDNode*, 16> DeadNodeSet;
5215 for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); I != E; ) {
5217 SDNode *Used = Use.getNode();
5257 SmallVector<SDNode *, 16> DeadNodes;
5258 for (SmallPtrSet<SDNode *, 16>::iterator I = DeadNodeSet.begin(),
5407 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
5442 SDNode *Subreg = getMachineNode(TargetOpcode::EXTRACT_SUBREG, DL,
5453 SDNode *Result = getMachineNode(TargetOpcode::INSERT_SUBREG, DL,
5460 SDNode *SelectionDAG::getNodeIfExists(unsigned Opcode, SDVTList VTList,
5466 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
5475 SelectionDAG::getDbgValue(MDNode *MDPtr, SDNode *N, unsigned R, uint64_t Off,
5499 SDNode::use_iterator &UI;
5500 SDNode::use_iterator &UE;
5502 virtual void NodeDeleted(SDNode *N, SDNode *E) {
5510 SDNode::use_iterator &ui,
5511 SDNode::use_iterator &ue)
5523 SDNode *From = FromN.getNode();
5535 SDNode::use_iterator UI = From->use_begin(), UE = From->use_end();
5538 SDNode *User = *UI;
5569 void SelectionDAG::ReplaceAllUsesWith(SDNode *From, SDNode *To) {
5583 SDNode::use_iterator UI = From->use_begin(), UE = From->use_end();
5586 SDNode *User = *UI;
5616 void SelectionDAG::ReplaceAllUsesWith(SDNode *From, const SDValue *To) {
5622 SDNode::use_iterator UI = From->use_begin(), UE = From->use_end();
5625 SDNode *User = *UI;
5666 SDNode::use_iterator UI = From.getNode()->use_begin(),
5670 SDNode *User = *UI;
5716 SDNode *User;
5744 SDNode *FromNode = From[i].getNode();
5745 for (SDNode::use_iterator UI = FromNode->use_begin(),
5762 SDNode *User = Uses[UseIndex].User;
5805 SDNode *N = I++;
5825 SDNode *N = I;
5829 for (SDNode::use_iterator UI = N->use_begin(), UE = N->use_end();
5831 SDNode *P = *UI;
5849 SDNode *S = ++I;
5873 /// AddDbgValue - Add a dbg_value SDNode. If SD is non-null that means the
5875 void SelectionDAG::AddDbgValue(SDDbgValue *DB, SDNode *SD, bool isParameter) {
5885 SDNode *FromNode = From.getNode();
5886 SDNode *ToNode = To.getNode();
5892 if (Dbg->getKind() == SDDbgValue::SDNODE) {
5905 // SDNode Class
5915 : SDNode(Opc, Order, DL, getSDVTList(VT)), Offset(o), TargetFlags(TF) {
5921 : SDNode(Opc, Order, dl, VTs), MemoryVT(memvt), MMO(mmo) {
5933 : SDNode(Opc, Order, dl, VTs, Ops, NumOps),
5943 void SDNode::Profile(FoldingSetNodeID &ID) const {
5965 const EVT *SDNode::getValueTypeList(EVT VT) {
5979 bool SDNode::hasNUsesOfValue(unsigned NUses, unsigned Value) const {
5983 for (SDNode::use_iterator UI = use_begin(), E = use_end(); UI != E; ++UI) {
5998 bool SDNode::hasAnyUseOfValue(unsigned Value) const {
6001 for (SDNode::use_iterator UI = use_begin(), E = use_end(); UI != E; ++UI)
6011 bool SDNode::isOnlyUserOf(SDNode *N) const {
6013 for (SDNode::use_iterator I = N->use_begin(), E = N->use_end(); I != E; ++I) {
6014 SDNode *User = *I;
6026 bool SDValue::isOperandOf(SDNode *N) const {
6033 bool SDNode::isOperandOf(SDNode *N) const {
6074 bool SDNode::hasPredecessor(const SDNode *N) const {
6075 SmallPtrSet<const SDNode *, 32> Visited;
6076 SmallVector<const SDNode *, 16> Worklist;
6081 SDNode::hasPredecessorHelper(const SDNode *N,
6082 SmallPtrSet<const SDNode *, 32> &Visited,
6083 SmallVectorImpl<const SDNode *> &Worklist) const {
6095 const SDNode *M = Worklist.pop_back_val();
6097 SDNode *Op = M->getOperand(i).getNode();
6108 uint64_t SDNode::getConstantOperandVal(unsigned Num) const {
6109 assert(Num < NumOperands && "Invalid child # of SDNode!");
6113 SDValue SelectionDAG::UnrollVectorOp(SDNode *N, unsigned ResNE) {
6366 static void checkForCyclesHelper(const SDNode *N,
6367 SmallPtrSet<const SDNode*, 32> &Visited,
6368 SmallPtrSet<const SDNode*, 32> &Checked) {
6390 void llvm::checkForCycles(const llvm::SDNode *N) {
6392 assert(N && "Checking nonexistant SDNode");
6393 SmallPtrSet<const SDNode*, 32> visited;
6394 SmallPtrSet<const SDNode*, 32> checked;