Build the Hopfield network incrementally when splitting global live ranges.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Sat, 9 Apr 2011 02:59:09 +0000 (02:59 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Sat, 9 Apr 2011 02:59:09 +0000 (02:59 +0000)
commitf4afdfc501b7185d24a0ef184fe3d0c0bbe22e0c
tree747bfe34dc34c5b0b58ac11b3160422da5e7782b
parent9d29cbad32814f31c91cd2464a3c74df412b0aac
Build the Hopfield network incrementally when splitting global live ranges.

It is common for large live ranges to have few basic blocks with register uses
and many live-through blocks without any uses. This approach grows the Hopfield
network incrementally around the use blocks, completely avoiding checking
interference for some through blocks.

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