llvm/bolt
Bill Nell 861d5a1586 BOLT: Remove double jumps peephole.
Summary:
Replace jumps to other unconditional jumps with the final
destination, e.g.

  B0: ...
      jmp B1  (or jcc B1)

  B1: jmp B2

  ->

  B0: ...
      jmp B2  (or jcc B1)

This peephole removes 8928 double jumps from a test binary.

Note: after filtering out double jumps found in EH code and infinite
loops, the number of double jumps patched is 49 (24 for a clang
compiled test).  The 24 in the clang build are all from external
libraries which have probably been compiled with gcc.  This peephole
is still useful for cleaning up after ICP though.

(cherry picked from FBD3815420)
2016-09-02 18:09:07 -07:00
..
merge-fdata perf2bolt can extract branch records with histories 2016-06-21 18:44:42 -07:00
BinaryBasicBlock.cpp BOLT: Remove double jumps peephole. 2016-09-02 18:09:07 -07:00
BinaryBasicBlock.h BOLT: Remove double jumps peephole. 2016-09-02 18:09:07 -07:00
BinaryContext.cpp Rewrite SCTC pass to do UCE and make it the last optimization pass. 2016-09-08 14:52:26 -07:00
BinaryContext.h Inlining fixes/enhancements 2016-09-02 11:58:53 -07:00
BinaryFunction.cpp Use BB.getNumNonPseudos() in more places. 2016-09-09 14:42:35 -07:00
BinaryFunction.h BOLT: Add per pass dyno stats + factor out post pass printing. 2016-09-09 12:37:37 -07:00
BinaryLoop.h Loop detection for BOLT's CFG. 2016-05-26 10:58:01 -07:00
BinaryPasses.cpp BOLT: Remove double jumps peephole. 2016-09-02 18:09:07 -07:00
BinaryPasses.h BOLT: Remove double jumps peephole. 2016-09-02 18:09:07 -07:00
BinaryPassManager.cpp BOLT: Remove double jumps peephole. 2016-09-02 18:09:07 -07:00
BinaryPassManager.h BOLT: Add per pass dyno stats + factor out post pass printing. 2016-09-09 12:37:37 -07:00
CMakeLists.txt Refactoring of the reordering algorithms 2016-06-16 18:47:57 -07:00
DataReader.cpp Fix for correct disassembling of conditional tail calls. 2016-07-13 18:57:40 -07:00
DataReader.h Fix for correct disassembling of conditional tail calls. 2016-07-13 18:57:40 -07:00
DebugData.cpp Add verbosity level and clean up stream usage. 2016-09-02 14:15:29 -07:00
DebugData.h More refactoring work. 2016-08-11 14:23:54 -07:00
DWARFRewriter.cpp Add verbosity level and clean up stream usage. 2016-09-02 14:15:29 -07:00
Exceptions.cpp Add dyno stats to BOLT. 2016-08-29 21:11:22 -07:00
Exceptions.h Check function data in symbol table against data in .eh_frame. 2016-03-11 11:09:34 -08:00
llvm-bolt.cpp Tool to merge .fdata files. 2016-04-08 12:18:06 -07:00
LLVMBuild.txt Tool to merge .fdata files. 2016-04-08 12:18:06 -07:00
README.md BOLT root commit 2022-01-10 17:58:05 -08:00
ReorderAlgorithm.cpp Use BB.getNumNonPseudos() in more places. 2016-09-09 14:42:35 -07:00
ReorderAlgorithm.h Compute ClusterEdges only when necessary. 2016-08-15 15:37:00 -07:00
RewriteInstance.cpp BOLT: Add per pass dyno stats + factor out post pass printing. 2016-09-09 12:37:37 -07:00
RewriteInstance.h BOLT: Add per pass dyno stats + factor out post pass printing. 2016-09-09 12:37:37 -07:00