[LLVMdev] Summer of Code

douglas at dcc.ufmg.br douglas at dcc.ufmg.br
Mon Mar 22 05:27:26 PDT 2010


Dear John and Nuno,

>    well, the analysis that I am working right now is
> intra-procedural. It should be more general than SCEV, as it finds
ranges outside the loops. Indeed, it is very similar to Stephenson's
original bitwidth analysis (see Bitwidth Analysis with Application to
Silicon Compilation), but it is only
> forward, it does not have the backward pass. Stephenson would assume,
> for instance, that when we read an array position, we are inside the
> boundaries of the array, and would use this to improve the precision
> of his analysis. Of course, he assumes that the program is correct,
> and you only read valid array positions. Zhendong does not make this
> assumption.
>    The analysis is flow sensitive, because it relies on the SSI
> framework that Andre Tavares has implemented onto LLVM. And it is
sparse, in the sense that it maps variables, e.g Values, to ranges. So,
like Nuno had already suggested, the interface would give the client a
map Value* -> Range. That is the good thing about using the SSI
framework: we do not have to worry about program points, and can encode
information directly into variables, as we discover them from
assignments and the result of conditionals.

Best,




More information about the llvm-dev mailing list