diff options
author | David Malcolm <dmalcolm@redhat.com> | 2016-12-07 16:41:05 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2016-12-07 16:41:05 +0000 |
commit | 8194c537463de4a5e6bd368c1c5fab2fafc40bdf (patch) | |
tree | 64d9cf5bf54f19e1906173df4958740b7415def8 | |
parent | 27e7087f51cef38da59c87e210af64f240a3ff23 (diff) | |
download | gcc-8194c537463de4a5e6bd368c1c5fab2fafc40bdf.zip gcc-8194c537463de4a5e6bd368c1c5fab2fafc40bdf.tar.gz gcc-8194c537463de4a5e6bd368c1c5fab2fafc40bdf.tar.bz2 |
Introduce rtl_data::init_stack_alignment
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
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cfgexpand.c | 5 | ||||
-rw-r--r-- | gcc/emit-rtl.c | 12 | ||||
-rw-r--r-- | gcc/emit-rtl.h | 2 |
4 files changed, 22 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 966af5c..1cf31bc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c index c3aca59..97dc648 100644 --- a/gcc/cfgexpand.c +++ b/gcc/cfgexpand.c @@ -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 diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 5201bd0..9eccd68 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -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; +} + #include "gt-emit-rtl.h" diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h index a919bf0..88ba589 100644 --- a/gcc/emit-rtl.h +++ b/gcc/emit-rtl.h @@ -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; |