diff options
author | Bernd Edlinger <bernd.edlinger@hotmail.de> | 2017-05-08 17:44:36 +0000 |
---|---|---|
committer | Bernd Edlinger <edlinger@gcc.gnu.org> | 2017-05-08 17:44:36 +0000 |
commit | 29eb9a442b145c3b637e7b41000e51148969c989 (patch) | |
tree | 25451e4bef78a2286c4eb70717dba908095ae3b5 /gcc/reload1.c | |
parent | 9057edd30c40ea77707650699f38734eb949b7d6 (diff) | |
download | gcc-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.c | 2 |
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 < ®_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 < ®_eliminate[NUM_ELIMINABLE_REGS]; ep++) { INITIAL_ELIMINATION_OFFSET (ep->from, ep->to, ep->initial_offset); |