Change the RAGreedy register assignment order so large live ranges are allocated...
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 22 Feb 2011 23:01:52 +0000 (23:01 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 22 Feb 2011 23:01:52 +0000 (23:01 +0000)
commit98d9648de7d571b2e6d139b65961a70d1833b0d7
treef48577311d98fe78b4eca6fa2498a89d5ad9eb07
parent75b5409d3a9eb9b7dadcd13fff69590df94122dd
Change the RAGreedy register assignment order so large live ranges are allocated first.

This is based on the observation that long live ranges are more difficult to
allocate, so there is a better chance of solving the puzzle by handling the big
pieces first. The allocator will evict and split long alive ranges when they get
in the way.

RABasic is still using spill weights for its priority queue, so the interface to
the queue has been virtualized.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126259 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegAllocBase.h
lib/CodeGen/RegAllocBasic.cpp
lib/CodeGen/RegAllocGreedy.cpp