2013-07-05 Vladimir Makarov <vmakarov@redhat.com>
commit1f3a048aa0221dc35cc6a5abe55aa692e372a12a
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Jul 2013 20:56:13 +0000 (5 20:56 +0000)
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 5 Jul 2013 20:56:13 +0000 (5 20:56 +0000)
tree8a8e7f4e3df96defc69d2feee8fbac6ac8d3a56b
parent3af610956c973346fde07a92178be25170725e9f
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@200723 138bc75d-0d04-0410-961f-82ee72b054a4
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]