diff options
| author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-12 16:45:47 +0000 |
|---|---|---|
| committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-06-12 16:45:47 +0000 |
| commit | 8d30480344429f31280af6c0bb05efac8524ca55 (patch) | |
| tree | 9540ce4f5ba26bcdb31e711e36f7e3b19a3f9a9f | |
| parent | 230b4513897ccf8fc3cfe6dbc44d9eeaf15bebb5 (diff) | |
| download | bcm5719-llvm-8d30480344429f31280af6c0bb05efac8524ca55.tar.gz bcm5719-llvm-8d30480344429f31280af6c0bb05efac8524ca55.zip | |
Always remove an alias when we rename the target.
Should fix the dragonegg build bots.
llvm-svn: 183845
| -rw-r--r-- | llvm/lib/Transforms/IPO/GlobalOpt.cpp | 4 | ||||
| -rw-r--r-- | llvm/test/Transforms/GlobalOpt/alias-resolve.ll | 13 |
2 files changed, 13 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/IPO/GlobalOpt.cpp b/llvm/lib/Transforms/IPO/GlobalOpt.cpp index 72ba250f470..a4de71b3ae6 100644 --- a/llvm/lib/Transforms/IPO/GlobalOpt.cpp +++ b/llvm/lib/Transforms/IPO/GlobalOpt.cpp @@ -3238,9 +3238,7 @@ bool GlobalOpt::OptimizeGlobalAliases(Module &M) { if (Used.compilerUsedErase(J)) Used.compilerUsedInsert(Target); - } - - if (mayHaveOtherReferences(*J, Used)) + } else if (mayHaveOtherReferences(*J, Used)) continue; // Delete the alias. diff --git a/llvm/test/Transforms/GlobalOpt/alias-resolve.ll b/llvm/test/Transforms/GlobalOpt/alias-resolve.ll index a42dd280da8..32f4bf8ebe2 100644 --- a/llvm/test/Transforms/GlobalOpt/alias-resolve.ll +++ b/llvm/test/Transforms/GlobalOpt/alias-resolve.ll @@ -1,4 +1,7 @@ -; RUN: opt < %s -globalopt -S | FileCheck %s +; We use a temporary file so that the test fails when opt crashes. + +; RUN: opt < %s -globalopt -S > %t +; RUN: FileCheck %s < %t @foo1 = alias void ()* @foo2 ; CHECK: @foo1 = alias void ()* @foo2 @@ -25,3 +28,11 @@ entry: ret void } + +@foo3 = alias void ()* @bar3 +; CHECK-NOT: bar3 + +define internal void @bar3() { + ret void +} +;CHECK: define void @foo3 |

