[LLVMdev] dependence analyzer for machine code?

Vikram S. Adve vadve at cs.uiuc.edu
Mon Sep 5 08:48:53 PDT 2005



On Sep 5, 2005, at 10:21 AM, Andrew Lenharth wrote:

> 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

I believe Tzu-Chien is referring to array (and pointer) dependence  
analysis.  There is a simple dependence analyzer written by Tanya  
Lattner in the SparcV9 back-end , which (I believe) is actually Sparc- 
independent and perhaps could be factored out.

--Vikram Adve

----------------------------------------------------------------------
  VIKRAM S. ADVE
  Associate Professor, Computer Science       E-MAIL: vadve at cs.uiuc.edu
  Siebel Center for Computer Science           PHONE:    (217) 244-2016
  Univ. of Illinois at Urbana-Champaign          FAX:    (217) 265-6582
  201 N. Goodwin Ave.                     http://www.cs.uiuc.edu/~vadve
  Urbana IL 61801-2302.                        http://llvm.cs.uiuc.edu/
----------------------------------------------------------------------





More information about the llvm-dev mailing list