[PATCH]: Use the new f*open_unlocked functions

Kaveh R. Ghazi ghazi@caip.rutgers.edu
Mon Apr 11 05:40:00 GMT 2005


This patch makes GCC use the new f*open_unlocked functions I propose
adding to libiberty here:
http://gcc.gnu.org/ml/gcc-patches/2005-04/msg01128.html

On top of the existing speedup I get from this patch:
http://gcc.gnu.org/ml/gcc-patches/2005-04/msg00453.html
with the patch below I get an additional 0.25% - 0.5% speedup
compiling dwarf2out.c -> dwarf2out.s at -g -O0 on
i686-unknown-linux-gnu.  I believe we see the additional speedup
because glibc has no fprintf_unlocked and we have quite a few fprintf
statements.

Bootstrapped in conjuction with the above two patches on
x86_64-unknown-linux-gnu, minus java because it dies building libgcj
both with and without my patches.  No regressions.

Okay for mainline?

		Thanks,
		--Kaveh



2005-04-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

fixincludes:
	* system.h (fopen, fdopen, freopen): Define these to the unlocked
	libiberty functions.
	
gcc:	
	* system.h (fopen, fdopen, freopen): Define these to the unlocked
	libiberty functions.

libcpp:
	* system.h (fopen, fdopen, freopen): Define these to the unlocked
	libiberty functions.

diff -rup orig/egcc-CVS20050409/fixincludes/system.h egcc-CVS20050409/fixincludes/system.h
--- orig/egcc-CVS20050409/fixincludes/system.h	2005-04-10 09:22:16.463854288 -0400
+++ egcc-CVS20050409/fixincludes/system.h	2005-04-10 10:00:52.484765592 -0400
@@ -38,6 +38,11 @@ Software Foundation, 59 Temple Place - S
 #define NULL 0
 #endif
 
+/* Use the unlocked open routines from libiberty.  */
+#define fopen(PATH,MODE) fopen_unlocked(PATH,MODE)
+#define fdopen(FILDES,MODE) fdopen_unlocked(FILDES,MODE)
+#define freopen(PATH,MODE,STREAM) freopen_unlocked(PATH,MODE,STREAM)
+
 /* fixincludes is not a multi-threaded application and therefore we
    do not have to use the locking functions.  In fact, using the locking
    functions can cause the compiler to be significantly slower under
diff -rup orig/egcc-CVS20050409/gcc/system.h egcc-CVS20050409/gcc/system.h
--- orig/egcc-CVS20050409/gcc/system.h	2005-04-10 09:22:16.464854136 -0400
+++ egcc-CVS20050409/gcc/system.h	2005-04-10 10:00:35.768306880 -0400
@@ -46,6 +46,11 @@ Software Foundation, 59 Temple Place - S
 #define NULL 0
 #endif
 
+/* Use the unlocked open routines from libiberty.  */
+#define fopen(PATH,MODE) fopen_unlocked(PATH,MODE)
+#define fdopen(FILDES,MODE) fdopen_unlocked(FILDES,MODE)
+#define freopen(PATH,MODE,STREAM) freopen_unlocked(PATH,MODE,STREAM)
+
 /* The compiler is not a multi-threaded application and therefore we
    do not have to use the locking functions.  In fact, using the locking
    functions can cause the compiler to be significantly slower under
diff -rup orig/egcc-CVS20050409/libcpp/system.h egcc-CVS20050409/libcpp/system.h
--- orig/egcc-CVS20050409/libcpp/system.h	2005-04-10 09:22:16.465853984 -0400
+++ egcc-CVS20050409/libcpp/system.h	2005-04-10 10:01:01.194441520 -0400
@@ -38,6 +38,11 @@ Software Foundation, 59 Temple Place - S
 #define NULL 0
 #endif
 
+/* Use the unlocked open routines from libiberty.  */
+#define fopen(PATH,MODE) fopen_unlocked(PATH,MODE)
+#define fdopen(FILDES,MODE) fdopen_unlocked(FILDES,MODE)
+#define freopen(PATH,MODE,STREAM) freopen_unlocked(PATH,MODE,STREAM)
+
 /* The compiler is not a multi-threaded application and therefore we
    do not have to use the locking functions.  In fact, using the locking
    functions can cause the compiler to be significantly slower under



More information about the Gcc-patches mailing list