Remove floating point computations form SpillPlacement.cpp.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 1 Jul 2013 23:19:39 +0000 (23:19 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Mon, 1 Jul 2013 23:19:39 +0000 (23:19 +0000)
commit74d2a3e1a014b93e9037a7b04e85dc92bfb54fa7
tree4f02bba5c303c60c83a17659cd196e2ec8f9f8eb
parenta785a7bf51726d3fbfb907beb3112eed6b850a3c
Remove floating point computations form SpillPlacement.cpp.

Patch by Benjamin Kramer!

Use the BlockFrequency class instead of floats in the Hopfield network
computations. This rescales the node Bias field from a [-2;2] float
range to two block frequencies BiasN and BiasP pulling in opposite
directions. This construct has a more predictable behavior when block
frequencies saturate.

The per-node scaling factors are no longer necessary, assuming the block
frequencies around a bundle are consistent.

This patch can cause the register allocator to make different spilling
decisions. The differences should be small.

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