diff options
| author | Tim Northover <Tim.Northover@arm.com> | 2013-02-28 14:36:31 +0000 |
|---|---|---|
| committer | Tim Northover <Tim.Northover@arm.com> | 2013-02-28 14:36:31 +0000 |
| commit | c3c5c0971dfeb85fc4b3862b264062230071dbcb (patch) | |
| tree | dd26dda97483d547be5d21e3237db33d5fde49b3 /llvm/test/CodeGen/AArch64/extern-weak.ll | |
| parent | b9d4fd210b87b3c350900bf940ac238324d0a85e (diff) | |
| download | bcm5719-llvm-c3c5c0971dfeb85fc4b3862b264062230071dbcb.tar.gz bcm5719-llvm-c3c5c0971dfeb85fc4b3862b264062230071dbcb.zip | |
AArch64: be more careful resorting to inefficient addressing for weak vars.
If an otherwise weak var is actually defined in this unit, it can't be
undefined at runtime so we can use normal global variable sequences (ADRP/ADD)
to access it.
llvm-svn: 176259
Diffstat (limited to 'llvm/test/CodeGen/AArch64/extern-weak.ll')
| -rw-r--r-- | llvm/test/CodeGen/AArch64/extern-weak.ll | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/extern-weak.ll b/llvm/test/CodeGen/AArch64/extern-weak.ll index f358243bc6f..3d3d8676818 100644 --- a/llvm/test/CodeGen/AArch64/extern-weak.ll +++ b/llvm/test/CodeGen/AArch64/extern-weak.ll @@ -24,4 +24,12 @@ define i32* @bar() { ; CHECK: ldr [[BASE:x[0-9]+]], [{{x[0-9]+}}, #:lo12:.LCPI1_0] ; CHECK: add x0, [[BASE]], #20 ret i32* %addr +} + +@defined_weak_var = internal unnamed_addr global i32 0 + +define i32* @wibble() { + ret i32* @defined_weak_var +; CHECK: adrp [[BASE:x[0-9]+]], defined_weak_var +; CHECK: add x0, [[BASE]], #:lo12:defined_weak_var }
\ No newline at end of file |

