do we need to analyse methods more than once?
Once a method is analysed, we could store the effect of each instruction on aliasing without going into the details. e.g.
void test (T v){
a = v.r();
}
The first analysis will check r() in 'v'. If we analyse 'r()' in T and descendants (and union), we do not need to analyse again.
Store the effects.
Maybe, we could store the info T and descendants, in case we know upfront the type of 'vv' in test(vv)
do we need to analyse methods more than once? Once a method is analysed, we could store the effect of each instruction on aliasing without going into the details. e.g. void test (T v){ a = v.r(); } The first analysis will check r() in 'v'. If we analyse 'r()' in T and descendants (and union), we do not need to analyse again. Store the effects.
Maybe, we could store the info T and descendants, in case we know upfront the type of 'vv' in test(vv)