Three kinds of dependencies in ISel DAG.
- Execution Dependency, represented by
Chain
,Blue
dash line in DAG view, means the targeted Operation (SDNode) should executed before the targeting one, even no data dependency between them. - Data Dependency, represented by
Operands
of a SDNode,Dark
solid line in DAG view, means the result of targeted Operation is operand of the targeting Operation. - Binding Dependency, represented by
Glue
,Red
solid line in DAG view, means targeted and targeting operations should glue together as one schedule unit.
By the way, Operands of an operation can be in order.
- Chain.
- Results of other Operations, with types.
- Glue.
And Results of an operation can be in order.
- Results with Types.
- Chain.
- Glue.
Example showed in following image, focusing on CopyFromReg
SDNode.