aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorNathan Sidwell <nathan@codesourcery.com>2004-09-08 15:44:46 +0000
committerNathan Sidwell <nathan@gcc.gnu.org>2004-09-08 15:44:46 +0000
commit0bccc606b3591619fec22d2ce7e291c7cfee800d (patch)
treed4ae6549382aa7dcd6e2e812d293953633ea36c6 /gcc/flow.c
parent5f4a098e0594c3d49af7ce0c06dc60d6e3d395a8 (diff)
downloadgcc-0bccc606b3591619fec22d2ce7e291c7cfee800d.zip
gcc-0bccc606b3591619fec22d2ce7e291c7cfee800d.tar.gz
gcc-0bccc606b3591619fec22d2ce7e291c7cfee800d.tar.bz2
final.c (shorten_branches, [...]): Use gcc_assert and gcc_unreachable.
* final.c (shorten_branches, final, get_insn_template, output_alternate_entry_point, final_scan_insn, alter_subreg, alter_cond, output_operand, asm_fprintf, final_forward_branch_p, leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable. * fix-header.c (lookup_std_proto): Likewise. * flow.c (first_insn_after_basic_block_note, verify_wide_reg, verify_local_live_at_start, update_life_info, mark_reg, calculate_global_regs_live, allocate_reg_life_data, init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1, ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond, attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise. * fold-const.c (force_fit_type, div_and_round_double, may_negate_without_overflow_p, int_const_binop, const_binop, size_binop, size_diffop, fold_convert_const, fold_convert, invert_tree_comparison, swap_tree_comparison, comparison_to_compcode, compcode_to_comparison, invert_truthvalue, range_binop, make_range, fold_cond_expr_with_comparison, fold_div_compare, fold, fold_checksum_tree, fold_negate_const, fold_abs_const, fold_not_const, fold_relational_const, round_up, round_down): Likewise. * function.c (find_function_data, assign_stack_temp_for_type, instantiate_virtual_regs_lossage, aggregate_value_p, assign_parm_find_entry_rtl, assign_parm_setup_block, expand_function_start, expand_function_end, keep_stack_depressed, handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise. From-SVN: r87192
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c61
1 files changed, 24 insertions, 37 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index abbac67..d1e7e2d 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -346,8 +346,7 @@ first_insn_after_basic_block_note (basic_block block)
return NULL_RTX;
if (LABEL_P (insn))
insn = NEXT_INSN (insn);
- if (!NOTE_INSN_BASIC_BLOCK_P (insn))
- abort ();
+ gcc_assert (NOTE_INSN_BASIC_BLOCK_P (insn));
return NEXT_INSN (insn);
}
@@ -487,13 +486,12 @@ verify_wide_reg (int regno, basic_block bb)
break;
head = NEXT_INSN (head);
}
-
if (dump_file)
{
fprintf (dump_file, "Register %d died unexpectedly.\n", regno);
dump_bb (bb, dump_file, 0);
}
- abort ();
+ fatal_error ("internal consistency failure");
}
/* A subroutine of update_life_info. Verify that there are no untoward
@@ -517,7 +515,7 @@ verify_local_live_at_start (regset new_live_at_start, basic_block bb)
fputs ("Old:\n", dump_file);
dump_bb (bb, dump_file, 0);
}
- abort ();
+ fatal_error ("internal consistency failure");
}
}
else
@@ -538,9 +536,8 @@ verify_local_live_at_start (regset new_live_at_start, basic_block bb)
"Register %d died unexpectedly.\n", i);
dump_bb (bb, dump_file, 0);
}
- abort ();
+ fatal_error ("internal consistency failure");
}
-
/* Verify that the now-live register is wider than word_mode. */
verify_wide_reg (i, bb);
});
@@ -587,9 +584,8 @@ update_life_info (sbitmap blocks, enum update_life_extent extent, int prop_flags
/* Changes to the CFG are only allowed when
doing a global update for the entire CFG. */
- if ((prop_flags & PROP_ALLOW_CFG_CHANGES)
- && (extent == UPDATE_LIFE_LOCAL || blocks))
- abort ();
+ gcc_assert (!(prop_flags & PROP_ALLOW_CFG_CHANGES)
+ || (extent != UPDATE_LIFE_LOCAL && !blocks));
/* For a global update, we go through the relaxation process again. */
if (extent != UPDATE_LIFE_LOCAL)
@@ -901,8 +897,7 @@ mark_reg (rtx reg, void *xset)
regset set = (regset) xset;
int regno = REGNO (reg);
- if (GET_MODE (reg) == BLKmode)
- abort ();
+ gcc_assert (GET_MODE (reg) != BLKmode);
SET_REGNO_REG_SET (set, regno);
if (regno < FIRST_PSEUDO_REGISTER)
@@ -1025,8 +1020,7 @@ calculate_global_regs_live (sbitmap blocks_in, sbitmap blocks_out, int flags)
sick behavior here. */
#ifdef ENABLE_CHECKING
FOR_BB_BETWEEN (bb, ENTRY_BLOCK_PTR, NULL, next_bb)
- if (bb->aux)
- abort ();
+ gcc_assert (!bb->aux);
#endif
tmp = INITIALIZE_REG_SET (tmp_head);
@@ -1436,8 +1430,7 @@ allocate_reg_life_data (void)
int i;
max_regno = max_reg_num ();
- if (reg_deaths)
- abort ();
+ gcc_assert (!reg_deaths);
reg_deaths = xcalloc (sizeof (*reg_deaths), max_regno);
/* Recalculate the register space, in case it has grown. Old style
@@ -1845,14 +1838,13 @@ init_propagate_block_info (basic_block bb, regset live, regset local_set,
bb_false = bb_true;
bb_true = t;
}
- else if (! (bb->succ->succ_next->flags & EDGE_FALLTHRU))
- abort ();
+ else
+ gcc_assert (bb->succ->succ_next->flags & EDGE_FALLTHRU);
}
else
{
/* This can happen with a conditional jump to the next insn. */
- if (JUMP_LABEL (BB_END (bb)) != BB_HEAD (bb_true))
- abort ();
+ gcc_assert (JUMP_LABEL (BB_END (bb)) == BB_HEAD (bb_true));
/* Simplest way to do nothing. */
bb_false = bb_true;
@@ -2468,8 +2460,7 @@ mark_set_regs (struct propagate_block_info *pbi, rtx x, rtx insn)
switch (code = GET_CODE (sub))
{
case COND_EXEC:
- if (cond != NULL_RTX)
- abort ();
+ gcc_assert (!cond);
cond = COND_EXEC_TEST (sub);
sub = COND_EXEC_CODE (sub);
@@ -2958,8 +2949,8 @@ flush_reg_cond_reg_1 (splay_tree_node node, void *data)
xdata[1] = node->key;
return -1;
}
- else if (rcli->condition == const1_rtx)
- abort ();
+ else
+ gcc_assert (rcli->condition != const1_rtx);
return 0;
}
@@ -3073,7 +3064,7 @@ ior_reg_cond (rtx old, rtx x, int add)
return gen_rtx_IOR (0, old, x);
default:
- abort ();
+ gcc_unreachable ();
}
}
@@ -3089,8 +3080,7 @@ not_reg_cond (rtx x)
if (COMPARISON_P (x)
&& REG_P (XEXP (x, 0)))
{
- if (XEXP (x, 1) != const0_rtx)
- abort ();
+ gcc_assert (XEXP (x, 1) == const0_rtx);
return gen_rtx_fmt_ee (reversed_comparison_code (x, NULL),
VOIDmode, XEXP (x, 0), const0_rtx);
@@ -3182,7 +3172,7 @@ and_reg_cond (rtx old, rtx x, int add)
return gen_rtx_AND (0, old, x);
default:
- abort ();
+ gcc_unreachable ();
}
}
@@ -3242,7 +3232,7 @@ elim_reg_cond (rtx x, unsigned int regno)
return x;
default:
- abort ();
+ gcc_unreachable ();
}
}
#endif /* HAVE_conditional_execution */
@@ -3264,6 +3254,7 @@ attempt_auto_inc (struct propagate_block_info *pbi, rtx inc, rtx insn,
rtx q = SET_DEST (set);
rtx y = SET_SRC (set);
int opnum = XEXP (y, 0) == incr_reg ? 0 : 1;
+ int changed;
/* Make sure this reg appears only once in this insn. */
if (count_occurrences (PATTERN (insn), incr_reg, 1) != 1)
@@ -3363,8 +3354,8 @@ attempt_auto_inc (struct propagate_block_info *pbi, rtx inc, rtx insn,
/* Modify the old increment-insn to simply copy
the already-incremented value of our register. */
- if (! validate_change (incr, &SET_SRC (set), incr_reg, 0))
- abort ();
+ changed = validate_change (incr, &SET_SRC (set), incr_reg, 0);
+ gcc_assert (changed);
/* If that makes it a no-op (copying the register into itself) delete
it so it won't appear to be a "use" and a "set" of this
@@ -3570,10 +3561,7 @@ mark_used_reg (struct propagate_block_info *pbi, rtx reg,
for (i = regno_first; i <= regno_last; ++i)
if (! REGNO_REG_SET_P (pbi->reg_live, i))
{
-#ifdef ENABLE_CHECKING
- if (reg_deaths[i])
- abort ();
-#endif
+ gcc_assert (!reg_deaths[i]);
reg_deaths[i] = pbi->insn_num;
}
}
@@ -3925,8 +3913,7 @@ mark_used_regs (struct propagate_block_info *pbi, rtx x, rtx cond, rtx insn)
}
case COND_EXEC:
- if (cond != NULL_RTX)
- abort ();
+ gcc_assert (!cond);
mark_used_regs (pbi, COND_EXEC_TEST (x), NULL_RTX, insn);