mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-23 04:28:30 +00:00
make AliasAnalysis know that VAArg writes memory. This is extremely conservative and should be fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22267 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e3e1739b7d
commit
14f1703ae3
@ -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
Block a user