mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-24 23:28:41 +00:00
MemoryDependenceAnalysis attempts to find the first memory dependency for function calls.
Currently, if GetLocation reports that it did not find a valid pointer (this is the case for volatile load/stores), we ignore the result. This patch adds code to handle the cases where we did not obtain a valid pointer. rdar://11872864 PR12899 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161802 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -227,13 +227,18 @@ getCallSiteDependencyFrom(CallSite CS, bool isReadOnlyCall,
|
||||
|
||||
// Otherwise if the two calls don't interact (e.g. InstCS is readnone)
|
||||
// keep scanning.
|
||||
break;
|
||||
continue;
|
||||
default:
|
||||
return MemDepResult::getClobber(Inst);
|
||||
}
|
||||
}
|
||||
|
||||
// If we could not obtain a pointer for the instruction and the instruction
|
||||
// touches memory then assume that this is a dependency.
|
||||
if (MR != AliasAnalysis::NoModRef)
|
||||
return MemDepResult::getClobber(Inst);
|
||||
}
|
||||
|
||||
|
||||
// No dependence found. If this is the entry block of the function, it is
|
||||
// unknown, otherwise it is non-local.
|
||||
if (BB != &BB->getParent()->getEntryBlock())
|
||||
|
Reference in New Issue
Block a user