diff options
author | Manman Ren <manman.ren@gmail.com> | 2016-03-24 23:21:29 +0000 |
---|---|---|
committer | Manman Ren <manman.ren@gmail.com> | 2016-03-24 23:21:29 +0000 |
commit | 9dd8c146746a0435115a461bd19d9aede965800c (patch) | |
tree | 3ce1b0b47204392a70e4f08855cd97778cdb824f /llvm/test | |
parent | fff7a3d0efde3f6f3d33c7b5e83d381101eea044 (diff) | |
download | bcm5719-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.ll | 16 |
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 } |