<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    I concur with Jeremy - it is mostly ok to consume older IR with
    newer LLVM, but metadata has changed significantly in just about
    every release since 3.2 (one of the issues with OpenCL SPIR 1.2
    using the 3.2 IR is that all people implementing OpenCL drivers that
    support SPIR have to have some funky code on the go to support the
    older IR).<br>
    <br>
    I think it is wrong to assume the IR wouldn't change though - one of
    the best things about LLVM is the utter disregard for backwards
    compatibility if it allows the project to do something in a better
    way - if that meant the IR had to be massively changed it would be
    done and the community wouldn't even glance backwards ;)<br>
    <br>
    -Neil.<br>
    <br>
    <div class="moz-cite-prefix">On 15/03/15 00:45, Jeremy Lakeman
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAAjnzmA=6fxvhBdfJWpGVBoyWaOPovD8aQHqnJO7v4c-4QHzaA@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>The general principle I've seen applied in mailing list
          discussions;<br>
          Textual IR could change significantly, the complexity of
          preserving backwards compatibility in the parser is often too
          high.<br>
        </div>
        Binary IR, is a much more structured format, backwards
        compatibility is easier to support. IR Correctness should be
        preserved, but some language features might be ignored. eg old
        meta-data formats will be silently stripped out.<br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Sun, Mar 15, 2015 at 3:13 AM, Hayden
          Livingston <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:halivingston@gmail.com" target="_blank">halivingston@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir="ltr">Are you saying the textual form of IR can
              change, but bitcode doesn't? I don't know what you mean by
              assembly syntax.
              <div><br>
              </div>
              <div>Is there a changlog entry when the textual IR
                changes?</div>
            </div>
            <div class="HOEnZb">
              <div class="h5">
                <div class="gmail_extra"><br>
                  <div class="gmail_quote">On Sat, Mar 14, 2015 at 5:22
                    AM, Jeremy Lakeman <span dir="ltr"><<a
                        moz-do-not-send="true"
                        href="mailto:Jeremy.Lakeman@gmail.com"
                        target="_blank">Jeremy.Lakeman@gmail.com</a>></span>
                    wrote:<br>
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <div dir="ltr">Assembly syntax can and will break
                        between versions. But bitcode should generally
                        be upgradeable, or a bug should be filed.<br>
                      </div>
                      <div class="gmail_extra"><br>
                        <div class="gmail_quote">
                          <div>
                            <div>On Sat, Mar 14, 2015 at 4:41 PM, Hayden
                              Livingston <span dir="ltr"><<a
                                  moz-do-not-send="true"
                                  href="mailto:halivingston@gmail.com"
                                  target="_blank">halivingston@gmail.com</a>></span>
                              wrote:<br>
                            </div>
                          </div>
                          <blockquote class="gmail_quote"
                            style="margin:0 0 0 .8ex;border-left:1px
                            #ccc solid;padding-left:1ex">
                            <div>
                              <div>
                                <div dir="ltr">
                                  <div>Is it safe to assume that LLVM IR
                                    will live more-or-less the same for
                                    most releases, and that significant
                                    changes will be communicated?</div>
                                  <div><br>
                                  </div>
                                  <div>Or is it something that can
                                    change at any time and you must not
                                    rely on it ever being same.</div>
                                  <div><br>
                                  </div>
                                  <div>To me, it seems like the IR has
                                    evolved slowly but no spectacularly
                                    large changes were made in the 1-1.5
                                    years I've been watching it, -- sure
                                    some experimental patch point, gc
                                    stuff, but not your day-to-day types
                                    etc</div>
                                  <div><br>
                                  </div>
                                  <div>I'm asking because I'm going to
                                    take somewhat major dependencies in
                                    my upcoming system on the IR, and
                                    being able to store it across
                                    multiple releases of my system.</div>
                                  <div><br>
                                  </div>
                                  <div>I don't anticipate moving to
                                    newer versions of LLVM every time I
                                    release, but I do imagine wanting to
                                    upgrade to let's say LLVM 3.7 or
                                    whatever releases come by.</div>
                                  <span><font color="#888888">
                                      <div><br>
                                      </div>
                                      <div>Hayden</div>
                                    </font></span></div>
                                <br>
                              </div>
                            </div>
_______________________________________________<br>
                            LLVM Developers mailing list<br>
                            <a moz-do-not-send="true"
                              href="mailto:LLVMdev@cs.uiuc.edu"
                              target="_blank">LLVMdev@cs.uiuc.edu</a>   
                                 <a moz-do-not-send="true"
                              href="http://llvm.cs.uiuc.edu"
                              target="_blank">http://llvm.cs.uiuc.edu</a><br>
                            <a moz-do-not-send="true"
                              href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev"
                              target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
                            <br>
                          </blockquote>
                        </div>
                        <br>
                      </div>
                    </blockquote>
                  </div>
                  <br>
                </div>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
LLVM Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a class="moz-txt-link-freetext" href="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</a>
<a class="moz-txt-link-freetext" href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>