Lines Matching refs:SDNode
264 SDNode *Node) const {
525 SmallPtrSet<SDNode*, 128> VisitedNodes;
526 SmallVector<SDNode*, 128> Worklist;
534 SDNode *N = Worklist.pop_back_val();
737 virtual void NodeDeleted(SDNode *N, SDNode *E) {
772 SDNode *Node = --ISelPosition;
779 SDNode *ResNode = Select(Node);
1536 /// SDNode.
1538 static SDNode *findGlueUse(SDNode *N) {
1540 for (SDNode::use_iterator I = N->use_begin(), E = N->use_end(); I != E; ++I) {
1551 static bool findNonImmUse(SDNode *Use, SDNode* Def, SDNode *ImmedUse,
1552 SDNode *Root, SmallPtrSet<SDNode*, 16> &Visited,
1575 SDNode *N = Use->getOperand(i).getNode();
1592 bool SelectionDAGISel::IsProfitableToFold(SDValue N, SDNode *U,
1593 SDNode *Root) const {
1600 bool SelectionDAGISel::IsLegalToFold(SDValue N, SDNode *U, SDNode *Root,
1651 SDNode *GU = findGlueUse(Root);
1665 SmallPtrSet<SDNode*, 16> Visited;
1669 SDNode *SelectionDAGISel::Select_INLINEASM(SDNode *N) {
1680 SDNode *SelectionDAGISel::Select_UNDEF(SDNode *N) {
1705 UpdateChainsAndGlue(SDNode *NodeToMatch, SDValue InputChain,
1706 const SmallVectorImpl<SDNode*> &ChainNodesMatched,
1708 const SmallVectorImpl<SDNode*> &GlueResultNodesMatched,
1710 SmallVector<SDNode*, 4> NowDeadNodes;
1720 SDNode *ChainNode = ChainNodesMatched[i];
1749 SDNode *FRN = GlueResultNodesMatched[i];
1789 WalkChainUsers(const SDNode *ChainedNode,
1790 SmallVectorImpl<SDNode*> &ChainedNodesInPattern,
1791 SmallVectorImpl<SDNode*> &InteriorChainedNodes) {
1794 for (SDNode::use_iterator UI = ChainedNode->use_begin(),
1799 SDNode *User = *UI;
1907 HandleMergeInputChains(SmallVectorImpl<SDNode*> &ChainNodesMatched,
1912 SmallVector<SDNode*, 3> InteriorChainedNodes;
1925 SDNode *N = ChainNodesMatched[i];
1954 SDNode *SelectionDAGISel::
1955 MorphNode(SDNode *Node, unsigned TargetOpc, SDVTList VTList,
1976 SDNode *Res = CurDAG->MorphNodeTo(Node, ~TargetOpc, VTList, Ops, NumOps);
2015 const SmallVectorImpl<std::pair<SDValue, SDNode*> > &RecordedNodes) {
2032 SDNode *N) {
2038 SDNode *N) {
2129 SmallVectorImpl<std::pair<SDValue, SDNode*> > &RecordedNodes) {
2202 SDNode *SelectionDAGISel::
2203 SelectCodeCommon(SDNode *NodeToMatch, const unsigned char *MatcherTable,
2257 SmallVector<std::pair<SDValue, SDNode*>, 8> RecordedNodes;
2272 SmallVector<SDNode*, 3> ChainNodesMatched;
2273 SmallVector<SDNode*, 3> GlueResultNodesMatched;
2385 SDNode *Parent = 0;
2575 RecordedNodes.push_back(std::pair<SDValue, SDNode*>(
2576 CurDAG->getTargetConstant(Val, VT), (SDNode*)0));
2583 RecordedNodes.push_back(std::pair<SDValue, SDNode*>(
2584 CurDAG->getRegister(RegNo, VT), (SDNode*)0));
2595 RecordedNodes.push_back(std::pair<SDValue, SDNode*>(
2596 CurDAG->getRegister(RegNo, VT), (SDNode*)0));
2711 RecordedNodes.push_back(std::pair<SDValue,SDNode*>(Res, (SDNode*) 0));
2781 SDNode *Res = 0;
2791 RecordedNodes.push_back(std::pair<SDValue,SDNode*>(SDValue(Res, i),
2792 (SDNode*) 0));
2931 // above. We should fix this to not return an SDNode* anymore.
2991 void SelectionDAGISel::CannotYetSelect(SDNode *N) {