llvm-6502/test
Diego Novillo 32d9020423 Remove 4,096 loop scale limitation.
Summary:
This is part 1 of fixes to address the problems described in
https://llvm.org/bugs/show_bug.cgi?id=22719.

The restriction to limit loop scales to 4,096 does not really prevent
overflows anymore, as the underlying algorithm has changed and does
not seem to suffer from this problem.

Additionally, artificially restricting loop scales to such a low number
skews frequency information, making loops of equal hotness appear to
have very different hotness properties.

The only loops that are artificially restricted to a scale of 4096 are
infinite loops (those loops with an exit mass of 0). This prevents
infinite loops from skewing the frequencies of other regions in the CFG.

At the end of propagation, frequencies are scaled to values that take no
more than 64 bits to represent. When the range of frequencies to be
represented fits within 61 bits, it pushes up the scaling factor to a
minimum of 8 to better distinguish small frequency values. Otherwise,
small frequency values are all saturated down at 1.

Tested on x86_64.

Reviewers: dexonsmith

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D8718

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233826 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-01 17:42:27 +00:00
..
Analysis Remove 4,096 loop scale limitation. 2015-04-01 17:42:27 +00:00
Assembler Verifier: Move more debug info checks away from Verify() 2015-03-31 01:28:22 +00:00
Bindings
Bitcode
BugPoint bugpoint: Verify input files 2015-03-26 05:03:10 +00:00
CodeGen Fix WinEHPrepare bug with multiple catch handlers 2015-04-01 17:21:25 +00:00
DebugInfo DebugInfo: Fix testcases with invalid MDSubprogram nodes 2015-03-28 02:26:45 +00:00
ExecutionEngine [Orc][MCJIT] Remove the small code model regression tests. 2015-03-31 18:19:25 +00:00
Feature
FileCheck
Instrumentation DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
Integer
JitListener
Linker tools: Unify how verifyModule() is called 2015-03-31 03:07:23 +00:00
LTO
MC [ARM] Rename v8.1a from "extension" to "architecture" 2015-04-01 14:54:56 +00:00
Object
Other
SymbolRewriter
TableGen
tools [Objdump] Pass the correct subtarget to printInst. 2015-03-28 20:44:05 +00:00
Transforms [SimplifyLibCalls] Ignore nobuiltin/unavailable fortified libcalls. 2015-04-01 00:45:09 +00:00
Unit
Verifier Verifier: Add a testcase for verifying type refs 2015-03-31 20:57:56 +00:00
YAMLParser
.clang-format
CMakeLists.txt test: Fix the dependencies for the check-llvm-* targets 2015-03-25 08:07:47 +00:00
lit.cfg Tell lit.cfg about more Windows triples. 2015-03-20 22:08:40 +00:00
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh