[RAGreedy] Add an experimental deferred spilling feature.
authorQuentin Colombet <qcolombet@apple.com>
Fri, 17 Jul 2015 23:04:06 +0000 (23:04 +0000)
committerQuentin Colombet <qcolombet@apple.com>
Fri, 17 Jul 2015 23:04:06 +0000 (23:04 +0000)
commit3df507cbfa0ac28f36cf845fb4cdfa183131ed61
tree97c2ba20b4862c1e75babbe636d8524e78ebf222
parent310bd3c747d30b84edeb2d465ff1182e04b62976
[RAGreedy] Add an experimental deferred spilling feature.

The idea of deferred spilling is to delay the insertion of spill code until the
very end of the allocation. A "candidate" to spill variable might not required
to be spilled because of other evictions that happened after this decision was
taken. The spirit is similar to the optimistic coloring strategy implemented in
Preston and Briggs graph coloring algorithm.

For now, this feature is highly experimental. Although correct, it would require
much more modification to properly model the effect of spilling.

Anyway, this early patch helps prototyping this feature.

Note: The test case cannot unfortunately be reduced and is probably fragile.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@242585 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/RegAllocGreedy.cpp
test/CodeGen/AArch64/aarch64-deferred-spilling.ll [new file with mode: 0644]