Track register ages more accurately.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 15 Nov 2011 01:15:25 +0000 (01:15 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 15 Nov 2011 01:15:25 +0000 (01:15 +0000)
commit2947f730a96fc602ea008bba1929ae4f0638850a
tree066654bd1f2d231e440bb36289569955f798e000
parentd5c469ae1c8c701beb48256b45b8bb81aa70f29d
Track register ages more accurately.

Keep track of the last instruction to define each register individually
instead of per DomainValue.  This lets us track more accurately when a
register was last written.

Also track register ages across basic blocks.  When entering a new
basic block, use the least stale predecessor def as a worst case
estimate for register age.

The register age is used to arbitrate between conflicting domains. The
most recently defined register wins.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144601 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/ExecutionDepsFix.cpp