<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <br>
    <div class="moz-cite-prefix">On 12/15/2015 04:02 PM, JF Bastien
      wrote:<br>
    </div>
    <blockquote
cite="mid:CABdywOffmMEs5BFZxrVMPJt8P-gw6nm3tG-Hak17jB8qJQ8=Zg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF"><span class="">
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div class="gmail_extra">
                        <div class="gmail_quote">
                          <blockquote class="gmail_quote"
                            style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
                            <div text="#000000" bgcolor="#FFFFFF">Actually,
                              this brings up a related issue.  We seem
                              to have no documentation in the lang ref
                              about how vector types are represented in
                              memory.  The actual implementation appears
                              to assumed packed bits, but the docs don't
                              say.  Depending on what the semantics here
                              are, my assumptions in the last two
                              paragraphs may not be valid.  <br>
                            </div>
                          </blockquote>
                          <div><br>
                          </div>
                          <div>Indeed!</div>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                </span> Any clue how to start specifying this?  It would
                seem to be ABI dependent.  <br>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>Maybe start a new threads here describing the problem?
              I don't really know otherwise.</div>
          </div>
        </div>
      </div>
    </blockquote>
    Will do.<br>
    <blockquote
cite="mid:CABdywOffmMEs5BFZxrVMPJt8P-gw6nm3tG-Hak17jB8qJQ8=Zg@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div><br>
            </div>
            <div><br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF"><span class="">
                  <blockquote type="cite">
                    <div dir="ltr">
                      <div class="gmail_extra">
                        <div class="gmail_quote">
                          <blockquote class="gmail_quote"
                            style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
                            <div text="#000000" bgcolor="#FFFFFF"><span>
                                <blockquote type="cite">
                                  <div dir="ltr">
                                    <div class="gmail_extra">
                                      <ul>
                                        <li>Once we add vector, should
                                          we consider adding other
                                          composite types in general,
                                          including structs? C++ allows
                                          this, but has substantial
                                          issues w.r.t. padding.</li>
                                      </ul>
                                    </div>
                                  </div>
                                </blockquote>
                              </span> I'd say possibly, but FCAs are
                              poorly supported in the IR in general.  I
                              am not willing to block changes for
                              vectors on changes for FCAs.  This has
                              never been our policy in the past and
                              should not become so now.  <br>
                            </div>
                          </blockquote>
                          <div><br>
                          </div>
                          <div>Oh yeah I don't think we should block it.
                            FWIW I expect that some of these will
                            generate calls to the runtime's global
                            atomic lock shard, which is horrible.</div>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                </span> "global atomic lock shard"?  I have no idea what
                you're referring to.  Is that something in libc?</div>
            </blockquote>
            <div><br>
            </div>
            <div>compiler-rt: <a moz-do-not-send="true"
href="https://github.com/llvm-mirror/compiler-rt/blob/master/lib/builtins/atomic.c">https://github.com/llvm-mirror/compiler-rt/blob/master/lib/builtins/atomic.c</a></div>
          </div>
        </div>
      </div>
    </blockquote>
    Hm, I think this raises an interesting semantic question.  We could
    use the global lock shard scheme to make loads atomic w.r.t. other
    llvm emitted writes, but not writes emitted by other compilers. 
    This would mean that linking object files with atomics might break
    their atomicity.  I'm not sure we want to allow that.  Maybe we can
    do that only if the synchronization scope allows it or something?<br>
    <br>
    Philip<br>
    <br>
  </body>
</html>