summaryrefslogtreecommitdiff
path: root/gcc/lra-int.h
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2018-03-01 05:51:08 +0000
committerTom de Vries <vries@gcc.gnu.org>2018-03-01 05:51:08 +0000
commit54178a01107b911813609693dd8d91968ac06819 (patch)
treed07c5b1a1c94714f4b24f7a5d327eefc320c6bf7 /gcc/lra-int.h
parent7540ea866ad77094e6f77023558378ce9b196fd5 (diff)
Fix liveness analysis in lra for spilled-into hard regs
2018-03-01 Tom de Vries <tom@codesourcery.com> PR rtl-optimization/83327 * lra-int.h (hard_regs_spilled_into): Declare. * lra.c (hard_regs_spilled_into): Define. (init_reg_info): Init hard_regs_spilled_into. * lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into. * lra-lives.c (make_hard_regno_born, make_hard_regno_dead) (process_bb_lives): Handle hard_regs_spilled_into. (lra_create_live_ranges_1): Before doing liveness propagation, clear regs in all_hard_regs_bitmap if set in hard_regs_spilled_into. From-SVN: r258093
Diffstat (limited to 'gcc/lra-int.h')
-rw-r--r--gcc/lra-int.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/lra-int.h b/gcc/lra-int.h
index 03839187cf6..509e29ec4b8 100644
--- a/gcc/lra-int.h
+++ b/gcc/lra-int.h
@@ -122,6 +122,8 @@ struct lra_reg
/* References to the common info about each register. */
extern struct lra_reg *lra_reg_info;
+extern HARD_REG_SET hard_regs_spilled_into;
+
/* Static info about each insn operand (common for all insns with the
same ICODE). Warning: if the structure definition is changed, the
initializer for debug_operand_data in lra.c should be changed