diff options
author | Robert Lytton <robert@xmos.com> | 2014-01-06 14:20:32 +0000 |
---|---|---|
committer | Robert Lytton <robert@xmos.com> | 2014-01-06 14:20:32 +0000 |
commit | bc4d976152cad4e40640f7ad49e9026e21fd3943 (patch) | |
tree | 23c7edc51667ee4083ce381ee1a2b0e8c37f2ffc /llvm/test/CodeGen/XCore/codemodel.ll | |
parent | a3e6e2b2866f7a3cbc8ed37c955ccfe625bacc22 (diff) | |
download | bcm5719-llvm-bc4d976152cad4e40640f7ad49e9026e21fd3943.tar.gz bcm5719-llvm-bc4d976152cad4e40640f7ad49e9026e21fd3943.zip |
XCore target: fix handling of unsized global arrays in large code model
llvm-svn: 198609
Diffstat (limited to 'llvm/test/CodeGen/XCore/codemodel.ll')
-rw-r--r-- | llvm/test/CodeGen/XCore/codemodel.ll | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/XCore/codemodel.ll b/llvm/test/CodeGen/XCore/codemodel.ll index 31fbbca250c..cc532ea7def 100644 --- a/llvm/test/CodeGen/XCore/codemodel.ll +++ b/llvm/test/CodeGen/XCore/codemodel.ll @@ -35,6 +35,7 @@ entry: ret [50000 x i32]* %Addr } + ; CHECK: .section .cp.rodata.cst4,"aMc",@progbits,4 ; CHECK: .long 65536 ; CHECK: .text @@ -115,6 +116,46 @@ entry: ret i32 %16 } + +; CHECK-LABEL: UnknownSize: +; CHECK: ldw r0, dp[NoSize+40] +; CHECK-NEXT: retsp 0 +; +; LARGE: .section .cp.rodata,"ac",@progbits +; LARGE: .LCPI{{[0-9_]*}} +; LARGE-NEXT: .long NoSize +; LARGE-NEXT: .text +; LARGE-LABEL: UnknownSize: +; LARGE: ldw r0, cp[.LCPI{{[0-9_]*}}] +; LARGE-NEXT: ldw r0, r0[0] +; LARGE-NEXT: retsp 0 +@NoSize = external global [0 x i32] +define i32 @UnknownSize() nounwind { +entry: + %0 = load i32* getelementptr inbounds ([0 x i32]* @NoSize, i32 0, i32 10) + ret i32 %0 +} + + +; CHECK-LABEL: UnknownStruct: +; CHECK: ldaw r0, dp[Unknown] +; CHECK-NEXT: retsp 0 +; +; LARGE: .section .cp.rodata,"ac",@progbits +; LARGE: .LCPI{{[0-9_]*}} +; LARGE-NEXT: .long Unknown +; LARGE-NEXT: .text +; LARGE-LABEL: UnknownStruct: +; LARGE: ldw r0, cp[.LCPI{{[0-9_]*}}] +; LARGE-NEXT: retsp 0 +%Struct = type opaque +@Unknown = external global %Struct +define %Struct* @UnknownStruct() nounwind { +entry: + ret %Struct* @Unknown +} + + ; CHECK: .section .dp.bss,"awd",@nobits ; CHECK-LABEL: l: ; CHECK: .space 400 |