Home | History | Annotate | Download | only in SelectionDAG

Lines Matching refs:SDNode

64 void SelectionDAG::DAGUpdateListener::NodeDeleted(SDNode*, SDNode*) {}
65 void SelectionDAG::DAGUpdateListener::NodeUpdated(SDNode*) {}
98 bool ISD::isBuildVectorAllOnes(const SDNode *N) {
146 bool ISD::isBuildVectorAllZeros(const SDNode *N) {
186 bool ISD::isScalarToVector(const SDNode *N) {
207 bool ISD::allOperandsUndef(const SDNode *N) {
321 // SDNode Profile Support
364 /// AddNodeIDCustom - If this is an SDNode with special info, add this info to
366 static void AddNodeIDCustom(FoldingSetNodeID &ID, const SDNode *N) {
495 static void AddNodeIDNode(FoldingSetNodeID &ID, const SDNode *N) {
502 // Handle SDNode leafs with special info.
529 static bool doNotCSE(SDNode *N) {
555 SmallVector<SDNode*, 128> DeadNodes;
570 void SelectionDAG::RemoveDeadNodes(SmallVectorImpl<SDNode *> &DeadNodes) {
575 SDNode *N = DeadNodes.pop_back_val();
585 for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); I != E; ) {
587 SDNode *Operand = Use.getNode();
599 void SelectionDAG::RemoveDeadNode(SDNode *N){
600 SmallVector<SDNode*, 16> DeadNodes(1, N);
610 void SelectionDAG::DeleteNode(SDNode *N) {
619 void SelectionDAG::DeleteNodeNotInCSEMaps(SDNode *N) {
629 void SelectionDAG::DeallocateNode(SDNode *N) {
642 // If any of the SDDbgValue nodes refer to this SDNode, invalidate them.
652 bool SelectionDAG::RemoveNodeFromCSEMaps(SDNode *N) {
709 SelectionDAG::AddModifiedNodeToCSEMaps(SDNode *N) {
713 SDNode *Existing = CSEMap.GetOrInsertNode(N);
737 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N, SDValue Op,
746 SDNode *Node = CSEMap.FindNodeOrInsertPos(ID, InsertPos);
754 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N,
764 SDNode *Node = CSEMap.FindNodeOrInsertPos(ID, InsertPos);
773 SDNode *SelectionDAG::FindModifiedNodeSlot(SDNode *N,
782 SDNode *Node = CSEMap.FindNodeOrInsertPos(ID, InsertPos);
788 static void VerifyNodeCommon(SDNode *N) {
812 for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); I != E; ++I) {
825 /// VerifySDNode - Sanity check the given SDNode. Aborts if it is invalid.
826 static void VerifySDNode(SDNode *N) {
827 // The SDNode allocators cannot be used to allocate nodes with fields that are
828 // not present in an SDNode!
854 static void VerifyMachineNode(SDNode *N) {
916 static_cast<SDNode*>(0));
1000 SDNode *N = NULL;
1042 SDNode *N = NULL;
1112 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1115 SDNode *N = new (NodeAllocator) GlobalAddressSDNode(Opc, DL, GV, VT,
1128 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1131 SDNode *N = new (NodeAllocator) FrameIndexSDNode(FI, VT, isTarget);
1147 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1150 SDNode *N = new (NodeAllocator) JumpTableSDNode(JTI, VT, isTarget,
1173 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1176 SDNode *N = new (NodeAllocator) ConstantPoolSDNode(isTarget, C, VT, Offset,
1200 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1203 SDNode *N = new (NodeAllocator) ConstantPoolSDNode(isTarget, C, VT, Offset,
1218 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1221 SDNode *N = new (NodeAllocator) TargetIndexSDNode(Index, VT, Offset,
1233 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1236 SDNode *N = new (NodeAllocator) BasicBlockSDNode(MBB);
1247 SDNode *&N = VT.isExtended() ?
1257 SDNode *&N = ExternalSymbols[Sym];
1266 SDNode *&N =
1376 if (SDNode
1380 // SDNode doesn't have access to it. This memory will be "leaked" when
1406 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1421 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1424 SDNode *N = new (NodeAllocator) RegisterSDNode(RegNo, VT);
1435 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1438 SDNode *N = new (NodeAllocator) RegisterMaskSDNode(RegMask);
1450 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1453 SDNode *N = new (NodeAllocator) EHLabelSDNode(dl, Root, Label);
1472 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1475 SDNode *N = new (NodeAllocator) BlockAddressSDNode(Opc, VT, BA, Offset,
1491 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1494 SDNode *N = new (NodeAllocator) SrcValueSDNode(V);
1507 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
1510 SDNode *N = new (NodeAllocator) MDNodeSDNode(MD);
2406 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
2409 SDNode *N = new (NodeAllocator) SDNode(Opcode, DL, getVTList(VT));
2660 SDNode *N;
2667 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
2684 SDNode *Cst1, SDNode *Cst2) {
3232 SDNode *N;
3239 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
3322 SDNode *N;
3329 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
3370 for (SDNode::use_iterator U = getEntryNode().getNode()->use_begin(),
4101 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4105 SDNode *N = new (NodeAllocator) AtomicSDNode(Opcode, dl, VTs, MemVT, Chain,
4174 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4178 SDNode *N = new (NodeAllocator) AtomicSDNode(Opcode, dl, VTs, MemVT, Chain,
4232 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4236 SDNode *N = new (NodeAllocator) AtomicSDNode(Opcode, dl, VTs, MemVT, Chain,
4312 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4432 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4436 SDNode *N = new (NodeAllocator) LoadSDNode(Ops, dl, VTs, AM, ExtType,
4522 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4526 SDNode *N = new (NodeAllocator) StoreSDNode(Ops, dl, VTs, ISD::UNINDEXED,
4590 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
4594 SDNode *N = new (NodeAllocator) StoreSDNode(Ops, dl, VTs, ISD::UNINDEXED,
4615 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
4618 SDNode *N = new (NodeAllocator) StoreSDNode(Ops, dl, VTs, AM,
4682 SDNode *N;
4690 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
4693 N = new (NodeAllocator) SDNode(Opcode, DL, VTs, Ops, NumOps);
4696 N = new (NodeAllocator) SDNode(Opcode, DL, VTs, Ops, NumOps);
4750 SDNode *N;
4755 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
4766 N = new (NodeAllocator) SDNode(Opcode, DL, VTList, Ops, NumOps);
4778 N = new (NodeAllocator) SDNode(Opcode, DL, VTList, Ops, NumOps);
4825 return makeVTList(SDNode::getValueTypeList(VT), 1);
4908 SDNode *SelectionDAG::UpdateNodeOperands(SDNode *N, SDValue Op) {
4916 if (SDNode *Existing = FindModifiedNodeSlot(N, Op, InsertPos))
4932 SDNode *SelectionDAG::UpdateNodeOperands(SDNode *N, SDValue Op1, SDValue Op2) {
4941 if (SDNode *Existing = FindModifiedNodeSlot(N, Op1, Op2, InsertPos))
4960 SDNode *SelectionDAG::
4961 UpdateNodeOperands(SDNode *N, SDValue Op1, SDValue Op2, SDValue Op3) {
4966 SDNode *SelectionDAG::
4967 UpdateNodeOperands(SDNode *N, SDValue Op1, SDValue Op2,
4973 SDNode *SelectionDAG::
4974 UpdateNodeOperands(SDNode *N, SDValue Op1, SDValue Op2,
4980 SDNode *SelectionDAG::
4981 UpdateNodeOperands(SDNode *N, const SDValue *Ops, unsigned NumOps) {
4999 if (SDNode *Existing = FindModifiedNodeSlot(N, Ops, NumOps, InsertPos))
5019 void SDNode::DropOperands() {
5031 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5037 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5044 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5052 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5060 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5067 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5074 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5080 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5087 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5094 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5102 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5110 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5119 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5128 SDNode *SelectionDAG::SelectNodeTo(SDNode *N, unsigned MachineOpc,
5143 SDNode *SelectionDAG::UpdadeDebugLocOnMergedSDNode(SDNode *N, DebugLoc OLoc) {
5163 SDNode *SelectionDAG::MorphNodeTo(SDNode *N, unsigned Opc,
5171 if (SDNode *ON = CSEMap.FindNodeOrInsertPos(ID, IP))
5185 SmallPtrSet<SDNode*, 16> DeadNodeSet;
5186 for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); I != E; ) {
5188 SDNode *Used = Use.getNode();
5228 SmallVector<SDNode *, 16> DeadNodes;
5229 for (SmallPtrSet<SDNode *, 16>::iterator I = DeadNodeSet.begin(),
5376 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP)) {
5411 SDNode *Subreg = getMachineNode(TargetOpcode::EXTRACT_SUBREG, DL,
5422 SDNode *Result = getMachineNode(TargetOpcode::INSERT_SUBREG, DL,
5429 SDNode *SelectionDAG::getNodeIfExists(unsigned Opcode, SDVTList VTList,
5435 if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
5444 SelectionDAG::getDbgValue(MDNode *MDPtr, SDNode *N, unsigned R, uint64_t Off,
5468 SDNode::use_iterator &UI;
5469 SDNode::use_iterator &UE;
5471 virtual void NodeDeleted(SDNode *N, SDNode *E) {
5479 SDNode::use_iterator &ui,
5480 SDNode::use_iterator &ue)
5492 SDNode *From = FromN.getNode();
5504 SDNode::use_iterator UI = From->use_begin(), UE = From->use_end();
5507 SDNode *User = *UI;
5538 void SelectionDAG::ReplaceAllUsesWith(SDNode *From, SDNode *To) {
5552 SDNode::use_iterator UI = From->use_begin(), UE = From->use_end();
5555 SDNode *User = *UI;
5585 void SelectionDAG::ReplaceAllUsesWith(SDNode *From, const SDValue *To) {
5591 SDNode::use_iterator UI = From->use_begin(), UE = From->use_end();
5594 SDNode *User = *UI;
5635 SDNode::use_iterator UI = From.getNode()->use_begin(),
5639 SDNode *User = *UI;
5685 SDNode *User;
5713 SDNode *FromNode = From[i].getNode();
5714 for (SDNode::use_iterator UI = FromNode->use_begin(),
5731 SDNode *User = Uses[UseIndex].User;
5774 SDNode *N = I++;
5794 SDNode *N = I;
5798 for (SDNode::use_iterator UI = N->use_begin(), UE = N->use_end();
5800 SDNode *P = *UI;
5818 SDNode *S = ++I;
5842 /// AssignOrdering - Assign an order to the SDNode.
5843 void SelectionDAG::AssignOrdering(const SDNode *SD, unsigned Order) {
5848 /// GetOrdering - Get the order for the SDNode.
5849 unsigned SelectionDAG::GetOrdering(const SDNode *SD) const {
5854 /// AddDbgValue - Add a dbg_value SDNode. If SD is non-null that means the
5856 void SelectionDAG::AddDbgValue(SDDbgValue *DB, SDNode *SD, bool isParameter) {
5866 SDNode *FromNode = From.getNode();
5867 SDNode *ToNode = To.getNode();
5873 if (Dbg->getKind() == SDDbgValue::SDNODE) {
5886 // SDNode Class
5896 : SDNode(Opc, DL, getSDVTList(VT)), Offset(o), TargetFlags(TF) {
5902 : SDNode(Opc, dl, VTs), MemoryVT(memvt), MMO(mmo) {
5914 : SDNode(Opc, dl, VTs, Ops, NumOps),
5924 void SDNode::Profile(FoldingSetNodeID &ID) const {
5946 const EVT *SDNode::getValueTypeList(EVT VT) {
5960 bool SDNode::hasNUsesOfValue(unsigned NUses, unsigned Value) const {
5964 for (SDNode::use_iterator UI = use_begin(), E = use_end(); UI != E; ++UI) {
5979 bool SDNode::hasAnyUseOfValue(unsigned Value) const {
5982 for (SDNode::use_iterator UI = use_begin(), E = use_end(); UI != E; ++UI)
5992 bool SDNode::isOnlyUserOf(SDNode *N) const {
5994 for (SDNode::use_iterator I = N->use_begin(), E = N->use_end(); I != E; ++I) {
5995 SDNode *User = *I;
6007 bool SDValue::isOperandOf(SDNode *N) const {
6014 bool SDNode::isOperandOf(SDNode *N) const {
6055 bool SDNode::hasPredecessor(const SDNode *N) const {
6056 SmallPtrSet<const SDNode *, 32> Visited;
6057 SmallVector<const SDNode *, 16> Worklist;
6061 bool SDNode::hasPredecessorHelper(const SDNode *N,
6062 SmallPtrSet<const SDNode *, 32> &Visited,
6063 SmallVector<const SDNode *, 16> &Worklist) const {
6075 const SDNode *M = Worklist.pop_back_val();
6077 SDNode *Op = M->getOperand(i).getNode();
6088 uint64_t SDNode::getConstantOperandVal(unsigned Num) const {
6089 assert(Num < NumOperands && "Invalid child # of SDNode!");
6093 SDValue SelectionDAG::UnrollVectorOp(SDNode *N, unsigned ResNE) {
6343 static void checkForCyclesHelper(const SDNode *N,
6344 SmallPtrSet<const SDNode*, 32> &Visited,
6345 SmallPtrSet<const SDNode*, 32> &Checked) {
6367 void llvm::checkForCycles(const llvm::SDNode *N) {
6369 assert(N && "Checking nonexistant SDNode");
6370 SmallPtrSet<const SDNode*, 32> visited;
6371 SmallPtrSet<const SDNode*, 32> checked;