diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-12-07 22:38:24 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-12-07 22:38:24 +0000 |
commit | a1e9470d25d95b4bb5ae255e7e7697dc5bbfe841 (patch) | |
tree | 67ea70a71f5deccf9a008f1f761972d95862648a /gcc/local-alloc.c | |
parent | f75dc4dee9e1f11883c3912527220c4043d0e688 (diff) | |
download | gcc-a1e9470d25d95b4bb5ae255e7e7697dc5bbfe841.tar.gz |
* 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...
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@24171 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/local-alloc.c')
-rw-r--r-- | gcc/local-alloc.c | 9 |
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) |