[Ecls-list] Latest changes

Andy Hefner ahefner at gmail.com
Mon Mar 19 10:29:47 UTC 2012

On Mon, Mar 19, 2012 at 1:07 AM, Matthew Mondor
<mm_lists at pulsar-zone.net> wrote:

>> Well, the system seems quite faster using --with-__threads=no so far.

The last time I looked closely at ECL performance (on x86 Linux,
admittedly a couple years ago), threaded builds wasted a tremendous
amount of time in ecl_process_env doing a TLS lookup via
pthread_getspecific at the entry of every function (compare with
non-threaded builds, which simply load the pointer from a global
variable). I wonder if you're seeing this, or something else.

It always bummed me out that changing ECL to use GCC's __thread was
only somewhat faster, because code in shared objects didn't get the
fast segment-based TLS lookup that GCC does for code compiled directly
into an executable (I think being non-PIC might also be relevant; I
forget the details, but I do recall hacking ECL to ensure code linked
into my executable was non-PIC). I'm sure ECL would see a nice gain by
passing the environment pointer directly as a function argument (in
the fashion of GHC's LLVM backend, minus the custom calling
convention), but it would be an intrusive change. Static linking would
fix the problem too, but.. LGPL. =/

I've probably mentioned all this before; if so, apologies for repeating myself.

More information about the ecl-devel mailing list