<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 9/13/2016 4:04 PM, Daniel Berlin
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAF4BwTV6YEUx6zTPBunUGCsk+fMOS+F6+JX8dGjJp2A0GjMxSA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>Interesting.</div>
        <div>Sebastian has two problems:<br>
          <br>
        </div>
        <div>1. No MemorySSA form handles *hoisting* stores (not gcc,
          not open64's mu/chi/etc).</div>
        <div>It requires building the reverse problem to make these
          links exist.<br>
        </div>
        <div><br>
        </div>
        <div>Instead, most things *sink* stores, which MemorySSA makes
          easy.</div>
        <div>See SSUPRE, etc.</div>
        <div><br>
        </div>
        <div>2. If you are going to write your own walkers, etc, we
          don't make it easy enough.</div>
        <div><br>
        </div>
        <div>My initial view is: Rather than do this as a completely
          separate piece by piece query interface, the intention was for
          folks to write custom walkers, and use those.</div>
        <div>For example, the code in this patch could be written as a
          MemorySSA walker that implemented "getClobberingMemoryAccess"
          for stores.</div>
        <div>It has a different definition of what it means to be a
          clobbering memory access than the default walker.</div>
        <div>That's okay.</div>
        <div><br>
        </div>
        <div>*Inside of walkers*, we should make
          instructionClobbersQuery available.<br>
        </div>
        <div><br>
        </div>
        <div>Thoughts?</div>
        <div><br>
        </div>
      </div>
    </blockquote>
    I'm not sure I see the distinction, other than as a code
    organization one (which is a fine reason), if the idea is you want
    all of the custom walkers in one place so you can more easily make
    changes to the MemorySSA interface/invariants.<br>
    <blockquote
cite="mid:CAF4BwTV6YEUx6zTPBunUGCsk+fMOS+F6+JX8dGjJp2A0GjMxSA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Tue, Sep 13, 2016 at 12:10 PM, Geoff
          Berry <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:gberry@codeaurora.org" target="_blank">gberry@codeaurora.org</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">gberry
            added a subscriber: gberry.<br>
            gberry added a comment.<br>
            <br>
            I ran into the lack of an interface for this query in
            MemorySSA as well in the EarlyCSE changes I was working on. 
            I think what you want is to be able to call
            instructionClobbersQuery() since that knows about special
            intrinsics and meta-data as well.<br>
            <br>
            <br>
            <a moz-do-not-send="true"
              href="https://reviews.llvm.org/D24517" rel="noreferrer"
              target="_blank">https://reviews.llvm.org/<wbr>D24517</a><br>
            <br>
            <br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Geoff Berry
Employee of Qualcomm Datacenter Technologies, Inc.
 Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.  Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.</pre>
  </body>
</html>