dependence graphs for vector machines

roger@ac.upc.es
Fri, 16 Apr 1993 17:18:52 GMT

          From comp.compilers

Related articles
dependence graphs for vector machines roger@ac.upc.es (1993-04-16)
| List of all articles for this month |
Newsgroups: comp.compilers
From: roger@ac.upc.es
Keywords: optimize, vector, question
Organization: Compilers Central
Date: Fri, 16 Apr 1993 17:18:52 GMT

We are two PhD students working on instruction scheduling for vector
processors. We would like to test different register allocators and
instruction scheduling algorithms on a set of FORTRAN vectorizable loops.
^^^^^^^^^^^^


In order to do that we need to have the (low-level) dependence graph of each
loop, something like:


              VLD VLD VLD VLD
\ / \ /
\ / \ /
\ / \ /
VADD VADD
\ /
\ /
\ /
\ /
\ /
\ /
VMUL
|
|
VST


Our problem is how to obtain these graphs from the Fortran loops. We are
thininkg on the following solutions:


  1) Compile the loops with a real vectorizing compiler ( the Convex one in
        our case) and get the assembler produced. Eliminate all the scalar code
        from the assembler and keep only the vector part. Write a little program
        that constructs the dependence graph from that ( renaming registers to
        eliminate artificial dependencies ).
        Problems with this approach:
          - Difficult to handle memory aliases (i.e. is VLD 300(a3),r1
          dependent on VLD 500(a3),r2 or not ? )
          - The graph produced is? (terribly?) biased by the compiler used


  2) Given that we are interested in loops, and usually the body of a loop is
        "simple" (mainly expressions and assignment), write a tiny compiler
        that parses the loops and generates the graph.
        Problems with this approach:
          - We won't be able to perform all the usual optimizations that a
          compiler does (cse, strength reduction ...) so we'll probably end up
          with a graph not very representative of real programs


  3) Is there any tool that does what we want ?
  4) Does the latest GNU gcc version (2.3.3?) vectorize for the convex ?
  4) Is there source code for a vectorizing compiler freely available ?
  5) Any other suggestions ?


  Thanks,


Roger Espasa
e-mail: roger@ac.upc.es


Marta Jimenez
e-mail: marta@ac.upc.es
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.