diff options
| author | Nick Lewycky <nicholas@mxc.ca> | 2011-11-21 19:42:56 +0000 |
|---|---|---|
| committer | Nick Lewycky <nicholas@mxc.ca> | 2011-11-21 19:42:56 +0000 |
| commit | 063ae5897c7a46481ecf43cc7e94328719e9f26c (patch) | |
| tree | a7ce434bab2362a81a7c2afddc8e6b3b5c23ebc7 /llvm/lib | |
| parent | 9a56882e53cbe26e201d942cd7d1380879b3af86 (diff) | |
| download | bcm5719-llvm-063ae5897c7a46481ecf43cc7e94328719e9f26c.tar.gz bcm5719-llvm-063ae5897c7a46481ecf43cc7e94328719e9f26c.zip | |
Fix crasher in GVN due to my recent capture tracking changes.
llvm-svn: 145047
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Analysis/CaptureTracking.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Analysis/MemoryDependenceAnalysis.cpp | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/CaptureTracking.cpp b/llvm/lib/Analysis/CaptureTracking.cpp index 03bd70dfa34..9a7992e38d5 100644 --- a/llvm/lib/Analysis/CaptureTracking.cpp +++ b/llvm/lib/Analysis/CaptureTracking.cpp @@ -53,6 +53,9 @@ namespace { /// counts as capturing it or not. bool llvm::PointerMayBeCaptured(const Value *V, bool ReturnCaptures, bool StoreCaptures) { + assert(!isa<GlobalValue>(V) && + "It doesn't make sense to ask whether a global is captured."); + // TODO: If StoreCaptures is not true, we could do Fancy analysis // to determine whether this store is not actually an escape point. // In that case, BasicAliasAnalysis should be updated as well to diff --git a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp index 128c7f93a4b..704e27b5ce6 100644 --- a/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp +++ b/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp @@ -375,7 +375,7 @@ MemoryDependenceAnalysis::getModRefInfo(const Instruction *Inst, // with a smarter AA in place, this test is just wasting compile time. if (!DT) return AliasAnalysis::ModRef; const Value *Object = GetUnderlyingObject(MemLoc.Ptr, TD); - if (!isIdentifiedObject(Object) || isa<GlobalVariable>(Object)) + if (!isIdentifiedObject(Object) || isa<GlobalValue>(Object)) return AliasAnalysis::ModRef; ImmutableCallSite CS(Inst); if (!CS.getInstruction()) return AliasAnalysis::ModRef; |

