]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/lra-int.h
re PR rtl-optimization/55342 ([LRA,x86] Non-optimal code for simple loop with LRA)
authorVladimir Makarov <vmakarov@redhat.com>
Fri, 5 Jul 2013 20:56:13 +0000 (20:56 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Fri, 5 Jul 2013 20:56:13 +0000 (20:56 +0000)
commit2b778c9d57e0eb58d99023e2445b02e0c0be4d7c
tree8a8e7f4e3df96defc69d2feee8fbac6ac8d3a56b
parent0ba6aff37954721a287391ae505ef0aface6b533
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
gcc/ChangeLog
gcc/lra-assigns.c
gcc/lra-constraints.c
gcc/lra-int.h
gcc/lra.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr55342.c [new file with mode: 0644]