Add option to join live intervals. Two intervals are joined if there
authorAlkis Evlogimenos <alkis@evlogimenos.com>
Thu, 22 Jan 2004 23:08:45 +0000 (23:08 +0000)
committerAlkis Evlogimenos <alkis@evlogimenos.com>
Thu, 22 Jan 2004 23:08:45 +0000 (23:08 +0000)
commite88280a4224730dcf8076e0d9a20973c5761fd06
tree810e24a7f07d85ebc93d7e3d090b753c47db5aad
parent8abff7945a326a9ca1e688273681c7c9ca6df6e3
Add option to join live intervals. Two intervals are joined if there
is a move between two registers, at least one of the registers is
virtual and the two live intervals do not overlap.

This results in about 40% reduction in intervals, 30% decrease in the
register allocators running time and a 20% increase in peephole
optimizations (mainly move eliminations).

The option can be enabled by passing -join-liveintervals where
appropriate.

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