<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 2/10/20 4:09 PM, Alina Sbirlea
      wrote:<br>
    </div>
    <blockquote type="cite" cite="mid:CAHk2dbrvwv2BTRjAa-udJH8b4G=UO_O84FJbOmiJ_SWQHdLYHw@mail.gmail.com">
      
      <div dir="ltr">
        <div dir="ltr">On Mon, Feb 10, 2020 at 1:48 PM Hal Finkel <<a href="mailto:hfinkel@anl.gov" moz-do-not-send="true">hfinkel@anl.gov</a>>
          wrote:<br>
        </div>
        <div class="gmail_quote">
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div>
              <p><br>
              </p>
              <div>On 2/10/20 2:35 PM, Alina Sbirlea wrote:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">Hi,
                  <div><br>
                  </div>
                  <div>Here's a tentative patch of the changes for
                    this: <a href="https://reviews.llvm.org/D74353" target="_blank" moz-do-not-send="true">D74353</a>.</div>
                </div>
              </blockquote>
              <p><br>
              </p>
              <p>I suppose that, as expected, it's invalidated less
                often this way. Given that it's generally stateless,
                does this really represent a cost savings?</p>
              <p> -Hal</p>
            </div>
          </blockquote>
          <div><br>
          </div>
          <div>I don't think there is a cost savings now, the current
            patch shouldn't have much or any impact. </div>
          <div>But I think this can affect future infrastructure
            changes.</div>
          <div>I got here by looking at MemCpyOpt, as part of a longer
            term goal of having the pass sequence [GVN, MemCpyOpt, DSE]
            use MemorySSA instead of MemDepAnalysis. Currently we're
            explicitly checking that, after MemCpyOpt, BasicAA is freed.
            This wouldn't make sense when using MemorySSA in all 3
            passes, as we'd end up rebuilding MemorySSA due to
            invalidating BasicAA.</div>
          <div>I kept the changes needed to MemCpyOpt to preserve passes
            separate from this discussion.</div>
          <div>Does this clarify some of the motivation?</div>
        </div>
      </div>
    </blockquote>
    <p><br>
    </p>
    <p>Yes, please add this information to the patch description.</p>
    <p>I think that it makes sense to mark BasicAA as not being
      invalidated on non-CFG-altering IR changes if it's not.</p>
    <p> -Hal<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite" cite="mid:CAHk2dbrvwv2BTRjAa-udJH8b4G=UO_O84FJbOmiJ_SWQHdLYHw@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_quote">
          <div><br>
          </div>
          <div>Alina</div>
          <blockquote class="gmail_quote" style="margin:0px 0px 0px
            0.8ex;border-left:1px solid
            rgb(204,204,204);padding-left:1ex">
            <div>
              <p> </p>
              <p><br>
              </p>
              <blockquote type="cite">
                <div dir="ltr">
                  <div><br>
                  </div>
                  <div>Thank you,</div>
                  <div>Alina</div>
                  <div><br>
                  </div>
                </div>
                <br>
                <div class="gmail_quote">
                  <div dir="ltr" class="gmail_attr">On Mon, Feb 10, 2020
                    at 11:34 AM Alina Sbirlea <<a href="mailto:alina.sbirlea@gmail.com" target="_blank" moz-do-not-send="true">alina.sbirlea@gmail.com</a>>
                    wrote:<br>
                  </div>
                  <blockquote class="gmail_quote" style="margin:0px 0px
                    0px 0.8ex;border-left:1px solid
                    rgb(204,204,204);padding-left:1ex">
                    <div dir="ltr">
                      <div>Hi,<br>
                      </div>
                      <div><br>
                      </div>
                      <div>I'd like to understand if it makes sense to
                        keep BasicAA as a not CFG-only pass, or if it
                        can be updated to CFG-only. The change was made
                        in <a href="https://reviews.llvm.org/D44564" target="_blank" moz-do-not-send="true">D44564</a>.</div>
                      <div><br>
                      </div>
                      <div>From what I gathered the motivation was <span>PhiValuesAnalysis
                          not being properly updated, and BasicAA having
                          an instance of it. </span></div>
                      <div><span>PhiValuesAnalysis now uses callback
                          values to invalidate deleted values (</span><a href="https://reviews.llvm.org/rL340613" target="_blank" moz-do-not-send="true">r340613</a>),<span> </span><span>PhiValuesAnalysis
                          is also being updated in MemDepAnalysis (</span><a href="https://reviews.llvm.org/D48489" target="_blank" moz-do-not-send="true">D48489</a>) <span>and
                          BasicAA is invalidated if </span><span>PhiValuesAnalysis
                          gets invalidated.</span></div>
                      <div><span><br>
                        </span></div>
                      <div><span>I may not have the full context here,
                          so I'd like some feedback: does it make sense
                          to make BasicAA a CFG-only pass again?</span></div>
                      <div><span><br>
                        </span></div>
                      <div><span>Thank you,</span></div>
                      <div><span>Alina</span></div>
                    </div>
                  </blockquote>
                </div>
              </blockquote>
              <pre cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
            </div>
          </blockquote>
        </div>
      </div>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
  </body>
</html>