diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-11-05 12:14:27 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-11-05 12:14:27 +0000 |
commit | 84b574d2ea704527e2da7dcd24aa233b8aba3313 (patch) | |
tree | 8c769246fc064bcf589bbd7310157cfab45d3fbc /gcc/reload1.c | |
parent | cc1bb56d0e6443719b3a69f6aad88dbc53928438 (diff) | |
download | gcc-84b574d2ea704527e2da7dcd24aa233b8aba3313.tar.gz |
Add a no_register_allocation target hook.
* target.def (no_register_allocation): New data hook.
* doc/tm.texi.in: Add @hook TARGET_NO_REGISTER_ALLOCATION.
* doc/tm.texi: Regenerate.
* ira.c (gate_ira): New function.
(pass_data_ira): Set has_gate.
(pass_ira): Add a gate function.
(pass_data_reload): Likewise.
(pass_reload): Add a gate function.
(pass_ira): Use it.
* reload1.c (eliminate_regs): If reg_eliminate_is NULL, assert that
no register allocation happens on the target and return.
* final.c (alter_subreg): Ensure register is not a pseudo before
calling simplify_subreg.
(output_operand): Assert that x isn't a pseudo only if doing
register allocation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217122 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r-- | gcc/reload1.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c index dab8a7532e0..7d5bad51d88 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -2968,6 +2968,11 @@ eliminate_regs_1 (rtx x, machine_mode mem_mode, rtx insn, rtx eliminate_regs (rtx x, machine_mode mem_mode, rtx insn) { + if (reg_eliminate == NULL) + { + gcc_assert (targetm.no_register_allocation); + return x; + } return eliminate_regs_1 (x, mem_mode, insn, false, false); } |