Tweak to work with new AA implementation

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5632 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-02-26 19:25:04 +00:00
parent 1c56b730a6
commit 13b6f22f04

View File

@ -12,23 +12,26 @@
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Pass.h"
class GetElementPtrInst;
struct BasicAliasAnalysis : public ImmutablePass, public AliasAnalysis {
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AliasAnalysis::getAnalysisUsage(AU);
}
virtual void initializePass();
// alias - This is the only method here that does anything interesting...
//
Result alias(const Value *V1, const Value *V2);
/// canCallModify - We are not interprocedural, so we do nothing exciting.
///
Result canCallModify(const CallInst &CI, const Value *Ptr) {
return MayAlias;
}
/// canInvokeModify - We are not interprocedural, so we do nothing exciting.
///
Result canInvokeModify(const InvokeInst &I, const Value *Ptr) {
return MayAlias; // We are not interprocedural
}
AliasResult alias(const Value *V1, unsigned V1Size,
const Value *V2, unsigned V2Size);
private:
// CheckGEPInstructions - Check two GEP instructions of compatible types and
// equal number of arguments. This checks to see if the index expressions
// preclude the pointers from aliasing...
AliasResult CheckGEPInstructions(GetElementPtrInst *GEP1, unsigned G1Size,
GetElementPtrInst *GEP2, unsigned G2Size);
};
#endif