Avoid conservative behavior in REE by allowing removal of redundant extends
commit97b533dde527c439a14d09b921a1d22b97bed403
authortejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Oct 2012 17:19:35 +0000 (26 17:19 +0000)
committertejohnson <tejohnson@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 26 Oct 2012 17:19:35 +0000 (26 17:19 +0000)
treea2eaa87b296b3829f298c857f1de301049610cf6
parentd94ff7ce0dbed747e8e50a0502f2d28fec177df9
Avoid conservative behavior in REE by allowing removal of redundant extends
when the def feeds another extend with a different mode. This works because
in merge_def_and_ext only calls combine_set_extension if the candidate for
removal has a wider mode than the def extend's mode, otherwise the def extend
mode is preserved. In combine_set_extension the def is modified to use the
wider candidate's mode.

2012-10-26  Teresa Johnson  <tejohnson@google.com>

* ree.c (add_removable_extension): Remove unnecessary
mode check with other extension.
* testsuite/gcc.c-torture/execute/20111227-2.c: New test.
* testsuite/gcc.c-torture/execute/20111227-3.c: Ditto.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192850 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/ree.c
gcc/testsuite/gcc.c-torture/execute/20111227-2.c [new file with mode: 0644]
gcc/testsuite/gcc.c-torture/execute/20111227-3.c [new file with mode: 0644]