summaryrefslogtreecommitdiff
path: root/gcc/lra-int.h
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2013-07-05 20:56:13 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2013-07-05 20:56:13 +0000
commit2b778c9d57e0eb58d99023e2445b02e0c0be4d7c (patch)
tree8a8e7f4e3df96defc69d2feee8fbac6ac8d3a56b /gcc/lra-int.h
parent0ba6aff37954721a287391ae505ef0aface6b533 (diff)
downloadgcc-2b778c9d57e0eb58d99023e2445b02e0c0be4d7c.tar.gz
re PR rtl-optimization/55342 ([LRA,x86] Non-optimal code for simple loop with LRA)
2013-07-05 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55342 * lra-int.h (lra_subreg_reload_pseudos): New. * lra.c: Add undoing optional reloads to the block diagram. (lra_subreg_reload_pseudos): New. (lra_optional_reload_pseudos): Change comments. (lra): Init and clear lra_subreg_reload_pseudos. Clear lra_optional_reload_pseudos after undo transformations. * lra-assigns.c (pseudo_prefix_title): New. (lra_setup_reg_renumber): Use it. (spill_for): Ditto. Check subreg reload pseudos too. (assign_by_spills): Consider subreg reload pseudos too. * lra-constraints.c (simplify_operand_subreg): Use lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos. (curr_insn_transform): Recognize and do optional reloads. (undo_optional_reloads): New. (lra_undo_inheritance): Call undo_optional_reloads. 2013-07-05 Vladimir Makarov <vmakarov@redhat.com> PR rtl-optimization/55342 * gcc.target/i386/pr55342.c: New. From-SVN: r200723
Diffstat (limited to 'gcc/lra-int.h')
-rw-r--r--gcc/lra-int.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/lra-int.h b/gcc/lra-int.h
index 3d7ecb35e09..cb45c65d13a 100644
--- a/gcc/lra-int.h
+++ b/gcc/lra-int.h
@@ -321,6 +321,7 @@ extern int lra_new_regno_start;
extern int lra_constraint_new_regno_start;
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;