[LLVMdev] dependence analyzer for machine code?
andrewl at lenharth.org
Mon Sep 5 10:21:41 CDT 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.
More information about the LLVMdev