llvm-project/llvm/tools/bugpoint
Daniel Berlin 271ca40118 Make bugpoint transform conditional jumps into unconditional jumps.
Summary:
Add a pass to bugpoint to make it transform conditional jumps into unconditional jumps.

Often, bugpoint generates output that has large numbers of br undef jumps, where
one side is dead.

What is happening is two fold:
1. It never tries to just pick a direction for the jump, and just see what happens
<<<< this patch

2. SimplifyCFG no longer is a good match for bugpoint's usecase. It
does too much.
Even things in SimplifyCFG, like removeUnreachableBlocks, go to great
lengths to transform undefined behavior into  blocks and kill large
parts of the CFG.  This is great for regular code, not so much for
bugpoint, which often generates UB on purpose (store undef is a great
example).
<<<< a followup patch that is coming, to move simplifycfg into a
separate reduction pass, and move the existing reduceCrashingBlocks
pass to use simpleSimplifyCFG.

Both of these patches significantly reduce the size and complexity of bugpoint
generated testcases.

Reviewers: chandlerc, majnemer

Subscribers: llvm-commits

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

llvm-svn: 276884
2016-07-27 16:13:25 +00:00
..
BugDriver.cpp Change linkInModule to take a std::unique_ptr. 2015-12-16 23:16:33 +00:00
BugDriver.h [bugpoint] Delete a stale comment. 2016-06-29 03:02:01 +00:00
CMakeLists.txt [PM/AA] Remove the last relics of the separate IPA library from LLVM, 2015-08-18 17:51:53 +00:00
CrashDebugger.cpp Make bugpoint transform conditional jumps into unconditional jumps. 2016-07-27 16:13:25 +00:00
ExecutionDriver.cpp Apply most suggestions of clang-tidy's performance-unnecessary-value-param 2016-06-08 19:09:22 +00:00
ExtractFunction.cpp [bugpoint] Simplify code by moving exception to only caller 2016-06-29 00:26:21 +00:00
FindBugs.cpp
LLVMBuild.txt Wrap some long lines in LLVMBuild files. NFC 2015-06-12 18:44:57 +00:00
ListReducer.h bugpoint: make the number of trim iterations a compile-time constant 2015-07-26 15:18:45 +00:00
Miscompilation.cpp [bugpoint] Simplify code by moving exception to only caller 2016-06-29 00:26:21 +00:00
OptimizerDriver.cpp [bugpoint] Simplify code by moving exception to only caller 2016-06-29 00:26:21 +00:00
ToolRunner.cpp Apply clang-tidy's misc-move-constructor-init throughout LLVM. 2016-05-27 14:27:24 +00:00
ToolRunner.h [Bugpoint] Use 'CC' instead of 'GCC' for variable naming. 2015-10-14 20:29:54 +00:00
bugpoint.cpp Search for llvm-symbolizer binary in the same directory as argv[0], before 2016-06-09 00:53:21 +00:00