aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDiego Novillo <dnovillo@cygnus.com>1999-11-02 14:41:16 +0000
committerDiego Novillo <dnovillo@gcc.gnu.org>1999-11-02 09:41:16 -0500
commit96e9c98d59cc40bbb51480fb408fb63919fc55c7 (patch)
tree94345228dcacfa02d4973a3b74e9be4da8c30b14 /gcc
parentdf548dfc027a72a8bb296155fdddea513b31241b (diff)
downloadgcc-96e9c98d59cc40bbb51480fb408fb63919fc55c7.zip
gcc-96e9c98d59cc40bbb51480fb408fb63919fc55c7.tar.gz
gcc-96e9c98d59cc40bbb51480fb408fb63919fc55c7.tar.bz2
resource.c (mark_target_live_regs): For unconditional branches...
* resource.c (mark_target_live_regs): For unconditional branches, the resources found at the branch target should be added to the resources found so far, not intersected. From-SVN: r30349
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/resource.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d72f92b..66678f2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -70,6 +70,12 @@ Mon Nov 1 08:03:15 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* regclass.c (record_reg_classes): In matching case, recompute
costs since the direction of movement is different.
+Sun Oct 31 21:59:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
+
+ * resource.c (mark_target_live_regs): For unconditional branches,
+ the resources found at the branch target should be added to the
+ resources found so far, not intersected.
+
Sun Oct 31 15:48:49 1999 Philippe De Muyter <phdm@macqel.be>
* fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
diff --git a/gcc/resource.c b/gcc/resource.c
index 1dc830f..b857312 100644
--- a/gcc/resource.c
+++ b/gcc/resource.c
@@ -1030,8 +1030,8 @@ mark_target_live_regs (insns, target, res)
/* If we hit an unconditional branch, we have another way of finding out
what is live: we can see what is live at the branch target and include
- anything used but not set before the branch. The only things that are
- live are those that are live using the above test and the test below. */
+ anything used but not set before the branch. We add the live
+ resources found using the test below to those found until now. */
if (jump_insn)
{
@@ -1055,7 +1055,7 @@ mark_target_live_regs (insns, target, res)
mark_set_resources (insn, &set, 0, 1);
}
- AND_HARD_REG_SET (res->regs, new_resources.regs);
+ IOR_HARD_REG_SET (res->regs, new_resources.regs);
}
if (tinfo != NULL)