diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-07-02 01:37:09 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-07-02 01:37:09 +0000 |
commit | 1a988004dba412deb5d6b8e93b955dfc837065f0 (patch) | |
tree | 1b86867cb96142999ffac195d5e31cf00ffe286e /lib/CodeGen/MachineInstr.cpp | |
parent | 2416b8962105078594d70cdd16cc6cb45b332e02 (diff) |
Use a new strategy for preventing eviction loops in RAGreedy.
Every live range is assigned a cascade number the first time it is
involved in an eviction. As the evictor, it gets a new cascade number.
Every evictee is assigned the same cascade number as the evictor.
Eviction is prohibited if the evictor has a lower assigned cascade
number than the evictee.
This means that assigned cascade numbers are monotonically increasing
with every eviction, yet they are bounded by NextCascade which can only
be incremented by new live ranges. Thus, infinite loops cannot happen,
but eviction cascades can still be triggered by new live ranges as we
want.
Thanks to Andy for explaining this to me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134303 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/MachineInstr.cpp')
0 files changed, 0 insertions, 0 deletions