diff options
| author | Alexander Potapenko <glider@google.com> | 2014-12-04 14:22:27 +0000 |
|---|---|---|
| committer | Alexander Potapenko <glider@google.com> | 2014-12-04 14:22:27 +0000 |
| commit | 76770e49305c64d67e2e22830a34e6b6d8fa84e6 (patch) | |
| tree | c77b34b86537a7d3d1beab478f5d82b236dea533 /llvm/lib/Analysis/InstructionSimplify.cpp | |
| parent | 5403da456968e9c45c14bf552ba34bdd8c4b0f76 (diff) | |
| download | bcm5719-llvm-76770e49305c64d67e2e22830a34e6b6d8fa84e6.tar.gz bcm5719-llvm-76770e49305c64d67e2e22830a34e6b6d8fa84e6.zip | |
Revert r223347 which has caused crashes on bootstrap bots.
llvm-svn: 223364
Diffstat (limited to 'llvm/lib/Analysis/InstructionSimplify.cpp')
| -rw-r--r-- | llvm/lib/Analysis/InstructionSimplify.cpp | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp index 51a295aa5b4..85ebf694e69 100644 --- a/llvm/lib/Analysis/InstructionSimplify.cpp +++ b/llvm/lib/Analysis/InstructionSimplify.cpp @@ -2026,22 +2026,12 @@ static Constant *computePointerICmp(const DataLayout *DL, }; // Is the set of underlying objects all things which must be disjoint from - // noalias calls. For allocas, we consider only static ones (dynamic - // allocas might be transformed into calls to malloc not simultaneously - // live with the compared-to allocation). For globals, we exclude symbols - // that might be resolve lazily to symbols in another dynamically-loaded - // library (and, thus, could be malloc'ed by the implementation). + // noalias calls. auto IsAllocDisjoint = [](SmallVectorImpl<Value *> &Objects) { return std::all_of(Objects.begin(), Objects.end(), [](Value *V){ - if (const AllocaInst *AI = dyn_cast<AllocaInst>(V)) - return AI->isStaticAlloca(); - if (const GlobalValue *GV = dyn_cast<GlobalValue>(V)) - return (GV->hasLocalLinkage() || - GV->hasHiddenVisibility() || - GV->hasProtectedVisibility() || - GV->hasUnnamedAddr()) && - !GV->isThreadLocal(); + if (isa<AllocaInst>(V) || isa<GlobalValue>(V)) + return true; if (const Argument *A = dyn_cast<Argument>(V)) return A->hasByValAttr(); return false; |

