<div dir="ltr">Please send patches to llvm-commits as per our policy: <a href="http://llvm.org/docs/DeveloperPolicy.html">http://llvm.org/docs/DeveloperPolicy.html</a><div><br></div><div>Also, your test-case needs to use FileCheck.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 10, 2015 at 1:58 PM, Budukh, Tejas via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="color:#1f497d">Hi,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Any reviewers for this patch ? Any suggestions ?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Opt tool’s output for this ll before and after the patch is also attached.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Thanks,<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d">Tejas<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> llvm-dev [mailto:<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank">llvm-dev-bounces@lists.llvm.org</a>]
<b>On Behalf Of </b>Budukh, Tejas via llvm-dev<br>
<b>Sent:</b> Friday, November 06, 2015 9:43 AM<br>
<b>To:</b> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<b>Subject:</b> [llvm-dev] [PATCH] patch for missed constantFold optimization in InstCombine<u></u><u></u></span></p>
</div>
</div><div><div class="h5">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Hi All,<u></u><u></u></p>
<p class="MsoNormal">llvm::ConstantFoldCompareInstOperands misses an optimization when it tries to constantFold a compare instruction containing addrspacecast instead of combination of ptrtoint and inttoptr. Adding the patched code snippet in the code would
 enable the pass to handle addrspacecast and constantFold the missing cases.<u></u><u></u></p>
<p class="MsoNormal">Attached is the .ll file for the reproducer. Let me know if there are any suggestions/comments or I can commit the patch.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Patched code :<u></u><u></u></p>
<p class="MsoNormal">Index: ConstantFolding.cpp<u></u><u></u></p>
<p class="MsoNormal">===================================================================<u></u><u></u></p>
<p class="MsoNormal">diff --git a/llvm/trunk/lib/Analysis/ConstantFolding.cpp b/llvm/trunk/lib/Analysis/ConstantFolding.cpp<u></u><u></u></p>
<p class="MsoNormal">--- a/llvm/trunk/lib/Analysis/ConstantFolding.cpp            (revision 252222)<u></u><u></u></p>
<p class="MsoNormal">+++ b/llvm/trunk/lib/Analysis/ConstantFolding.cpp        (working copy)<u></u><u></u></p>
<p class="MsoNormal">@@ -1137,6 +1137,12 @@<u></u><u></u></p>
<p class="MsoNormal">           return ConstantFoldCompareInstOperands(Predicate, C, Null, DL, TLI);<u></u><u></u></p>
<p class="MsoNormal">         }<u></u><u></u></p>
<p class="MsoNormal">       }<u></u><u></u></p>
<p class="MsoNormal">+      <u></u><u></u></p>
<p class="MsoNormal">+      if (CE0->getOpcode() == Instruction::AddrSpaceCast) {<u></u><u></u></p>
<p class="MsoNormal">+          Constant *C = CE0->getOperand(0);<u></u><u></u></p>
<p class="MsoNormal">+          Constant *Null = Constant::getNullValue(C->getType());<u></u><u></u></p>
<p class="MsoNormal">+          return ConstantFoldCompareInstOperands(Predicate, C, Null, TD, TLI);<u></u><u></u></p>
<p class="MsoNormal">+      }<u></u><u></u></p>
<p class="MsoNormal">     }<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">     if (ConstantExpr *CE1 = dyn_cast<ConstantExpr>(Ops1)) {<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thanks,<u></u><u></u></p>
<p class="MsoNormal">Tejas<u></u><u></u></p>
</div></div></div>
</div>

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