summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorManman Ren <manman.ren@gmail.com>2016-03-24 23:21:29 +0000
committerManman Ren <manman.ren@gmail.com>2016-03-24 23:21:29 +0000
commit9dd8c146746a0435115a461bd19d9aede965800c (patch)
tree3ce1b0b47204392a70e4f08855cd97778cdb824f /llvm/test
parentfff7a3d0efde3f6f3d33c7b5e83d381101eea044 (diff)
downloadbcm5719-llvm-9dd8c146746a0435115a461bd19d9aede965800c.tar.gz
bcm5719-llvm-9dd8c146746a0435115a461bd19d9aede965800c.zip
CXX TLS: collect return blocks after SelectAllBasicBlocks.
It is incorrect to get the corresponding MBB for a ReturnInst before SelectAllBasicBlocks since SelectAllBasicBlocks can change the correspondence between a ReturnInst and the MBB it is in. PR27062 llvm-svn: 264358
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/X86/cxx_tlscc64.ll16
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/cxx_tlscc64.ll b/llvm/test/CodeGen/X86/cxx_tlscc64.ll
index c9be4a269c0..1915f221c50 100644
--- a/llvm/test/CodeGen/X86/cxx_tlscc64.ll
+++ b/llvm/test/CodeGen/X86/cxx_tlscc64.ll
@@ -151,5 +151,21 @@ entry:
ret void
}
+@ssp_var = internal thread_local global i8 0, align 1
+
+; CHECK-LABEL: test_ssp
+; CHECK-NOT: pushq %r11
+; CHECK-NOT: pushq %r10
+; CHECK-NOT: pushq %r9
+; CHECK-NOT: pushq %r8
+; CHECK-NOT: pushq %rsi
+; CHECK-NOT: pushq %rdx
+; CHECK-NOT: pushq %rcx
+; CHECK-NOT: pushq %rbx
+; CHECK: callq
+define cxx_fast_tlscc nonnull i8* @test_ssp() #2 {
+ ret i8* @ssp_var
+}
attributes #0 = { nounwind "no-frame-pointer-elim"="true" }
attributes #1 = { nounwind }
+attributes #2 = { nounwind sspreq }
OpenPOWER on IntegriCloud