forked from OSchip/llvm-project
271ca40118
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 |
||
---|---|---|
.. | ||
BugDriver.cpp | ||
BugDriver.h | ||
CMakeLists.txt | ||
CrashDebugger.cpp | ||
ExecutionDriver.cpp | ||
ExtractFunction.cpp | ||
FindBugs.cpp | ||
LLVMBuild.txt | ||
ListReducer.h | ||
Miscompilation.cpp | ||
OptimizerDriver.cpp | ||
ToolRunner.cpp | ||
ToolRunner.h | ||
bugpoint.cpp |