[llvm-dev] LLVM pass to optimize redundant branch conditions

Ejjeh, Adel via llvm-dev llvm-dev at lists.llvm.org
Thu Mar 26 15:16:06 PDT 2020

Hello All

I am looking for an LLVM pass that is able to detect branches whose condition is known if they are reached. To illustrate what I mean, I attached a screenshot showing a partial CFG of a function. The branch in basic block for.cond.cleanup3 tests the same condition as the branch in the entry block, and has the same target BB if the condition is false. Also, if you inspect the graph carefully, the basic block for.cond.cleanup3 cannot be reached unless the first branch condition was true. This means that the condition of the branch in for.cond.cleanup3 will always be true. As such, it is possible to eliminate this branch, making it unconditional. Is there an LLVM pass that is able to perform such transformation?


Adel Ejjeh
PhD Candidate - Computer Science
University of Illinois at Urbana-Champaign
201 N Goodwin Ave, Urbana, IL 61801
aejjeh at illinois.edu | adel.ejjeh at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200326/79c6b948/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 118075 bytes
Desc: image.png
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200326/79c6b948/attachment-0001.png>

More information about the llvm-dev mailing list