+ unsigned AliasSum = NoAlias + MayAlias + MustAlias;
+ cerr << "===== Alias Analysis Evaluator Report =====\n";
+ if (AliasSum == 0) {
+ cerr << " Alias Analysis Evaluator Summary: No pointers!\n";
+ } else {
+ cerr << " " << AliasSum << " Total Alias Queries Performed\n";
+ cerr << " " << NoAlias << " no alias responses ";
+ PrintPercent(NoAlias, AliasSum);
+ cerr << " " << MayAlias << " may alias responses ";
+ PrintPercent(MayAlias, AliasSum);
+ cerr << " " << MustAlias << " must alias responses ";
+ PrintPercent(MustAlias, AliasSum);
+ cerr << " Alias Analysis Evaluator Pointer Alias Summary: "
+ << NoAlias*100/AliasSum << "%/" << MayAlias*100/AliasSum << "%/"
+ << MustAlias*100/AliasSum << "%\n";
+ }
+
+ // Display the summary for mod/ref analysis
+ unsigned ModRefSum = NoModRef + Mod + Ref + ModRef;
+ if (ModRefSum == 0) {
+ cerr << " Alias Analysis Mod/Ref Evaluator Summary: no mod/ref!\n";
+ } else {
+ cerr << " " << ModRefSum << " Total ModRef Queries Performed\n";
+ cerr << " " << NoModRef << " no mod/ref responses ";
+ PrintPercent(NoModRef, ModRefSum);
+ cerr << " " << Mod << " mod responses ";
+ PrintPercent(Mod, ModRefSum);
+ cerr << " " << Ref << " ref responses ";
+ PrintPercent(Ref, ModRefSum);
+ cerr << " " << ModRef << " mod & ref responses ";
+ PrintPercent(ModRef, ModRefSum);
+ cerr << " Alias Analysis Evaluator Mod/Ref Summary: "
+ << NoModRef*100/ModRefSum << "%/" << Mod*100/ModRefSum << "%/"
+ << Ref*100/ModRefSum << "%/" << ModRef*100/ModRefSum << "%\n";