aboutsummaryrefslogtreecommitdiff
path: root/gcc/haifa-sched.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>2000-04-30 03:37:57 -0700
committerRichard Henderson <rth@gcc.gnu.org>2000-04-30 03:37:57 -0700
commit11ae508b7aa80d26c14bcf41c0ad8d7043ee378c (patch)
treef5871199a09d8a91181fbb5304bf0a54b10242a2 /gcc/haifa-sched.c
parent614f6bc1640585bfc0add375a0064b90344f0966 (diff)
downloadgcc-11ae508b7aa80d26c14bcf41c0ad8d7043ee378c.zip
gcc-11ae508b7aa80d26c14bcf41c0ad8d7043ee378c.tar.gz
gcc-11ae508b7aa80d26c14bcf41c0ad8d7043ee378c.tar.bz2
flow.c (struct reg_cond_life_info): New.
* flow.c (struct reg_cond_life_info): New. (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg. (init_propagate_block_info): Initialize them. (free_propagate_block_info): Destruct them. (mark_set_1): Consider conditional life before killing a register. (mark_regno_cond_dead): New. (free_reg_cond_life_info): New. (flush_reg_cond_reg_1, flush_reg_cond_reg): New. (ior_reg_cond, not_reg_cond, nand_reg_cond): New. (mark_used_reg): Record conditional life. * haifa-sched.c (schedule_insns): Disable death counting sanity check for HAVE_conditional_execution. From-SVN: r33544
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r--gcc/haifa-sched.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 3feecdd..83d85fd 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -7019,10 +7019,15 @@ schedule_insns (dump_file)
(reload_completed ? PROP_DEATH_NOTES
: PROP_DEATH_NOTES | PROP_REG_INFO));
+#ifndef HAVE_conditional_execution
+ /* ??? REG_DEAD notes only exist for unconditional deaths. We need
+ a count of the conditional plus unconditional deaths for this to
+ work out. */
/* In the single block case, the count of registers that died should
not have changed during the schedule. */
if (count_or_remove_death_notes (blocks, 0) != deaths_in_region[rgn])
- abort ();
+ abort ();
+#endif
}
if (any_large_regions)