#include "llvm/Analysis/ScalarEvolutionAliasAnalysis.h"
#include "llvm/Analysis/ScalarEvolution.h"
#include "llvm/Analysis/ScalarEvolutionExpressions.h"
#include "llvm/InitializePasses.h"
usingnamespacellvm;
static bool canComputePointerDiff(ScalarEvolution &SE,
const SCEV *A, const SCEV *B) { … }
AliasResult SCEVAAResult::alias(const MemoryLocation &LocA,
const MemoryLocation &LocB, AAQueryInfo &AAQI,
const Instruction *) { … }
Value *SCEVAAResult::GetBaseValue(const SCEV *S) { … }
bool SCEVAAResult::invalidate(Function &Fn, const PreservedAnalyses &PA,
FunctionAnalysisManager::Invalidator &Inv) { … }
AnalysisKey SCEVAA::Key;
SCEVAAResult SCEVAA::run(Function &F, FunctionAnalysisManager &AM) { … }
char SCEVAAWrapperPass::ID = …;
INITIALIZE_PASS_BEGIN(SCEVAAWrapperPass, "scev-aa",
"ScalarEvolution-based Alias Analysis", false, true)
INITIALIZE_PASS_DEPENDENCY(ScalarEvolutionWrapperPass)
INITIALIZE_PASS_END(SCEVAAWrapperPass, "scev-aa",
"ScalarEvolution-based Alias Analysis", false, true)
FunctionPass *llvm::createSCEVAAWrapperPass() { … }
SCEVAAWrapperPass::SCEVAAWrapperPass() : … { … }
bool SCEVAAWrapperPass::runOnFunction(Function &F) { … }
void SCEVAAWrapperPass::getAnalysisUsage(AnalysisUsage &AU) const { … }