Add a limit to the heuristic that register allocates instructions in local order.
authorAndrew Trick <atrick@apple.com>
Wed, 26 Feb 2014 22:07:26 +0000 (22:07 +0000)
committerAndrew Trick <atrick@apple.com>
Wed, 26 Feb 2014 22:07:26 +0000 (22:07 +0000)
commiteaf8a32859c0c0d485907785bb6b4c1426ed42dd
tree2f6b58101ae1a7e48c69d24367827b4f51e00415
parent692c94c1c9b5642cecb8fc7b6fa5ce3145b70ff1
Add a limit to the heuristic that register allocates instructions in local order.

This handles pathological cases in which we see 2x increase in spill
code for large blocks (~50k instructions). I don't have a unit test
for this behavior.

Fixes rdar://16072279.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202304 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegAllocGreedy.cpp
test/CodeGen/X86/misched-matmul.ll