PATCH RFA: Split stack [2/7]: Middle-end support

Ian Lance Taylor iant@google.com
Thu Sep 23 08:02:00 GMT 2010


This is the second of the -fsplit-stack patches.  This patch is the
general middle-end support.  It implements the following:

* Let the backend insert a split stack prologue at the start of the
  function.

* Handle dynamic stack space allocation (for alloca or variably sized
  arrays) by calling a support function if necessary.

* Add magic sections which let the linker automatically adjust
  split-stack functions which call non-split-stack functions.

This patch is all middle-end code and hence I do not require any
specific approval.  However I would of course be happy to see any
comments.

Ian


2010-09-21  Ian Lance Taylor  <iant@google.com>

	* function.c (thread_prologue_and_epilogue_insns): If
	flag_split_stack, add split stack prologue.
	* explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
	* varasm.c (saw_no_split_stack): New static variable.
	(assemble_start_function): Set saw_no_split_stack if the function
	has the no_split_stack attribute.
	(file_end_indicate_split_stack): New function.
	* output.h (file_end_indicate_split_stack): Declare.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: split-5.patch
Type: text/x-diff
Size: 8779 bytes
Desc: split2
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100923/12f6bd43/attachment.bin>


More information about the Gcc-patches mailing list