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]

[PATCH] (1/3) Add back libgcc-math [2nd try]


This adds back libgcc-math populated with x86_64 vectorized intrinsics
for log, log2, log10, exp, sin, cos, cosf, expf, log10f, log2f, logf,
powf and sinf.  (The patches enabling the use of those are patch (2/3)
enabling generic support for vectorizing intrinsics which is still the
same as in the first post of the series, and patch (3/3) which will
follow this submission)

Changes from the previous version include adding a libgcc-math testsuite
(with the test orginally in gcc.dg/vect/vect-fun-1.c), enabling 
libgcc-math also for i?86 if --enable-targets=all is given.

Bootstrapped and tested on x86_64-unknown-linux-gnu (all 3 patches).

Ok for mainline?

Toplevel changes inline below, drop-in tarball for the libgcc-math
directory attached.

Thanks,
Richard.


2006-11-16  Richard Guenther  <rguenther@suse.de>

	* Makefile.def (target_modules): Add libgcc-math target module.
	* configure.in (target_libraries): Add libgcc-math target library.
	(--enable-libgcc-math): New configure switch.  Enabled by
	default on x86_64-*-linux*.
	* Makefile.in: Regenerate.
	* configure: Regenerate.

	* doc/install.texi: Document --disable-libgcc-math configure
	switch.

Index: Makefile.def
===================================================================
*** Makefile.def	(revision 119056)
--- Makefile.def	(working copy)
*************** host_modules= { module= gnattools; };
*** 118,123 ****
--- 118,124 ----
  target_modules = { module= libstdc++-v3; lib_path=.libs; raw_cxx=true; };
  target_modules = { module= libmudflap; lib_path=.libs; };
  target_modules = { module= libssp; lib_path=.libs; };
+ target_modules = { module= libgcc-math; lib_path=.libs; };
  target_modules = { module= newlib; };
  target_modules = { module= libgfortran; };
  target_modules = { module= libobjc; };
Index: configure.in
===================================================================
*** configure.in	(revision 119056)
--- configure.in	(working copy)
*************** target_libraries="target-libiberty \
*** 147,152 ****
--- 147,153 ----
  		target-libstdc++-v3 \
  		target-libmudflap \
  		target-libssp \
+ 		target-libgcc-math \
  		target-libgfortran \
  		target-boehm-gc \
  		${libgcj} \
*************** AC_ARG_ENABLE(libssp,
*** 312,317 ****
--- 313,340 ----
  ENABLE_LIBSSP=$enableval,
  ENABLE_LIBSSP=yes)
  
+ # Set the default so we build libgcc-math for x86_64-*-linux
+ AC_ARG_ENABLE(libgcc-math,
+ [  --enable-libgcc-math   Builds libgcc-math directory],,
+ [
+ case "${target}" in
+   x86_64-*-linux*)
+     enable_libgcc_math=yes ;;
+   i?86-*-linux*)
+     if test x$enable_targets = xall; then
+       enable_libgcc_math=yes
+     else
+       enable_libgcc_math=no
+     fi
+     ;;
+   *)
+     enable_libgcc_math=no ;;
+ esac
+ ])
+ if test "${enable_libgcc_math}" != "yes"; then
+   noconfigdirs="$noconfigdirs target-libgcc-math"
+ fi
+ 
  # Save it here so that, even in case of --enable-libgcj, if the Java
  # front-end isn't enabled, we still get libgcj disabled.
  libgcj_saved=$libgcj
Index: gcc/doc/install.texi
===================================================================
*** gcc/doc/install.texi	(revision 119056)
--- gcc/doc/install.texi	(working copy)
*************** should not be built.
*** 1141,1146 ****
--- 1141,1150 ----
  @item --disable-libgomp
  Specify that the run-time libraries used by GOMP should not be built.
  
+ @item --disable-libgcc-math
+ Specify that the run-time libraries for arch and gcc specific math
+ functions should not be built.
+ 
  @item --with-dwarf2
  Specify that the compiler should
  use DWARF 2 debugging information as the default.

Attachment: libgcc-math2-2.tar.bz2
Description: application/bzip


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