<div dir="ltr">What Philip said.<div><br></div><div>Also, it is possible to help with the pass manager work by porting individual passes over. There are a number of commits that serve as good examples here.</div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Mar 21, 2016 at 6:22 PM Philip Reames via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">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 text="#000000" bgcolor="#FFFFFF">
    FYI - There is currently an architectural issue which prevents the
    SCC pass manager (which runs the inliner) from relying on Function
    or Loop analysis passes.  This is the primary motivation of the pass
    manager rewrite that Chandler Carruth has been working on for the
    last two years.  He's getting relatively close to that project being
    done, but until then you are going to be effectively blocked on
    this.  <br></div><div text="#000000" bgcolor="#FFFFFF">
    <br>
    Philip</div><div text="#000000" bgcolor="#FFFFFF"><br>
    <br>
    <div>On 03/21/2016 11:56 AM, Aditya K via
      llvm-dev wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">Hi,
        <div>It seems inliner does not take into account if a call is
          inside a loop. I'm trying to figure out if loop-info can be
          made available to the inliner.</div>
        <div><br>
        </div>
        <div>When I try to add LoopInfoWrapperPass to Inliner.cpp,</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>
          <div>diff --git a/llvm/lib/Transforms/IPO/Inliner.cpp
            b/llvm/lib/Transforms/IPO/Inliner.cpp</div>
          <div>index 568707d..cb51ea8 100644</div>
          <div>--- a/llvm/lib/Transforms/IPO/Inliner.cpp</div>
          <div>+++ b/llvm/lib/Transforms/IPO/Inliner.cpp</div>
          <div>@@ -14,6 +14,7 @@</div>
          <div> //===----------------------------------------------------------------------===//</div>
          <div><br>
          </div>
          <div> #include "llvm/Transforms/IPO/InlinerPass.h"</div>
          <div>+#include "llvm/Analysis/LoopInfo.h"</div>
          <div> #include "llvm/ADT/SmallPtrSet.h"</div>
          <div> #include "llvm/ADT/Statistic.h"</div>
          <div> #include "llvm/Analysis/AliasAnalysis.h"</div>
          <div>@@ -58,6 +59,7 @@ Inliner::Inliner(char &ID, bool
            InsertLifetime)</div>
          <div> void Inliner::getAnalysisUsage(AnalysisUsage &AU)
            const {</div>
          <div>   AU.addRequired<AssumptionCacheTracker>();</div>
          <div>   AU.addRequired<TargetLibraryInfoWrapperPass>();</div>
          <div>+  AU.addRequired<LoopInfoWrapperPass>();</div>
          <div>   getAAResultsAnalysisUsage(AU);</div>
          <div>   CallGraphSCCPass::getAnalysisUsage(AU);</div>
        </div>
        <div>}</div>
        <div><br>
        </div>
        <div>I get llvm_unreachable in `<span style="font-size:12pt">void
            PMDataManager::addLowerLevelRequiredPass(Pass *P, Pass
            *RequiredPass)'</span></div>
        <div><span style="font-size:12pt"><br>
          </span></div>
        <div><span style="font-size:12pt">Thanks,</span></div>
        <div>-Aditya</div>
      </div>
      <br>
      <fieldset></fieldset>
      <br>
      <pre>_______________________________________________
LLVM Developers mailing list
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
    </blockquote>
    <br>
  </div>

_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">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>
</blockquote></div>