summaryrefslogtreecommitdiff
path: root/gcc/lra-lives.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-23 01:29:07 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-23 01:29:07 +0000
commitfc8a0f6057d7d0f4079bc7249825002f58da6613 (patch)
treec75c3eaee2df7bd4f719de0d47556e7ab346e8eb /gcc/lra-lives.c
parenta96132f29aa3dfe94141a87537f62ea73ce0fc19 (diff)
downloadgcc-fc8a0f6057d7d0f4079bc7249825002f58da6613.tar.gz
2012-11-22 Vladimir Makarov <vmakarov@redhat.com>
PR middle-end/55430 * lra.c: Move #include "hard-reg-set.h" before #include "rtl.h". (new_insn_reg): Update biggest_mode. (collect_non_operand_hard_regs): Check eliminable regs too. (initialize_lra_reg_info_element): Initialize biggest_mode. (add_regs_to_insn_regno_info): Ignore non-allocatable non-eliminable hard regs. (lra.c): Move setting lra_no_alloc_regs before init_insn_recog_data. * lra-constraints.c (simplify_operand_subreg): Add a comment. (lra_constraints): Ignore equivalent memory of regs occuring in paradoxical subregs. * lra-lives.c (lra_create_live_ranges): Add a comment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193742 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lra-lives.c')
-rw-r--r--gcc/lra-lives.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/lra-lives.c b/gcc/lra-lives.c
index f2dc359c18b..c79b95bf536 100644
--- a/gcc/lra-lives.c
+++ b/gcc/lra-lives.c
@@ -935,6 +935,10 @@ lra_create_live_ranges (bool all_p)
#ifdef STACK_REGS
lra_reg_info[i].no_stack_p = false;
#endif
+ /* The biggest mode is already set but its value might be to
+ conservative because of recent transformation. Here in this
+ file we recalculate it again as it costs practically
+ nothing. */
if (regno_reg_rtx[i] != NULL_RTX)
lra_reg_info[i].biggest_mode = GET_MODE (regno_reg_rtx[i]);
else