+2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ Revert
+ 2015-11-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ * ifcvt.c (insn_valid_noce_process_p): Reject insn if it satisfies
+ multiple_sets.
+ (noce_try_cmove_arith): Add checking asserts that orig_a and orig_b
+ are not modified by the final modified insns in the basic blocks.
+
2015-11-27 Nathan Sidwell <nathan@acm.org>
* config/nvptx/nvptx-protos.h (nvptx_addr_space_from_address):
{
if (!insn
|| !NONJUMP_INSN_P (insn)
- || multiple_sets (insn)
|| (cc && set_of (cc, insn)))
return false;
swap insn that sets up A with the one that sets up B. If even
that doesn't help, punt. */
- gcc_checking_assert (!emit_a || !modified_in_p (orig_b, emit_a));
+ modified_in_a = emit_a != NULL_RTX && modified_in_p (orig_b, emit_a);
if (tmp_b && then_bb)
{
FOR_BB_INSNS (then_bb, tmp_insn)
}
if (emit_a || modified_in_a)
{
- gcc_checking_assert (!emit_b || !modified_in_p (orig_a, emit_b));
+ modified_in_b = emit_b != NULL_RTX && modified_in_p (orig_a, emit_b);
if (tmp_b && else_bb)
{
FOR_BB_INSNS (else_bb, tmp_insn)