diff options
author | Richard Henderson <rth@cygnus.com> | 2000-04-30 03:37:57 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-04-30 03:37:57 -0700 |
commit | 11ae508b7aa80d26c14bcf41c0ad8d7043ee378c (patch) | |
tree | f5871199a09d8a91181fbb5304bf0a54b10242a2 /gcc/haifa-sched.c | |
parent | 614f6bc1640585bfc0add375a0064b90344f0966 (diff) | |
download | gcc-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.c | 7 |
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) |