ira.c combine_and_move_insns, and ordering of functions
authorAlan Modra <amodra@gmail.com>
Fri, 29 Apr 2016 23:58:17 +0000 (09:28 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Fri, 29 Apr 2016 23:58:17 +0000 (09:28 +0930)
commit10e044468a4e0599c4f52ced069d39bbef8bee62
tree469249cb2530cae37ba53bdb8bff82d185b6d2ac
parentc7a99fc66328d85bcda9eb1625143e8e7b20e533
ira.c combine_and_move_insns, and ordering of functions

Notes added by add_store_equivs are not used directly or indirectly by
combine_and_move_insns.  add_store_equivs can therefore run later
without affecting the output of combine_and_move_insns, and thus
add_store_equivs need not take into account potentially moved insns.
Since not all potentially combined/moved insns are in fact combined or
moved, this may allow add_store_equivs to add more REG_EQUIV notes.

grow_reg_equivs isn't needed until the reload reg_equivs array is
changed.

ira.c (combine_and_move_insns): Move invariant conditions..
(ira.c): ..to here.  Call combine_and_move_insns before
add_store_equivs.  Call grow_reg_equivs later.  Allocate
req_equiv later using max_reg_num() rather than global max_regno.
(contains_replace_regs): Delete.
(add_store_equivs): Remove contains_replace_regs test.

From-SVN: r235659
gcc/ChangeLog
gcc/ira.c