mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-20 19:59:34 +08:00
loop.c (verify_dominator): Properly handle ADDR_VEC and ADDR_DIFF_VEC insns that appear inside loops.
h * loop.c (verify_dominator): Properly handle ADDR_VEC and ADDR_DIFF_VEC insns that appear inside loops. From-SVN: r27760
This commit is contained in:
parent
2f47f8d0af
commit
8d22ad723e
13
gcc/loop.c
13
gcc/loop.c
@ -2564,14 +2564,21 @@ verify_dominator (loop_number)
|
||||
&& GET_CODE (PATTERN (insn)) != RETURN)
|
||||
{
|
||||
rtx label = JUMP_LABEL (insn);
|
||||
int label_luid = INSN_LUID (label);
|
||||
int label_luid;
|
||||
|
||||
if (! condjump_p (insn)
|
||||
&& ! condjump_in_parallel_p (insn))
|
||||
/* If it is not a jump we can easily understand or for
|
||||
which we do not have jump target information in the JUMP_LABEL
|
||||
field (consider ADDR_VEC and ADDR_DIFF_VEC insns), then clear
|
||||
LOOP_NUMBER_CONT_DOMINATOR. */
|
||||
if ((! condjump_p (insn)
|
||||
&& ! condjump_in_parallel_p (insn))
|
||||
|| label == NULL_RTX)
|
||||
{
|
||||
loop_number_cont_dominator[loop_number] = NULL_RTX;
|
||||
return;
|
||||
}
|
||||
|
||||
label_luid = INSN_LUID (label);
|
||||
if (label_luid < INSN_LUID (loop_number_loop_cont[loop_number])
|
||||
&& (label_luid
|
||||
> INSN_LUID (loop_number_cont_dominator[loop_number])))
|
||||
|
Loading…
Reference in New Issue
Block a user