This is the mail archive of the gcc-patches@gcc.gnu.org mailing 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]

Re: [PATCH][stage2 project] Sub-Target specific math routines library


Richard Guenther <rguenther@suse.de> writes:

| This is a preview-post and overview of the stage2 project named
| "Sub-Target specific math routines library".  The features it will enable
| are SSE(2) ABI (and implementation) transcendental functions for ia32
| and vectorized transcendental functions (i.e sin(v2df), etc.) for x86_64.

As a libstdc++ implementor and math user, I think this is a good move
for GCC.

| A new toplevel library is added which is expected to host architecture
| and/or gcc specific math routines, thus I named it libgccm (originally
| it was called libsse2, which you may remember).  The structure of the
| library is as follows
| 
|   libgccm/

toplevel libs have unambigous names.  I would suggest that the
directory be named  libgcc-math/

|      flt-32/
|        C source for math transcendentals, from glibc
|      dbl-64/
|        C source for math transcendentals, from glibc

Hmm, what about long double?  The precision will vary from platform to
platforms, and withing a given platform, from command lines to command
lines.  I would be more appropriate to say

      flt/              # or float/
      dbl/              # or double/
      ldbl/             # or long-double/

Is the general policy to mirror glibc (math) sources or for gcc to be
just "inspired" from glibc? 

|      i386/
|        i386 architecture specific routines and makefiles.  Here the
|        SSE(2) ABI math routines are built (currently) from the source
|        in flt-32 and dbl-64.
|      x86_64/
|        x86_64 architecture specific routines and makefiles.  Here the
|        vectorized intrinsics will be built from assembly and C support
|        files.

should not there be subdirectories of the respective floating point
types master directories? e.g.

    flt/i386/
    dbl/x86_x64/

| There's only a toplevel configure which decides which directories to
| build in.  The subdirs build convenience libraries that are linked
| together by the toplevel make to libgccm and get versioned there.

In case the target already has some of these functions, do we use
libgcc-math functions as override, or do we defer to whatever the host
system has?

-- Gaby


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