summaryrefslogtreecommitdiff
path: root/gcc/local-alloc.c
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1998-12-07 15:38:24 -0700
committerJeff Law <law@gcc.gnu.org>1998-12-07 15:38:24 -0700
commit996e968353f5b91cf8b7487998783ccba61de0d8 (patch)
tree67ea70a71f5deccf9a008f1f761972d95862648a /gcc/local-alloc.c
parent70d5ccef064325bcab1d3fbc57a6fef9aee2a096 (diff)
downloadgcc-996e968353f5b91cf8b7487998783ccba61de0d8.tar.gz
local-alloc.c (block_alloc): Slightly retune heuristic to widen qty lifetimes.
* local-alloc.c (block_alloc): Slightly retune heuristic to widen qty lifetimes. Actually check in the local-alloc patch that goes along with this ChangeLog entry... From-SVN: r24171
Diffstat (limited to 'gcc/local-alloc.c')
-rw-r--r--gcc/local-alloc.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c
index f112713b284..f7d12d2e1e0 100644
--- a/gcc/local-alloc.c
+++ b/gcc/local-alloc.c
@@ -1414,8 +1414,8 @@ block_alloc (b)
discourage the register allocator from creating false
dependencies.
- The adjustment by the value +-3 indicates precisely that
- this qty conflicts with qtys in the instructions immediately
+ The adjustment value is choosen to indicate that this qty
+ conflicts with all the qtys in the instructions immediately
before and after the lifetime of this qty.
Experiments have shown that higher values tend to hurt
@@ -1423,8 +1423,9 @@ block_alloc (b)
If allocation using the extended lifetime fails we will try
again with the qty's unadjusted lifetime. */
- int fake_birth = MAX (0, qty_birth[q] - 3);
- int fake_death = MIN (insn_number * 2 + 1, qty_death[q] + 3);
+ int fake_birth = MAX (0, qty_birth[q] - 2 + qty_birth[q] % 2);
+ int fake_death = MIN (insn_number * 2 + 1,
+ qty_death[q] + 2 - qty_death[q] % 2);
#endif
if (N_REG_CLASSES > 1)