[LLVMdev] dependence analyzer for machine code?

Andrew Lenharth andrewl at lenharth.org
Mon Sep 5 08:21:41 PDT 2005


On Mon, 2005-09-05 at 14:45 +0800, Tzu-Chien Chiu wrote:
> why there is no general dependency analysis for the "machin code"?
> perhaps it's because the instruction scheduling is only implemented
> for sparcv9?

Most backends use the SelectionDAG infastructure to do this kind of
thing.  (Simplifying things a bit) Each basic block is selected to a DAG
based IR.  Then instruction selection is done, which transforms this DAG
to a DAG with machine instructions as nodes.  At this point all
dependencies are explicit as edges in the graph.  The DAG is then
scheduled to a machine basic block.

Hope this helps.  The PowerPC backend is furthest along in being
implemented in this way.

Andrew




More information about the llvm-dev mailing list