[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