mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-18 03:37:31 +00:00
'graph' is spelled without a 'c'.
Also added Statistic counters for NoAlias and MayAlias. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4972 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
c2799163e2
commit
f4445dfcb7
@ -13,6 +13,11 @@
|
||||
#include "llvm/Module.h"
|
||||
#include "Support/Statistic.h"
|
||||
|
||||
namespace {
|
||||
Statistic<> NumNoAlias ("steens", "Number of 'no alias' replies");
|
||||
Statistic<> NumMayAlias ("steens", "Number of 'may alias' replies");
|
||||
};
|
||||
|
||||
namespace {
|
||||
class Steens : public Pass, public AliasAnalysis {
|
||||
DSGraph *ResultGraph;
|
||||
@ -202,7 +207,7 @@ bool Steens::run(Module &M) {
|
||||
|
||||
// alias - This is the only method here that does anything interesting...
|
||||
AliasAnalysis::Result Steens::alias(const Value *V1, const Value *V2) {
|
||||
assert(ResultGraph && "Result grcaph has not yet been computed!");
|
||||
assert(ResultGraph && "Result graph has not been computed yet!");
|
||||
|
||||
std::map<Value*, DSNodeHandle> &GVM = ResultGraph->getScalarMap();
|
||||
|
||||
@ -214,9 +219,10 @@ AliasAnalysis::Result Steens::alias(const Value *V1, const Value *V2) {
|
||||
DSNodeHandle &V2H = J->second;
|
||||
// If the two pointers point to different data structure graph nodes, they
|
||||
// cannot alias!
|
||||
if (V1H.getNode() != V2H.getNode())
|
||||
if (V1H.getNode() != V2H.getNode()) {
|
||||
++NumNoAlias;
|
||||
return NoAlias;
|
||||
|
||||
}
|
||||
// FIXME: If the two pointers point to the same node, and the offsets are
|
||||
// different, and the LinkIndex vector doesn't alias the section, then the
|
||||
// two pointers do not alias. We need access size information for the two
|
||||
@ -225,6 +231,9 @@ AliasAnalysis::Result Steens::alias(const Value *V1, const Value *V2) {
|
||||
}
|
||||
}
|
||||
|
||||
// Since Steensgaard cannot do any better, count it as a 'may alias'
|
||||
++NumMayAlias;
|
||||
|
||||
// If we cannot determine alias properties based on our graph, fall back on
|
||||
// some other AA implementation.
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user