Fully flow and context sensitive points-to analysis in GCC 4.6.0

Uday P. Khedker uday@cse.iitb.ac.in
Fri Oct 12 09:56:00 GMT 2012


Excellent! Thanks.

Uday.

Richard Biener wrote, On Friday 12 October 2012 03:20 PM:
> On Fri, Oct 12, 2012 at 11:46 AM, Uday P. Khedker <uday@cse.iitb.ac.in> wrote:
>>
>>
>> Richard Biener wrote, On Friday 12 October 2012 02:51 PM:
>>
>>>
>>> we _always_ see
>>>
>>>     ssa_name_1 = a;
>>>     use (ssa_name_1);
>>>
>>> so you have a place to associate your flow-sensitive and context-sensitive
>>> points-to-info with (the SSA name).  My point is that for _using_ the
>>> points-to info flow-sensitivity provided by SSA form is enough.  For
>>> computing
>>> it you of course need to flow-sensitively process assignments to 'a'.
>>
>>
>> This is VERY interesting! I had not thought about the difference between
>> computing
>> and using values. Now that you point it out, I think all we need to do is to
>> map
>> flow-sensitively computed values to ssa names.
>>
>> What about variables that do not have ssa names? Or are you saying that all
>> such
>> variables would be copied into an artificial variables that have ssa names?
>> I seem
>> to observe this in the dumps but I don't know if it holds in general.
>
> Yes, that's what I say.  Any pointer that is dereferenced is first copied to
> an SSA name.  Basically everything residing in memory first has to be
> loaded to an SSA name before it can be dereferenced.  That load is explicit
> in the IL so you should already compute points-to sets for the SSA name
> destination of the load.
>
> Richard.
>
>
>> Uday.



More information about the Gcc mailing list