Give a small negative bias to giant edge bundles.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 21 May 2012 03:11:23 +0000 (03:11 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 21 May 2012 03:11:23 +0000 (03:11 +0000)
commit1dc12aa148f0ecb4135fa3e47e7a2ac81ceac394
tree5f17cff29841e3a114691b64a4659a416b5999d5
parent857ed2260403f2cbfe702e83da283b78e341707e
Give a small negative bias to giant edge bundles.

This helps compile time when the greedy register allocator splits live
ranges in giant functions. Without the bias, we would try to grow
regions through the giant edge bundles, usually to find out that the
region became too big and expensive.

If a live range has many uses in blocks near the giant bundle, the small
negative bias doesn't make a big difference, and we still consider
regions including the giant edge bundle.

Giant edge bundles are usually connected to landing pads or indirect
branches.

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