diff options
| author | Stephen Hines <srhines@google.com> | 2013-03-18 17:36:31 -0700 |
|---|---|---|
| committer | Stephen Hines <srhines@google.com> | 2013-03-18 17:36:31 -0700 |
| commit | 2d4629c5d7dcc6582fa7b85a517744f1a3654eba (patch) | |
| tree | 90c0395880593bf195fb818c2af1139cb7e846df /lib/IR/Value.cpp | |
| parent | cd4c0bff77a9b5617896982e99dc80f469e26e4f (diff) | |
| parent | 242cec5be3b3a715de0535d1a074bb4dff94772f (diff) | |
| download | external_llvm-2d4629c5d7dcc6582fa7b85a517744f1a3654eba.zip external_llvm-2d4629c5d7dcc6582fa7b85a517744f1a3654eba.tar.gz external_llvm-2d4629c5d7dcc6582fa7b85a517744f1a3654eba.tar.bz2 | |
Merge branch 'upstream' into merge_2013_03_18
Diffstat (limited to 'lib/IR/Value.cpp')
| -rw-r--r-- | lib/IR/Value.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/IR/Value.cpp b/lib/IR/Value.cpp index 5bdce2b..adc702e 100644 --- a/lib/IR/Value.cpp +++ b/lib/IR/Value.cpp @@ -195,6 +195,9 @@ void Value::setName(const Twine &NewName) { if (getSymTab(this, ST)) return; // Cannot set a name on this value (e.g. constant). + if (Function *F = dyn_cast<Function>(this)) + getContext().pImpl->IntrinsicIDCache.erase(F); + if (!ST) { // No symbol table to update? Just do the change. if (NameRef.empty()) { // Free the name for this value. @@ -307,7 +310,7 @@ void Value::replaceAllUsesWith(Value *New) { // Notify all ValueHandles (if present) that this value is going away. if (HasValueHandle) ValueHandleBase::ValueIsRAUWd(this, New); - + while (!use_empty()) { Use &U = *UseList; // Must handle Constants specially, we cannot call replaceUsesOfWith on a @@ -318,10 +321,10 @@ void Value::replaceAllUsesWith(Value *New) { continue; } } - + U.set(New); } - + if (BasicBlock *BB = dyn_cast<BasicBlock>(this)) BB->replaceSuccessorsPhiUsesWith(cast<BasicBlock>(New)); } |
