mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-16 00:00:34 +08:00
re PR middle-end/20557 (FAIL: gcc.dg/pr18628.c)
PR middle-end/20557 * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p to determine whether a block can be duplicated, rather than test whether the block contains noncopyable insns ourselves. From-SVN: r96836
This commit is contained in:
parent
59298b1d60
commit
ffaf4d3b13
@ -1,3 +1,10 @@
|
||||
2005-03-21 Roger Sayle <roger@eyesopen.com>
|
||||
|
||||
PR middle-end/20557
|
||||
* bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
|
||||
to determine whether a block can be duplicated, rather than test
|
||||
whether the block contains noncopyable insns ourselves.
|
||||
|
||||
2005-03-21 Kazu Hirata <kazu@cs.umass.edu>
|
||||
|
||||
* config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
|
||||
|
@ -2047,24 +2047,15 @@ duplicate_computed_gotos (void)
|
||||
int size = 0;
|
||||
|
||||
FOR_BB_INSNS (bb, insn)
|
||||
{
|
||||
if (INSN_P (insn))
|
||||
{
|
||||
/* If the insn isn't copyable, don't duplicate
|
||||
the block. */
|
||||
if (targetm.cannot_copy_insn_p
|
||||
&& targetm.cannot_copy_insn_p (insn))
|
||||
{
|
||||
size = max_size + 1;
|
||||
break;
|
||||
}
|
||||
size += get_attr_length (insn);
|
||||
}
|
||||
if (size > max_size)
|
||||
break;
|
||||
}
|
||||
if (INSN_P (insn))
|
||||
{
|
||||
size += get_attr_length (insn);
|
||||
if (size > max_size)
|
||||
break;
|
||||
}
|
||||
|
||||
if (size <= max_size)
|
||||
if (size <= max_size
|
||||
&& can_duplicate_block_p (bb))
|
||||
bitmap_set_bit (candidates, bb->index);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user