[Soot-list] What kind of analysis is appropriate?

Marc-André Laverdière-Papineau marc-andre.laverdiere-papineau at polymtl.ca
Mon Apr 22 10:46:29 EDT 2013


Hello,

I wasn't clear I guess.

a = secret()
b = a
c = b
print(c)

That can be solved with a plain and simple alias analysis. C aliases a, 
things are simple.

Flow analysis is more useful when you have things like this:

a = secret
b = propagatingFn(a)
c = anotherPropagatingFn(b)
print(c)

Back to your question, you are asking something important. My 
understanding of alias analysis is that the alias information takes this 
information in consideration.

Suppose we have
1 a = secret()
2 a = "harcoded constant"
3 b = a
4 c = b
5 print(c)

The alias information for c at line 5 should be 2,3,4.

Compiler people: please tell me if I'm wrong on this. I don't really 
touch that part of compiler theory often ;)

Marc-André Laverdière-Papineau
Doctorant - PhD Candidate

On 13-04-20 07:30 AM, Zeinab Lashkaripour wrote:
>
> Thanks Marc-André,
>
>  > It sounds to me like you are interested in doing an intraprocedural
> alias analysis. And intersect the results with the loop conditions.
>
> Yes, your right but it might change to interprocedural (for now its intra).
>
>> ...then an information flow analysis would make sense.
>
> As I understand, you mean that I need a flow-based alias analysis?
>
> I should mention that I am looking for special strings that use the
> parameter of the function that they are inside (these strings can be
> identified easily).  Therefore the things I need after identifying these
> strings are: loop conditions and local variables that have used the
> parameter. As you said alias analysis is suitable but,does reaching
> definition (UD chain) need to be used beside alias analysis or does
> flow-based alias analysis do the work by it self?
>
> Thanks in advance,
> Zeinab
>
> ------------------------------------------------------------------------
> *From:* Marc-André Laverdière-Papineau
> <marc-andre.laverdiere-papineau at polymtl.ca>
> *To:* soot-list at sable.mcgill.ca
> *Sent:* Saturday, April 20, 2013 6:11 AM
> *Subject:* Re: [Soot-list] What kind of analysis is appropriate?
>
> Hello,
>
> It sounds to me like you are interested in doing an intraprocedural
> alias analysis. And intersect the results with the loop conditions.
>
> Of course, if you want to handle cases where there could be operations
> other than assignment of the variables, then an information flow
> analysis would make sense.
>
> Soot provides classes that computes de CFG for you (ExceptionalUnitGraph
> IIRC), and there is a built-in LocalMustAliasAnalysis that should do the
> trick. Note that I haven't used those classes personally, so I could be
> wrong.
>
> Marc-André Laverdière-Papineau
> Doctorant - PhD Candidate
>
> On 13-04-19 01:13 PM, Zeinab Lashkaripour wrote:
>  > Hi everyone,
>  >
>  > I have done part of my analysis with Soot and for the rest of it I'm
>  > looking for the following information that I don't know what kind of
>  > analysis is suitable?
>  >
>  > I have some functions that they have inputs. In these functions these
>  > inputs can be used in local variables of the function, inside loop
>  > conditions.
>  > I want to identify those local variables that have used these inputs and
>  > also process loop conditions to see if they are related to the input or
>  > not. (relation with input in condition and local variable can be direct
>  > or indirect)
>  >
>  > Regards,
>  > Zeinab
>  >
>  >
>  > _______________________________________________
>  > Soot-list mailing list
>  > Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
>  > http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>  >
> _______________________________________________
> Soot-list mailing list
> Soot-list at sable.mcgill.ca <mailto:Soot-list at sable.mcgill.ca>
> http://mailman.cs.mcgill.ca/mailman/listinfo/soot-list
>
>


More information about the Soot-list mailing list