// *** Build May Happen In Parallel Info ***
MhpTester mhp = null;
if(optionDoMHP && Scene.v().getPointsToAnalysis() instanceof PAG)
{
G.v().out.println("[wjtp.tn] *** Build May-Happen-in-Parallel Info *** " + (new Date()));
mhp = new SynchObliviousMhpAnalysis();
if(optionPrintMhpSummary)
{
mhp.printMhpSummary();
}
}
// *** Find Thread-Local Objects ***
ThreadLocalObjectsAnalysis tlo = null;
if(optionDoTLO)
{
G.v().out.println("[wjtp.tn] *** Find Thread-Local Objects *** " + (new Date()));
if(mhp != null)
tlo = new ThreadLocalObjectsAnalysis(mhp);
else
tlo = new ThreadLocalObjectsAnalysis(new SynchObliviousMhpAnalysis());
if(!optionOnFlyTLO)
{
tlo.precompute();
G.v().out.println("[wjtp.tn] TLO totals (#analyzed/#encountered): " + SmartMethodInfoFlowAnalysis.counter + "/" + ClassInfoFlowAnalysis.methodCount);
}