eh frame debug size improvement

Michael Meissner meissner@cygnus.com
Wed Oct 15 20:16:00 GMT 1997


Richard Henderson writes:
| Wed Oct 15 02:09:44 1997  Richard Henderson  <rth@cygnus.com>
| 
| 	* dwarf2out.c (dwarf2out_stack_adjust): Skip if frame_pointer_needed.
| 
| Index: dwarf2out.c
| ===================================================================
| RCS file: /cvs/cvsfiles/egcs/gcc/dwarf2out.c,v
| retrieving revision 1.13
| diff -u -p -d -r1.13 dwarf2out.c
| --- dwarf2out.c	1997/10/07 21:35:54	1.13
| +++ dwarf2out.c	1997/10/15 09:00:27
| @@ -992,6 +992,14 @@ dwarf2out_stack_adjust (insn)
|    long offset;
|    char *label;
|  
| +  /* If this function uses a frame pointer, we know a-priori the frame
| +     size does not vary.  If we don't have EH regions, we can unwind
| +     the function with just the normal prologue info; if we do, we can
| +     either reinit the stack pointer off of the frame pointer, or leave
| +     it alone if EXIT_IGNORE_STACK.  */
| +  if (frame_pointer_needed)
| +    return;
| +
|    if (GET_CODE (insn) == BARRIER)
|      {
|        /* When we see a BARRIER, we know to reset args_size to 0.  Usually

Note, if the comment is true, then an throwing an exception will wipe
out all alloca'ed data, which IMHO is uncool.



More information about the Gcc mailing list