[PATCH] D19743: [SimplifyCFG] Prefer a simplification based on dominating conditions over merging a common destination.
Chad Rosier via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 29 14:03:04 PDT 2016
mcrosier created this revision.
mcrosier added reviewers: reames, sanjoy, chandlerc, echristo, gberry.
mcrosier added a subscriber: llvm-commits.
Herald added a subscriber: joker.eph.
Often we can simplify the CFG based on dominating conditions. However, we miss opportunities when we merge blocks with a common destination.
For example, before this change we would need to run -simplifycfg -instcombine -simplifycfg on test4_fold to arrive at the code in test4_no_fold after only a single run of -simplifycfg.
I found a case in Spec2006/soplex where this further removed unreachable code. As expected, I found no cases where code size increased across Spec2000/Spec2006. As isImpliedCondition continues to expand in capabilities I expect more opportunities to be exposed. This may also improve compile-time, but I didn't measure the impact directly.
Chad
http://reviews.llvm.org/D19743
Files:
lib/Transforms/Utils/SimplifyCFG.cpp
test/Transforms/SimplifyCFG/basictest.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19743.55662.patch
Type: text/x-patch
Size: 4217 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160429/c17bb891/attachment.bin>
More information about the llvm-commits
mailing list