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)
commit55daed27b7aec4a77f64e372b7f0d993ab4caaba
treeceed488413ae69724aff0d6ff0eb9d8681c47939
parentfab01e5cea36143eb7d522b05fc50292179399b9
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.

llvm-svn: 185393
llvm/include/llvm/Support/BlockFrequency.h
llvm/lib/CodeGen/SpillPlacement.cpp
llvm/lib/CodeGen/SpillPlacement.h