aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2017-05-08 17:44:36 +0000
committerBernd Edlinger <edlinger@gcc.gnu.org>2017-05-08 17:44:36 +0000
commit29eb9a442b145c3b637e7b41000e51148969c989 (patch)
tree25451e4bef78a2286c4eb70717dba908095ae3b5 /gcc/reload1.c
parent9057edd30c40ea77707650699f38734eb949b7d6 (diff)
downloadgcc-29eb9a442b145c3b637e7b41000e51148969c989.zip
gcc-29eb9a442b145c3b637e7b41000e51148969c989.tar.gz
gcc-29eb9a442b145c3b637e7b41000e51148969c989.tar.bz2
target.def (compute_frame_layout): New optional target hook.
2017-05-08 Bernd Edlinger <bernd.edlinger@hotmail.de> * target.def (compute_frame_layout): New optional target hook. * doc/tm.texi.in (TARGET_COMPUTE_FRAME_LAYOUT): Add hook. * doc/tm.texi (TARGET_COMPUTE_FRAME_LAYOUT): Add documentation. * lra-eliminations.c (update_reg_eliminate): Call compute_frame_layout target hook. * reload1.c (verify_initial_elim_offsets): Likewise. * config/arm/arm.c (TARGET_COMPUTE_FRAME_LAYOUT): Define. (use_simple_return_p): Call arm_compute_frame_layout if needed. (arm_get_frame_offsets): Split up into this ... (arm_compute_frame_layout): ... and this function. From-SVN: r247750
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 4dc118e..e993749 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -3821,6 +3821,7 @@ verify_initial_elim_offsets (void)
if (!num_eliminable)
return true;
+ targetm.compute_frame_layout ();
for (ep = reg_eliminate; ep < &reg_eliminate[NUM_ELIMINABLE_REGS]; ep++)
{
INITIAL_ELIMINATION_OFFSET (ep->from, ep->to, t);
@@ -3838,6 +3839,7 @@ set_initial_elim_offsets (void)
{
struct elim_table *ep = reg_eliminate;
+ targetm.compute_frame_layout ();
for (; ep < &reg_eliminate[NUM_ELIMINABLE_REGS]; ep++)
{
INITIAL_ELIMINATION_OFFSET (ep->from, ep->to, ep->initial_offset);