| 808 | static uint64_t only_local = 0, only_nonlocal = 0; |
| 809 | |
| 810 | void Memory::AliasSet::computeAccessStats() const { |
| 811 | auto nlocal = numMayAlias(true); |
| 812 | auto nnonlocal = numMayAlias(false); |
| 813 | |
| 814 | if (nlocal > 0 && nnonlocal == 0) |
| 815 | ++only_local; |
| 816 | else if (nlocal == 0 && nnonlocal > 0) |
| 817 | ++only_nonlocal; |
| 818 | |
| 819 | auto alias = nlocal + nnonlocal; |
| 820 | for (unsigned i = 0; i < alias_buckets_vals.size(); ++i) { |
| 821 | if (alias <= alias_buckets_vals[i]) { |
| 822 | ++alias_buckets_hits[i]; |
| 823 | return; |
| 824 | } |
| 825 | } |
| 826 | ++alias_buckets_hits.back(); |
| 827 | } |
| 828 | |
| 829 | void Memory::AliasSet::printStats(ostream &os) { |
| 830 | double total |