1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 11:02:59 +02:00
llvm-mirror/test/DebugInfo/COFF
Dehao Chen 65848e30b4 Using branch probability to guide critical edge splitting.
Summary:
The original heuristic to break critical edge during machine sink is relatively conservertive: when there is only one instruction sinkable to the critical edge, it is likely that the machine sink pass will not break the critical edge. This leads to many speculative instructions executed at runtime. However, with profile info, we could model the splitting benefits: if the critical edge has 50% taken rate, it would always be beneficial to split the critical edge to avoid the speculated runtime instructions. This patch uses profile to guide critical edge splitting in machine sink pass.

The performance impact on speccpu2006 on Intel sandybridge machines:

spec/2006/fp/C++/444.namd                  25.3  +0.26%
spec/2006/fp/C++/447.dealII               45.96  -0.10%
spec/2006/fp/C++/450.soplex               41.97  +1.49%
spec/2006/fp/C++/453.povray               36.83  -0.96%
spec/2006/fp/C/433.milc                   23.81  +0.32%
spec/2006/fp/C/470.lbm                    41.17  +0.34%
spec/2006/fp/C/482.sphinx3                48.13  +0.69%
spec/2006/int/C++/471.omnetpp             22.45  +3.25%
spec/2006/int/C++/473.astar               21.35  -2.06%
spec/2006/int/C++/483.xalancbmk           36.02  -2.39%
spec/2006/int/C/400.perlbench              33.7  -0.17%
spec/2006/int/C/401.bzip2                  22.9  +0.52%
spec/2006/int/C/403.gcc                   32.42  -0.54%
spec/2006/int/C/429.mcf                   39.59  +0.19%
spec/2006/int/C/445.gobmk                 26.98  -0.00%
spec/2006/int/C/456.hmmer                 24.52  -0.18%
spec/2006/int/C/458.sjeng                 28.26  +0.02%
spec/2006/int/C/462.libquantum            55.44  +3.74%
spec/2006/int/C/464.h264ref               46.67  -0.39%

geometric mean                                   +0.20%

Manually checked 473 and 471 to verify the diff is in the noise range.

Reviewers: rengolin, davidxl

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D24818

llvm-svn: 284757
2016-10-20 18:06:52 +00:00
..
anonymous-struct.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
asan-module-ctor.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
asan-module-without-functions.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
asm.ll Emit S_COMPILE3 CodeView record 2016-09-20 17:20:51 +00:00
big-type.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
bitfields.ll DebugInfo: preparation to implement DW_AT_alignment 2016-10-20 00:13:12 +00:00
comdat.ll [codeview] Use comdats for debug info describing comdat functions 2016-05-25 23:16:12 +00:00
cpp-mangling.ll [codeview] Make function names more consistent with MSVC 2016-06-17 16:11:20 +00:00
defer-complete-type.ll [codeview] Write LF_UDT_SRC_LINE records (PR28251) 2016-06-22 21:22:13 +00:00
enum.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
fp-stack.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
global-dllimport.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
globals-discarded.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
globals.ll Emit S_COMPILE3 CodeView record 2016-09-20 17:20:51 +00:00
inheritance.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
inlining-files.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
inlining-header.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
inlining-levels.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
inlining-padding.ll Modify emitTypeInformation to use MemoryTypeTableBuilder, take 2 2016-05-23 20:23:46 +00:00
inlining-same-name.ll [CodeView] Don't crash on functions without subprograms 2016-07-28 05:03:22 +00:00
inlining.ll [X86] Optimization for replacing LEA with MOV at frame index elimination time 2016-09-26 06:42:07 +00:00
int8-char-type.ll [codeview] Use character types for all byte-sized integer types 2016-09-29 17:55:01 +00:00
lit.local.cfg Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
local-constant.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
local-variable-gap.ll [codeview] Optimize the size of defranges with gaps 2016-09-15 22:05:08 +00:00
local-variables.ll [codeview] Add new directives to record inlined call site line info 2016-09-07 16:15:31 +00:00
long-name.ll [codeview] Truncate records to maximum record size near 64KB 2016-10-05 22:36:07 +00:00
long-type-name.ll Truncate long names in type records 2016-10-13 17:33:22 +00:00
multifile.ll Emit S_COMPILE3 CodeView record 2016-09-20 17:20:51 +00:00
multifunction.ll Emit S_COMPILE3 CodeView record 2016-09-20 17:20:51 +00:00
parameter-order.ll [codeview] Emit parameter variables in the right order 2016-06-24 17:55:40 +00:00
pieces.ll Using branch probability to guide critical edge splitting. 2016-10-20 18:06:52 +00:00
pr28747.ll [CodeView] Don't crash on functions without subprograms 2016-07-28 05:03:22 +00:00
register-variables.ll Teach LiveDebugValues about lexical scopes. 2016-09-28 17:51:14 +00:00
retained-types.ll [codeview] Fix letter casing in FileCheck regexes 2016-06-23 18:23:28 +00:00
scopes.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
simple.ll Emit S_COMPILE3 CodeView record 2016-09-20 17:20:51 +00:00
tail-call-without-lexical-scopes.ll [PR27284] Reverse the ownership between DICompileUnit and DISubprogram. 2016-04-15 15:57:41 +00:00
typedef.ll Emit S_COMPILE3 CodeView record 2016-09-20 17:20:51 +00:00
types-array-advanced.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
types-array.ll Emit S_COMPILE3 CodeView record 2016-09-20 17:20:51 +00:00
types-basic.ll [codeview] Emit parameter variables in the right order 2016-06-24 17:55:40 +00:00
types-calling-conv.ll [codeview] Write LF_UDT_SRC_LINE records (PR28251) 2016-06-22 21:22:13 +00:00
types-data-members.ll [codeview] Emit vtable shape information 2016-08-31 15:59:30 +00:00
types-nested-class.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
types-non-virtual-methods.ll [codeview] Write LF_UDT_SRC_LINE records (PR28251) 2016-06-22 21:22:13 +00:00
types-ptr-to-member.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
types-recursive-struct.ll [codeview] Write LF_UDT_SRC_LINE records (PR28251) 2016-06-22 21:22:13 +00:00
udts.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
vftables.ll [codeview] Emit vtable shape information 2016-08-31 15:59:30 +00:00
virtual-method-kinds.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
virtual-methods.ll Resubmit "Write the TPI stream from a PDB to Yaml." 2016-08-18 16:49:29 +00:00
vtable-optzn-array.ll DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00