This is the mail archive of the gcc@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]

For testing: full __float128 patch


Before I submit it officially for review, I want this patch to get some exposure while I clean up a few remaining dusty corners. To test the patch on x86_64-linux, proceed as follows:

  -- Get libquad from http://quatramaran.ens.fr/~coudert/tmp/libquad.tar.bz2 , then ./configure --prefix=/foo && make && make install 
  -- Build GCC with the extra configure argument: --with-quad=/foo (to be given to the toplevel configure command, like --with-gmp, nothing fancy)

Things to test in particular:

  -- I've tested this on linux and Mac OS; although it's pretty much OS-insensitive, does it work on things like FreeBSD and Windows?
  -- check carefully I/O support; in particular, the "output formatting" (i.e. writing out the values) involves a wrapper of my own around the gdtoa code, which was a bit painful to write, so bugs might have crawled in there


Things that do not yet work, or may change:

  -- this is only for platform that support __float128 (targets without TFmode would break); I'm working on an updated front-end patch as proposed by Andrew and Tobias

  -- I realized that the exponentiation builtins are not properly handled by the front-end (all exponentiations involving __float128 or its complex counterpart give wrong code); I'll work on a fix

  -- Array intrinsics *do not work at all*. This is a limitation of the array descriptor structure, which I cannot overcome by myself. The current patch only changes these files (in_pack_generic.c, in_unpack_generic.c, pack_generic.c, spread_generic.c, unpack_generic.c, cshift0.c) to make them compile, but they will yield wrong results.

  -- the integration of libquad depends on how the discussion with the SC turns out; the current scheme is not nice at all in case of multilibs, see below

Please note: in case of a multilib build, unless you have a system which supports fat libraries (MacOS), only the variant that corresponds to the libquad you've built will have support enabled. Typically, on a x86_64 system where you've built libquad with the default 64-bit compiler, you'll only have libquad support in the -m64 variant of libgfortran, and not the -m32 variant.



All comment are of course welcome. I think the two preliminary commits allowed to keep the size of this final patch to a reasonable value under 1kLOC (less than 600 without regenerated files).

FX

Attachment: full_testing.diff
Description: Binary data


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