* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96836
138bc75d-0d04-0410-961f-
82ee72b054a4
+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
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);
}
}