From: Richard Earnshaw Date: Mon, 29 May 2000 22:37:37 +0000 (+0000) Subject: flow.c (mark_used_reg): If a register is unconditionally live, remove any conditional... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6a3dbe6543fe3d23a1936c3867e9980eec075c15;p=gcc.git flow.c (mark_used_reg): If a register is unconditionally live, remove any conditional death information. * flow.c (mark_used_reg): If a register is unconditionally live, remove any conditional death information. From-SVN: r34259 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 76bf6411c42..3fc27462251 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-05-29 Richard Earnshaw (rearnsha@arm.com) + + * flow.c (mark_used_reg): If a register is unconditionally live, + remove any conditional death information. + 2000-05-29 Richard Henderson * final.c (current_output_insn): New. diff --git a/gcc/flow.c b/gcc/flow.c index 936240d79ce..03e188caa93 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -5120,6 +5120,24 @@ mark_used_reg (pbi, reg, cond, insn) (splay_tree_value) rcli); } } + else if (some_was_live) + { + splay_tree_node node; + struct reg_cond_life_info *rcli; + + node = splay_tree_lookup (pbi->reg_cond_dead, regno); + if (node != NULL) + { + /* The register was conditionally live previously, but is now + unconditionally so. Remove it from the conditionally dead + list, so that a conditional set won't cause us to think + it dead. */ + rcli = (struct reg_cond_life_info *) node->value; + rcli->condition = NULL_RTX; + splay_tree_remove (pbi->reg_cond_dead, regno); + } + } + #endif }