llvm-project/llvm/lib
Dehao Chen 769219b11a Revive http://reviews.llvm.org/D12778 to handle forward-hot-prob and backward-hot-prob consistently.
Summary:
Consider the following diamond CFG:

 A
/ \
B C
 \/
 D

Suppose A->B and A->C have probabilities 81% and 19%. In block-placement, A->B is called a hot edge and the final placement should be ABDC. However, the current implementation outputs ABCD. This is because when choosing the next block of B, it checks if Freq(C->D) > Freq(B->D) * 20%, which is true (if Freq(A) = 100, then Freq(B->D) = 81, Freq(C->D) = 19, and 19 > 81*20%=16.2). Actually, we should use 25% instead of 20% as the probability here, so that we have 19 < 81*25%=20.25, and the desired ABDC layout will be generated.

Reviewers: djasper, davidxl

Subscribers: llvm-commits

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

llvm-svn: 272203
2016-06-08 21:30:12 +00:00
..
Analysis [PM] Refector LoopAccessInfo analysis code 2016-06-08 20:15:37 +00:00
AsmParser [DebugInfo] Add calling convention support for DWARF and CodeView 2016-06-08 20:34:29 +00:00
Bitcode [DebugInfo] Add calling convention support for DWARF and CodeView 2016-06-08 20:34:29 +00:00
CodeGen Revive http://reviews.llvm.org/D12778 to handle forward-hot-prob and backward-hot-prob consistently. 2016-06-08 21:30:12 +00:00
DebugInfo Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
ExecutionEngine Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
Fuzzer [libFuzzer] add 'weak' back to __sanitizer_malloc_hook and __sanitizer_free_hook 2016-06-08 04:49:29 +00:00
IR [DebugInfo] Add calling convention support for DWARF and CodeView 2016-06-08 20:34:29 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LTO Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
LibDriver LibDriver: Silently do nothing when provided no inputs. 2016-04-13 19:36:04 +00:00
LineEditor Fix Clang-tidy modernize-deprecated-headers warnings in some files; other minor fixes. 2016-03-28 17:40:08 +00:00
Linker Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
MC Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
Object [Symbolize] Check if the PE file has a PDB and emit an error if we can't load it 2016-06-03 20:25:09 +00:00
ObjectYAML [obj2yaml] [yaml2obj] Support for MachO nlist and string table 2016-06-02 22:54:06 +00:00
Option Option parser: class for consuming a joined arg in addition to all remaining args 2016-04-15 00:23:30 +00:00
Passes [PM] Port IndVarSimplify to the new pass manager 2016-06-05 18:01:19 +00:00
ProfileData Change llvm-objdump, llvm-nm and llvm-size when reporting an object file error 2016-05-31 20:35:34 +00:00
Support [DebugInfo] Add calling convention support for DWARF and CodeView 2016-06-08 20:34:29 +00:00
TableGen Avoid copies of std::strings and APInt/APFloats where we only read from it 2016-06-08 10:01:20 +00:00
Target Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
Transforms [InstCombine] move fold of select of add/sub to helper function; NFCI 2016-06-08 21:10:01 +00:00
CMakeLists.txt Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
LLVMBuild.txt Add LLVMBuild for ObjectYAML. 2016-03-01 21:29:33 +00:00