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