summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorZhou Sheng <zhousheng00@gmail.com>2009-03-18 10:13:08 +0000
committerZhou Sheng <zhousheng00@gmail.com>2009-03-18 10:13:08 +0000
commit05bea906c181f7cc22bdfd96194a35337259586a (patch)
treee15e536ad07c5383bc45fc85bec384435d8f4118 /llvm/lib
parenta2aedc69435dd430925e77022cbd26cc51e30982 (diff)
downloadbcm5719-llvm-05bea906c181f7cc22bdfd96194a35337259586a.tar.gz
bcm5719-llvm-05bea906c181f7cc22bdfd96194a35337259586a.zip
Revert my previous change on Local.cpp, instead, fix the bug on scalarrepl.
If the instruction has no users, it is also not only used by debug info and should not be deleted. llvm-svn: 67194
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp2
-rw-r--r--llvm/lib/Transforms/Utils/Local.cpp3
2 files changed, 1 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp b/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp
index 78730b6eb72..358b0981cc8 100644
--- a/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp
+++ b/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp
@@ -1223,7 +1223,7 @@ void SROA::CleanupAllocaUsers(AllocationInst *AI) {
CleanupGEP(GEPI);
else if (Instruction *I = dyn_cast<Instruction>(U)) {
SmallVector<DbgInfoIntrinsic *, 2> DbgInUses;
- if (OnlyUsedByDbgInfoIntrinsics(I, &DbgInUses)) {
+ if (!I->use_empty() && OnlyUsedByDbgInfoIntrinsics(I, &DbgInUses)) {
// Safe to remove debug info uses.
while (!DbgInUses.empty()) {
DbgInfoIntrinsic *DI = DbgInUses.back(); DbgInUses.pop_back();
diff --git a/llvm/lib/Transforms/Utils/Local.cpp b/llvm/lib/Transforms/Utils/Local.cpp
index 468136c9968..4be1b8717d2 100644
--- a/llvm/lib/Transforms/Utils/Local.cpp
+++ b/llvm/lib/Transforms/Utils/Local.cpp
@@ -262,9 +262,6 @@ bool llvm::OnlyUsedByDbgInfoIntrinsics(Instruction *I,
if (DbgInUses)
DbgInUses->clear();
- if (I->use_empty())
- return false;
-
for (Value::use_iterator UI = I->use_begin(), UE = I->use_end(); UI != UE;
++UI) {
if (DbgInfoIntrinsic *DI = dyn_cast<DbgInfoIntrinsic>(*UI)) {
OpenPOWER on IntegriCloud