[LLVMdev] Code analysis

Vikram S. Adve vadve at uiuc.edu
Tue Aug 28 02:34:08 PDT 2007


Kamal,

There isn't an existing pass that does what you want but, if you  
wanted to write such analyses *and* use them for other compiler  
tasks, I think it would be easier to do so in in LLVM than in may  
source-to-source infrastructures.

Assuming you are interested in a *somewhat language-specific*  
analysis (e.g., one that applies to Fortran or to C/C++/Obj-C), you  
would need to essentially write a pass or passes to do the following:

(a) Identify the variables, functions, etc., at the LLVM level,  
corresponding to those entities you are interested in at the source- 
level.  I think this is the primary step that would be language- 
specific.

(b) Perform the analyses you want (such as the one below) using the  
existing LLVM analysis passes and utilities, e.g., the scalar  
evolution pass and loop info, plus some custom analysis, to do the  
one below.  This part can be quite language-independent, at least to  
the extent that the queries are language-independent.

(c) Try to build more complex queries from simpler ones so that you  
can maximize reuse of the analyses.  E.g., for the one below, you  
could do it using two simpler queries: one that checks whether the i  
or j loops is innermost, and another one that checks how the A[][]  
index expression is related to the various loop bounds.

I'm sure others on this list have other suggestions (and perhaps some  
better ones).

--Vikram
http://www.cs.uiuc.edu/~vadve
http://llvm.org


On Aug 28, 2007, at 1:04 AM, kamals at iitk.ac.in wrote:

> Hi All,
>
> I think , I was unclear in my last post.
>
> I am looking for source code analysis of a program, something  
> similar to
> what SUIF does.
>
> Consider a simple example of Matrix addition
> A[i][j]+=B[i][j];
>
> I want to know how matrix A is accessed, like whether it is A[i][j] in
> this case or A[j][i].
>
> Is there anyway in llvm to write a pass to identify this? Can  
> someone give
> pointers to it?
>
> Regards,
> Kamal
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list