<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    +1 to what Chandler said here and most of his argument in the
    following thread.<br>
    <br>
    Philip<br>
    <br>
    <div class="moz-cite-prefix">On 04/18/2016 02:18 PM, Chandler
      Carruth via llvm-dev wrote:<br>
    </div>
    <blockquote
cite="mid:CAAwGriG2x3vVG1wgySzh=9GLi24_iohbofXkcUu+tPhGB0yxQg@mail.gmail.com"
      type="cite">
      <div dir="ltr">The difference between Analysis and Transforms is
        *not* about passes, but about what the code *does*.
        <div><br>
        </div>
        <div>Code for mutating the IR should be in Transforms, and code
          that analyzes the IR without mutating it should be in
          Analysis. This is why, for example, InstructionSimplify is in
          Analysis -- it does not mutate the IR in any way.</div>
        <div><br>
        </div>
        <div>So I think InlineCost and similar things should stay in the
          Analysis library regardless of whether they are passes or not.</div>
        <div><br>
          <div class="gmail_quote">
            <div dir="ltr">On Mon, Apr 18, 2016 at 2:14 PM Mehdi Amini
              via llvm-dev <<a moz-do-not-send="true"
                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"><br>
              > On Apr 18, 2016, at 2:07 PM, Hal Finkel via llvm-dev
              <<a moz-do-not-send="true"
                href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>>
              wrote:<br>
              ><br>
              > ----- Original Message -----<br>
              >> From: "Easwaran Raman" <<a
                moz-do-not-send="true" href="mailto:eraman@google.com"
                target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:eraman@google.com">eraman@google.com</a></a>><br>
              >> To: "via llvm-dev" <<a moz-do-not-send="true"
                href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><br>
              >> Cc: "Chandler Carruth" <<a
                moz-do-not-send="true" href="mailto:chandlerc@gmail.com"
                target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:chandlerc@gmail.com">chandlerc@gmail.com</a></a>>, "Hal
              Finkel" <<a moz-do-not-send="true"
                href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>>,
              "Philip Reames"<br>
              >> <<a moz-do-not-send="true"
                href="mailto:listmail@philipreames.com" target="_blank">listmail@philipreames.com</a>>,
              "David Li" <<a moz-do-not-send="true"
                href="mailto:davidxl@google.com" target="_blank">davidxl@google.com</a>><br>
              >> Sent: Monday, April 18, 2016 2:39:49 PM<br>
              >> Subject: Move InlineCost.cpp out of Analysis?<br>
              >><br>
              >><br>
              >> Hi,<br>
              >><br>
              >><br>
              >> After r256521 - which removes InlineCostAnalysis
              class - I think<br>
              >> there is no strong reason for InlineCost.cpp to
              be part of the<br>
              >> Analysis library. Is it fine to make it part of
              TransformUtils?<br>
              >><br>
              ><br>
              > Given that InlineCost is not really an analysis any
              longer, I think this is fine.<br>
              <br>
              Isn't it? It is not a pass, but I see it as an analysis
              utils.<br>
              <br>
              ><br>
              >><br>
              >> I submitted r266477 (which has now been reverted)
              that made Analysis<br>
              >> depend on ProfileData in order to obtain
              ProfileSummary for the<br>
              >> module, but there is an existing dependency of
              ProfileData on<br>
              >> Analysis (through Object and BitCode).<br>
              <br>
              The real issue is that BitCode depends on Analysis I
              think.<br>
              I'm not sure about ProfileData that depends on Bitcode, do
              you know why?<br>
              <br>
              --<br>
              Mehdi<br>
              <br>
              <br>
              >> Moving InlineCost.cpp under<br>
              >> Transforms/Utils will fix this issue. There are
              other ways to fix<br>
              >> this (make Inliner.cpp get the ProfileSummary and
              pass it to<br>
              >> InlineCost, for example), but I think it makes
              sense to move<br>
              >> InlineCost.<br>
              >><br>
              >><br>
              >> Thoughts?<br>
              >><br>
              >><br>
              >> Thanks,<br>
              >> Easwaran<br>
              >><br>
              >><br>
              ><br>
              > --<br>
              > Hal Finkel<br>
              > Assistant Computational Scientist<br>
              > Leadership Computing Facility<br>
              > Argonne National Laboratory<br>
              > _______________________________________________<br>
              > LLVM Developers mailing list<br>
              > <a moz-do-not-send="true"
                href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
              > <a moz-do-not-send="true"
                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>
              _______________________________________________<br>
              LLVM Developers mailing list<br>
              <a moz-do-not-send="true"
                href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
              <a moz-do-not-send="true"
                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>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>
<a class="moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>