RFC: TLS improvements for IA32 and AMD64/EM64T
Alexandre Oliva
aoliva@redhat.com
Sat Sep 17 18:48:00 GMT 2005
On Sep 16, 2005, Alexandre Oliva <aoliva@redhat.com> wrote:
> On Sep 16, 2005, Alexandre Oliva <aoliva@redhat.com> wrote:
>> Over the past few months, I've been working on porting to IA32 and
>> AMD64/EM64T the interesting bits of the TLS design I came up with for
>> FR-V, achieving some impressive speedups along with slight code size
>> reductions in the most common cases.
>> Although the design is not set in stone yet, it's fully implemented
>> and functional with patches I'm about to post for binutils, gcc and
>> glibc mainline, as follow-ups to this message, except that the GCC
>> patch will go to gcc-patches, as expected.
> This is the glibc portion of the implementation. I've built it for
> amd64-linux-gnu and i686-pc-linux-gnu, with both the current TLS
> dialect and the new -mtls-dialect=gnu2, without regressions.
> The patch also adds a test to fix a problem I ran into while testing
> these optimizations, that turned out to be possible to trigger with
> the old code.
> It also introduces one missing initial-exec annotation to a data
> symbol, removing code size differences between the dynamic loaders.
> In fact, after my latest build, I found out the size comparisons in
> the specs document I've just posted were incorrect. With the latest
> build, from scratch, all libraries had the same sizes, except for
> libpthread.so, libmemusage.so and TLS test libraries in elf/ and
> nptl/, that were *always* smaller with the new dialect on both
> architectures. Yay!
> Here's the patch. There are no dependencies on the new code in
> binutils and GCC.
Revised patch using new relocation and dynamic entry numbers. Tested
again on all 4 combinations mentioned above.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: glibc-20050917.patch.bz2
Type: application/x-bzip2
Size: 16271 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20050917/9da32156/attachment.bz2>
-------------- next part --------------
--
Alexandre Oliva http://www.lsd.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist oliva@{lsd.ic.unicamp.br, gnu.org}
More information about the Libc-alpha
mailing list