RFC: TLS improvements for IA32 and AMD64/EM64T

Alexandre Oliva aoliva@redhat.com
Sun Sep 18 17:17: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.

> Here's the patch for binutils.

> I'm not entirely happy with two aspects of the patch:

> - the way I managed to emit the `call *(%[er]ax)' instruction from
>   `call *variable@TLSCALL(%[er]ax)', dropping the offset from the
>   instruction but still emitting the relocation, seems fragile to me,
>   but there were not additional bits available to do something
>   cleaner.  Any suggestions on a better approach?

> - local_tlsdesc_gotent is probably too wasteful, since very few of all
>   local symbols are going to require TLS descriptor entries.  I hope
>   this is not too much of a problem, but I could introduce another
>   data structure if people feel strongly about it.


> Also note the several FIXMEs with decisions yet to be made on exact
> instructions to be generated in several cases.  I'm yet to develop
> some means to better evaluate the performance of each alternative, but
> even then, I have limited hardware to test on.  I'd welcome feedback
> from people more familiar with performance features of various
> x86-compatible processors.  Anyone?  Thanks in advance,

> Here's the patch.  Built and tested on x86_64-linux-gnu and
> i686-pc-linux-gnu.  Ok to install?

Updated patch, using different relocation numbers, and different
dynamic table numbers as well.  Same tests run and passed.  Ok to
install?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: binutils-20050917.patch.bz2
Type: application/x-bzip2
Size: 24368 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20050918/e0841022/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 Binutils mailing list