aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2013-07-01 23:19:39 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2013-07-01 23:19:39 +0000
commit74d2a3e1a014b93e9037a7b04e85dc92bfb54fa7 (patch)
tree4f02bba5c303c60c83a17659cd196e2ec8f9f8eb /include
parenta785a7bf51726d3fbfb907beb3112eed6b850a3c (diff)
downloadexternal_llvm-74d2a3e1a014b93e9037a7b04e85dc92bfb54fa7.zip
external_llvm-74d2a3e1a014b93e9037a7b04e85dc92bfb54fa7.tar.gz
external_llvm-74d2a3e1a014b93e9037a7b04e85dc92bfb54fa7.tar.bz2
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
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Support/BlockFrequency.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/llvm/Support/BlockFrequency.h b/include/llvm/Support/BlockFrequency.h
index 147d52a..624d6de 100644
--- a/include/llvm/Support/BlockFrequency.h
+++ b/include/llvm/Support/BlockFrequency.h
@@ -36,6 +36,9 @@ public:
/// \brief Returns the frequency of the entry block of the function.
static uint64_t getEntryFrequency() { return ENTRY_FREQ; }
+ /// \brief Returns the maximum possible prequency, the saturation value.
+ static uint64_t getMaxFrequency() { return -1ULL; }
+
/// \brief Returns the frequency as a fixpoint number scaled by the entry
/// frequency.
uint64_t getFrequency() const { return Frequency; }