After splitting, the remaining LiveInterval may be fragmented into multiple
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 7 Oct 2010 23:34:34 +0000 (23:34 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Thu, 7 Oct 2010 23:34:34 +0000 (23:34 +0000)
commit0253df9a897ce541d56146699cedd79c464bda5e
tree802eafb089b3475275264113f2e771663c535294
parentc6897706b7c3796ac24535c9ea1449c0411f8c7a
After splitting, the remaining LiveInterval may be fragmented into multiple
connected components. These components should be allocated different virtual
registers because there is no reason for them to be allocated together.

Add the ConnectedVNInfoEqClasses class to calculate the connected components,
and move values to new LiveIntervals.

Use it from SplitKit::rewrite by creating new virtual registers for the
components.

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