Returns a list of dags of an operation, which use only given set of operations.
Additionally, immediate info can be provided to this function. The info describes immediate transport capabilities to the operands of the (known) operations. ImmInfo discards dags that have constant values bound to operand that can not have the immediate transported to.
- Parameters
-
opName | Name of operation whose DAGs are requested. |
opSet | Set of operations that are allowed to be referred by the returned DAGs. |
immInfo | The immediate info. |
- Returns
- List of DAGs which comply the search parameters.
Definition at line 57 of file OperationDAGSelector.cc.
62 OperationDAGList retDags;
66 for (
int i = 0; i < op.
dagCount(); i++) {
81 bool discardDag =
false;
82 for (
int i = 0; i < currDag.
nodeCount(); i++) {
85 if (cNode ==
nullptr)
continue;
87 for (
auto& edge : currDag.
outEdges(*cNode)) {
91 "Operation DAG node is other than OperationNode.");
95 edge->dstOperand())) {
107 if (discardDag)
break;
113 retDags.push_back(&currDag);
References __func__, assert, ImmInfo::count(), countUnknownOperations(), Operation::dag(), Operation::dagCount(), Operation::dagError(), BoostGraph< GraphNode, GraphEdge >::headNode(), Operation::name(), BoostGraph< GraphNode, GraphEdge >::node(), BoostGraph< GraphNode, GraphEdge >::nodeCount(), OperationPool::operation(), BoostGraph< GraphNode, GraphEdge >::outEdges(), OperationNode::referencedOperation(), and Conversion::toString().
Referenced by TDGen::writeInstrInfo().