Add early coalescing to liveintervals. This is work in progress and is known to misco...
authorEvan Cheng <evan.cheng@apple.com>
Mon, 14 Sep 2009 21:33:42 +0000 (21:33 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Mon, 14 Sep 2009 21:33:42 +0000 (21:33 +0000)
commit752195e3c662c6b5db042cf897c984624720f3b8
tree826b0ce459f071c6f3c294554662017ab8861a67
parent43488710a8dc76b39f9f3b628c2fdd5d34aa0dbb
Add early coalescing to liveintervals. This is work in progress and is known to miscompute some tests. Read it at your own rish, I have aged 10 year while writing this.

The gist of this is if source of some of the copies that feed into a phi join is defined by the phi join, we'd like to eliminate them. However, if any of the non-identity source overlaps the live interval of the phi join then the coalescer won't be able to coalesce them. The early coalescer's job is to eliminate the identity copies by partially-coalescing the two live intervals.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81796 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/LiveInterval.h
include/llvm/CodeGen/LiveIntervalAnalysis.h
lib/CodeGen/LiveIntervalAnalysis.cpp