diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2014-11-13 03:02:49 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2014-11-13 03:02:49 +0000 |
commit | d9cf932c33070383b9e4f9917ecee76a28e762aa (patch) | |
tree | 6e275a0a0d4c96a79407def2c6bc8fc0ee919f34 /gcc/lra-int.h | |
parent | 778e02fdc4da78fede96faf39566060bc040727d (diff) |
common.opt (flra-remat): New.
2014-11-12 Vladimir Makarov <vmakarov@redhat.com>
* common.opt (flra-remat): New.
* opts.c (default_options_table): Add entry for flra_remat.
* timevar_def (TV_LRA_REMAT): New.
* doc/invoke.texi (-flra-remat): Add description of the new
option.
* doc/passes.texi (-flra-remat): Remove lra-equivs.c and
lra-saves.c. Add lra-remat.c.
* Makefile.in (OBJS): Add lra-remat.o.
* lra-remat.c: New file.
* lra.c: Add info about the rematerialization pass in the top
comment.
(collect_non_operand_hard_regs, add_regs_to_insn_regno_info):
Process unallocatable regs too.
(lra_constraint_new_insn_uid_start): Remove.
(lra): Add code for calling rematerialization sub-pass.
* lra-int.h (lra_constraint_new_insn_uid_start): Remove.
(lra_constrain_insn, lra_remat): New prototypes.
(lra_eliminate_regs_1): Add parameter.
* lra-lives.c (make_hard_regno_born, make_hard_regno_dead):
Process unallocatable hard regs too.
(process_bb_lives): Ditto.
* lra-spills.c (remove_pseudos): Add argument to
lra_eliminate_regs_1 call.
* lra-eliminations.c (lra_eliminate_regs_1): Add parameter. Use it
for sp offset calculation.
(lra_eliminate_regs): Add argument for lra_eliminate_regs_1 call.
(eliminate_regs_in_insn): Add parameter. Use it for sp offset
calculation.
(process_insn_for_elimination): Add argument for
eliminate_regs_in_insn call.
* lra-constraints.c (get_equiv_with_elimination): Add argument
for lra_eliminate_regs_1 call.
(process_addr_reg): Add parameter. Use it.
(process_address_1): Ditto. Add argument for process_addr_reg
call.
(process_address): Ditto.
(curr_insn_transform): Add parameter. Use it. Add argument for
process_address calls.
(lra_constrain_insn): New function.
(lra_constraints): Add argument for curr_insn_transform call.
From-SVN: r217458
Diffstat (limited to 'gcc/lra-int.h')
-rw-r--r-- | gcc/lra-int.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc/lra-int.h b/gcc/lra-int.h index 5355ebfa4ec..92dc40cb7da 100644 --- a/gcc/lra-int.h +++ b/gcc/lra-int.h @@ -328,7 +328,6 @@ extern bitmap_head lra_inheritance_pseudos; extern bitmap_head lra_split_regs; extern bitmap_head lra_subreg_reload_pseudos; extern bitmap_head lra_optional_reload_pseudos; -extern int lra_constraint_new_insn_uid_start; /* lra-constraints.c: */ @@ -339,6 +338,7 @@ extern int lra_constraint_iter; extern bool lra_risky_transformations_p; extern int lra_inheritance_iter; extern int lra_undo_inheritance_iter; +extern bool lra_constrain_insn (rtx_insn *); extern bool lra_constraints (bool); extern void lra_constraints_init (void); extern void lra_constraints_finish (void); @@ -389,13 +389,17 @@ extern bool lra_need_for_spills_p (void); extern void lra_spill (void); extern void lra_final_code_change (void); +/* lra-remat.c: */ + +extern bool lra_remat (void); /* lra-elimination.c: */ extern void lra_debug_elim_table (void); extern int lra_get_elimination_hard_regno (int); -extern rtx lra_eliminate_regs_1 (rtx_insn *, rtx, machine_mode, bool, - bool, bool); +extern rtx lra_eliminate_regs_1 (rtx_insn *, rtx, machine_mode, + bool, bool, HOST_WIDE_INT, bool); +extern void eliminate_regs_in_insn (rtx_insn *insn, bool, bool, HOST_WIDE_INT); extern void lra_eliminate (bool, bool); extern void lra_eliminate_reg_if_possible (rtx *); |