static std::string getEdgeAttributes(const void *Node, EdgeIter EI) { SDValue Op = EI.getNode()->getOperand(EI.getOperand()); EVT VT = Op.getValueType(); if (VT == MVT::Flag) return "color=red,style=bold"; else if (VT == MVT::Other) return "color=blue,style=dashed"; return ""; }
static EdgeIter getEdgeTarget(const void *Node, EdgeIter I) { SDNode *TargetNode = *I; SDNodeIterator NI = SDNodeIterator::begin(TargetNode); std::advance(NI, I.getNode()->getOperand(I.getOperand()).getResNo()); return NI; }