[llvm-bugs] [Bug 17580] Inefficient tls code for initial exec X86_64

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Oct 16 00:15:14 PDT 2015


https://llvm.org/bugs/show_bug.cgi?id=17580

Eric Christopher <echristo at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #1 from Eric Christopher <echristo at gmail.com> ---
Looks fixed to me:

dzur:~/tmp> cat > foo.c
 __thread int obj;

int test() {
  return ((int)&obj) > 0;
}
dzur:~/tmp> clang -S -O2 foo.c -o -
    .text
    .file    "foo.c"
    .globl    test
    .align    16, 0x90
    .type    test, at function
test:                                   # @test
    .cfi_startproc
# BB#0:
    movq    $obj at TPOFF, %rax
    addl    %fs:0, %eax
    testl    %eax, %eax
    setg    %al
    movzbl    %al, %eax
    retq
.Lfunc_end0:
    .size    test, .Lfunc_end0-test
    .cfi_endproc

    .type    obj, at object             # @obj
    .section    .tbss,"awT", at nobits
    .globl    obj
    .align    4
obj:
    .long    0                       # 0x0
    .size    obj, 4


    .ident    "clang version 3.7.0 (trunk 238526) (llvm/trunk 238524)"
    .section    ".note.GNU-stack","", at progbits
dzur:~/tmp> gcc -S -O2 foo.c -o -
    .file    "foo.c"
foo.c: In function ‘test’:
foo.c:4:11: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
   return ((int)&obj) > 0;
           ^
    .text
    .p2align 4,,15
    .globl    test
    .type    test, @function
test:
.LFB0:
    .cfi_startproc
    movq    %fs:0, %rax
    addq    $obj at tpoff, %rax
    testl    %eax, %eax
    setg    %al
    movzbl    %al, %eax
    ret
    .cfi_endproc
.LFE0:
    .size    test, .-test
    .globl    obj
    .section    .tbss,"awT", at nobits
    .align 4
    .type    obj, @object
    .size    obj, 4
obj:
    .zero    4
    .ident    "GCC: (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4"
    .section    .note.GNU-stack,"", at progbits

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20151016/a7aacece/attachment-0001.html>


More information about the llvm-bugs mailing list