mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-24 13:18:17 +00:00
Commit 44487 broke bootstrap of llvm-gcc-4.2. It is
not yet clear why, but in the meantime work around the problem by making less use of readnone/readonly info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44626 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -116,13 +116,17 @@ AliasAnalysis::getModRefInfo(StoreInst *S, Value *P, unsigned Size) {
|
||||
AliasAnalysis::ModRefBehavior
|
||||
AliasAnalysis::getModRefBehavior(CallSite CS,
|
||||
std::vector<PointerAccessInfo> *Info) {
|
||||
if (CS.doesNotAccessMemory())
|
||||
if (CS.doesNotAccessMemory() &&
|
||||
// FIXME: workaround gcc bootstrap breakage
|
||||
CS.getCalledFunction() && CS.getCalledFunction()->isDeclaration())
|
||||
// Can't do better than this.
|
||||
return DoesNotAccessMemory;
|
||||
ModRefBehavior MRB = UnknownModRefBehavior;
|
||||
if (Function *F = CS.getCalledFunction())
|
||||
MRB = getModRefBehavior(F, CS, Info);
|
||||
if (MRB != DoesNotAccessMemory && CS.onlyReadsMemory())
|
||||
if (MRB != DoesNotAccessMemory && CS.onlyReadsMemory() &&
|
||||
// FIXME: workaround gcc bootstrap breakage
|
||||
CS.getCalledFunction() && CS.getCalledFunction()->isDeclaration())
|
||||
return OnlyReadsMemory;
|
||||
return MRB;
|
||||
}
|
||||
@@ -130,11 +134,15 @@ AliasAnalysis::getModRefBehavior(CallSite CS,
|
||||
AliasAnalysis::ModRefBehavior
|
||||
AliasAnalysis::getModRefBehavior(Function *F,
|
||||
std::vector<PointerAccessInfo> *Info) {
|
||||
if (F->doesNotAccessMemory())
|
||||
if (F->doesNotAccessMemory() &&
|
||||
// FIXME: workaround gcc bootstrap breakage
|
||||
F->isDeclaration())
|
||||
// Can't do better than this.
|
||||
return DoesNotAccessMemory;
|
||||
ModRefBehavior MRB = getModRefBehavior(F, CallSite(), Info);
|
||||
if (MRB != DoesNotAccessMemory && F->onlyReadsMemory())
|
||||
if (MRB != DoesNotAccessMemory && F->onlyReadsMemory() &&
|
||||
// FIXME: workaround gcc bootstrap breakage
|
||||
F->isDeclaration())
|
||||
return OnlyReadsMemory;
|
||||
return MRB;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user