forked from OSchip/llvm-project
make AliasAnalysis know that VAArg writes memory. This is extremely conservative and should be fixed
llvm-svn: 22267
This commit is contained in:
parent
805d84a077
commit
f42d7b54c0
|
@ -37,6 +37,7 @@ namespace llvm {
|
|||
|
||||
class LoadInst;
|
||||
class StoreInst;
|
||||
class VAArgInst;
|
||||
class TargetData;
|
||||
|
||||
class AliasAnalysis {
|
||||
|
@ -254,8 +255,12 @@ public:
|
|||
ModRefResult getModRefInfo(InvokeInst *I, Value *P, unsigned Size) {
|
||||
return getModRefInfo(CallSite(I), P, Size);
|
||||
}
|
||||
ModRefResult getModRefInfo(VAArgInst* I, Value* P, unsigned Size) {
|
||||
return AliasAnalysis::Mod;
|
||||
}
|
||||
ModRefResult getModRefInfo(Instruction *I, Value *P, unsigned Size) {
|
||||
switch (I->getOpcode()) {
|
||||
case Instruction::VAArg: return getModRefInfo((VAArgInst*)I, P, Size);
|
||||
case Instruction::Load: return getModRefInfo((LoadInst*)I, P, Size);
|
||||
case Instruction::Store: return getModRefInfo((StoreInst*)I, P, Size);
|
||||
case Instruction::Call: return getModRefInfo((CallInst*)I, P, Size);
|
||||
|
|
Loading…
Reference in New Issue