Small FDE optimisation for sibcalls

Geoffrey Keating gkeating@apple.com
Tue Apr 29 20:43:00 GMT 2003


The tests at the start of output_call_frame_info should match the
tests at the start of the loop that actually outputs the FDEs.

Bootstrapped & tested on powerpc-darwin.

-- 
- Geoffrey Keating <geoffk@apple.com>

===File ~/patches/gcc-nofdeifsibcallthrowers.patch==========
2003-04-29  Geoffrey Keating  <geoffk@apple.com>

	* dwarf2out.c (output_call_frame_info): No need to output EH
	unwind information if all_throwers_are_sibcalls.

Index: dwarf2out.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/dwarf2out.c,v
retrieving revision 1.422
diff -u -p -u -p -r1.422 dwarf2out.c
--- dwarf2out.c	23 Apr 2003 00:06:31 -0000	1.422
+++ dwarf2out.c	29 Apr 2003 20:42:17 -0000
@@ -1940,7 +1940,8 @@ output_call_frame_info (for_eh)
       for (i = 0; i < fde_table_in_use; i++)
 	if (fde_table[i].uses_eh_lsda)
 	  any_eh_needed = any_lsda_needed = true;
-	else if (! fde_table[i].nothrow)
+	else if (! fde_table[i].nothrow
+		 && ! fde_table[i].all_throwers_are_sibcalls)
 	  any_eh_needed = true;
 
       if (! any_eh_needed)
============================================================



More information about the Gcc-patches mailing list