PR rtl-opt/42216
commitc38fa63b5f3c4e2f37f762e1ec5a9d2c3486dc8b
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 Dec 2009 18:03:05 +0000 (10 18:03 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 Dec 2009 18:03:05 +0000 (10 18:03 +0000)
tree3b8366558ed3afbd3865c46fc4d7d6f3644d04eb
parent2baf72b16cb8b8510bd5408fd064d7f04f349cb5
PR rtl-opt/42216
* regrename.c: Error out if MAX_RECOG_OPERANDS is larger than
HOST_BITS_PER_WIDE_INT.
(verify_reg_in_set): New function, broken out of verify_reg_tracked.
(verify_reg_tracked): Use it.
(scan_rtx_reg): When seeing a use involving a superset of the
registers in an existing chain, enlarge that chain.  Otherwise,
allow subsets and set fail_current_block for all other kinds of
overlap.
(hide_operands): New argument UNTRACKED_OPERANDS; callers changed.
Do not modify operands when the bit with the corresponding number
is set in that bitmap.
(build_def_use): When we see matching operands with different
modes, don't set fail_current_block, but keep track of such
operands in a bitmap if their registers aren't already tracked
in an open chain.  Pass this bitmap to all hide_operands calls.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@155134 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/regrename.c