Introduce rtl_data::init_stack_alignment
authorDavid Malcolm <dmalcolm@redhat.com>
Wed, 7 Dec 2016 16:41:05 +0000 (16:41 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Wed, 7 Dec 2016 16:41:05 +0000 (16:41 +0000)
Move this part of "expand"'s initialization of crtl into its own
method so that it can used by the RTL frontend when postprocessing
RTL dumps.

gcc/ChangeLog:
* cfgexpand.c (pass_expand::execute): Move stack initializations
to rtl_data::init_stack_alignment and call it.
* emit-rtl.c (rtl_data::init_stack_alignment): New method.
* emit-rtl.h (rtl_data::init_stack_alignment): New method.

From-SVN: r243371

gcc/ChangeLog
gcc/cfgexpand.c
gcc/emit-rtl.c
gcc/emit-rtl.h

index 966af5c56c075f1670468b2c3641783a61a25e61..1cf31bc3b4b748962dd151bb74a4d622e003c942 100644 (file)
@@ -1,3 +1,10 @@
+2016-12-07  David Malcolm  <dmalcolm@redhat.com>
+
+       * cfgexpand.c (pass_expand::execute): Move stack initializations
+       to rtl_data::init_stack_alignment and call it.
+       * emit-rtl.c (rtl_data::init_stack_alignment): New method.
+       * emit-rtl.h (rtl_data::init_stack_alignment): New method.
+
 2016-12-07  Wilco Dijkstra  <wdijkstr@arm.com>
 
        * gcc/ira.c (ira_setup_eliminable_regset): Initialize crtl->is_leaf.
index c3aca593e53c54b8468bb4ca9a39f9ea28d9ecac..97dc6484364a1ea5a62e291b28bbd87ca37ec3ed 100644 (file)
@@ -6213,10 +6213,7 @@ pass_expand::execute (function *fun)
   discover_nonconstant_array_refs ();
 
   targetm.expand_to_rtl_hook ();
-  crtl->stack_alignment_needed = STACK_BOUNDARY;
-  crtl->max_used_stack_slot_alignment = STACK_BOUNDARY;
-  crtl->stack_alignment_estimated = 0;
-  crtl->preferred_stack_boundary = STACK_BOUNDARY;
+  crtl->init_stack_alignment ();
   fun->cfg->max_jumptable_ents = 0;
 
   /* Resovle the function section.  Some targets, like ARM EABI rely on knowledge
index 5201bd0e0ef9c7dbd53e9534fd4cab351cc31d16..9eccd6863ea3099deeec1541b60b4682c5ae9c6e 100644 (file)
@@ -6291,5 +6291,17 @@ need_atomic_barrier_p (enum memmodel model, bool pre)
       gcc_unreachable ();
     }
 }
+
+/* Initialize fields of rtl_data related to stack alignment.  */
+
+void
+rtl_data::init_stack_alignment ()
+{
+  stack_alignment_needed = STACK_BOUNDARY;
+  max_used_stack_slot_alignment = STACK_BOUNDARY;
+  stack_alignment_estimated = 0;
+  preferred_stack_boundary = STACK_BOUNDARY;
+}
+
 \f
 #include "gt-emit-rtl.h"
index a919bf072ab56e4557e83213d75bc76d08ae1b47..88ba5894dfef38d01917e53013eac1c2fa796ef5 100644 (file)
@@ -55,6 +55,8 @@ struct GTY(()) incoming_args {
 
 /* Datastructures maintained for currently processed function in RTL form.  */
 struct GTY(()) rtl_data {
+  void init_stack_alignment ();
+
   struct expr_status expr;
   struct emit_status emit;
   struct varasm_status varasm;