<div dir="auto">Hi Adel,<div dir="auto"><br></div><div dir="auto">This is a complicated example I think. It would help if you could provide a more reduced one and a complete IR. I think that ome of the dead code elimination passes or LICM may be able to help.</div><div dir="auto"><br></div><div dir="auto">Best,</div><div dir="auto">Stefanos Baziotis</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Mar 27, 2020, 03:25 Ejjeh, Adel via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" rel="noreferrer">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Hello All</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
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? </div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Thanks</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
-Adel</div>
<div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div id="m_-3015421707148520214m_3900955319467554403Signature">
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
--</div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif"><font color="#0c64c0"><span style="font-size:21.3333px"><b><i>Adel Ejjeh</i></b></span></font></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-size:11pt">PhD Candidate - Computer Science</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-size:11pt">University of Illinois at Urbana-Champaign</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-size:11pt">201 N Goodwin Ave, Urbana, IL 61801</span></div>
<div style="font-family:Calibri,Arial,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<span style="font-size:11pt"><a href="mailto:aejjeh@illinois.edu" rel="noreferrer noreferrer" target="_blank">aejjeh@illinois.edu</a> | <a href="mailto:adel.ejjeh@gmail.com" rel="noreferrer noreferrer" target="_blank">adel.ejjeh@gmail.com</a></span></div>
</div>
</div>
</div>

_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" rel="noreferrer noreferrer" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer noreferrer noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>