Jakub Jelinek - Re: [gomp] new critical section functions in libgomp (original) (raw)

This is the mail archive of the gcc-patches@gcc.gnu.orgmailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

On Wed, Sep 21, 2005 at 04:15:07PM -0700, Richard Henderson wrote:

When actually implementing the front/middle -end bits, I found it less than convenient to actually deal with omp_lock_t. So I punted and created libgomp functions that didn't require it.

Can't you optimize this for the cases where sizeof (gomp_mutex_t) <= sizeof (gomp_mutex_t *)
&& __alignof (gomp_mutex_t) <= _alignof (gomp_mutex_t *)
&& defined (GOMP_MUTEX_INIT_0) by not using the indirection in that case in GOMP_critical_name
*? I know it uglifies the 2 routines, on the other side you avoid the malloc calls etc. GOMP_MUTEX_INIT_0 would be something similar to how glibc specializes mutex inits. E.g. initialize_critical could be #ifndef GOMP_MUTEX_INIT_0 as well.

    * critical.c (GOMP_critical_name_start, GOMP_critical_name_end): New.
    (create_lock_lock): New.
    (initialize_critical): Initialize it.
    * libgomp.map (GOMP_critical_name_start, GOMP_critical_name_end): New.
    * libgomp_g.h (GOMP_ordered_start, GOMP_ordered_end): Declare.
Jakub

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]