mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-13 14:47:00 +00:00
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:
parent
1c56b730a6
commit
13b6f22f04
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user