summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorDaniel Berlin <dberlin@dberlin.org>2016-07-27 16:13:25 +0000
committerDaniel Berlin <dberlin@dberlin.org>2016-07-27 16:13:25 +0000
commit271ca4011898792916a8aa15c417d8187abbd70b (patch)
tree01c62c476e22f8f223d7c16318fc58f16af34504 /clang/lib/Frontend/CompilerInvocation.cpp
parent46cb48c74ae4220bbb56b88ca2432a98ce8fe9c8 (diff)
downloadbcm5719-llvm-271ca4011898792916a8aa15c417d8187abbd70b.tar.gz
bcm5719-llvm-271ca4011898792916a8aa15c417d8187abbd70b.zip
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
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud