diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-04-12 07:52:05 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-04-12 07:52:05 +0000 |
commit | f3cb52fc298256b40ac29a4ed315eedda710f9aa (patch) | |
tree | 30d336ac36e5d65e0f68d3dc7b5ef3da92af21cd /gcc/flow.c | |
parent | c69bb58b20cc4f58879198bb2bd386354ae61e71 (diff) | |
download | gcc-f3cb52fc298256b40ac29a4ed315eedda710f9aa.tar.gz |
PR bootstrap/4191
* config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
* flow.c (mark_used_reg): Manage reg_cond_dead properly for
modes spanning multiple hard regs.
* recog.c (peephole2_optimize): Rebuild jump labels as needed.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52205 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/gcc/flow.c b/gcc/flow.c index 332d5434f68..627c28550fe 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -3610,6 +3610,10 @@ mark_used_reg (pbi, reg, cond, insn) /* Mark the register as being live. */ for (i = regno_first; i <= regno_last; ++i) { +#ifdef HAVE_conditional_execution + int this_was_live = REGNO_REG_SET_P (pbi->reg_live, i); +#endif + SET_REGNO_REG_SET (pbi->reg_live, i); #ifdef HAVE_conditional_execution @@ -3621,7 +3625,7 @@ mark_used_reg (pbi, reg, cond, insn) struct reg_cond_life_info *rcli; rtx ncond; - if (some_was_live) + if (this_was_live) { node = splay_tree_lookup (pbi->reg_cond_dead, i); if (node == NULL) @@ -3663,7 +3667,7 @@ mark_used_reg (pbi, reg, cond, insn) SET_REGNO_REG_SET (pbi->reg_cond_reg, REGNO (XEXP (cond, 0))); } } - else if (some_was_live) + else if (this_was_live) { /* The register may have been conditionally live previously, but is now unconditionally live. Remove it from the conditionally |