<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>p.s. the stackmap format is intended to be transcoded into
      whatever internal format you might want.  It's not expected to be
      a long lived data structure.  Given that, the format prioritizes
      simplicity over size and efficiency of access.  </p>
    <p>The format itself is documented here:</p>
    <p><a class="moz-txt-link-freetext" href="https://llvm.org/docs/StackMaps.html#stack-map-format">https://llvm.org/docs/StackMaps.html#stack-map-format</a></p>
    <br>
    <div class="moz-cite-prefix">On 01/13/2018 05:48 PM, River Riddle
      via llvm-dev wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CANb-1Kkkp-CLSJE=+9K0hahs5ZmHXPGiZroZoNjT+HE7a_fHvA@mail.gmail.com">
      <div dir="ltr">Hi,
        <div>  I implemented a garbage collector for a language I wrote
          in college using the llvm gc statepoint infrastructure. <br>
          <br>
          Information for statepoints:</div>
        <div><a href="https://llvm.org/docs/Statepoints.html"
            moz-do-not-send="true">https://llvm.org/docs/Statepoints.html</a><br>
          <br>
          Example usage of parsing the llvm stackmap can be found at:</div>
        <div> <a
            href="https://github.com/dotnet/llilc/blob/master/lib/GcInfo/GcInfo.cpp"
            moz-do-not-send="true">https://github.com/dotnet/llilc/blob/master/lib/GcInfo/GcInfo.cpp</a></div>
        <div> <a
            href="https://llvm.org/docs/StackMaps.html#stackmap-format"
            moz-do-not-send="true">https://llvm.org/docs/StackMaps.html#stackmap-format</a><br>
        </div>
        <div> <a
href="https://github.com/llvm-mirror/llvm/blob/4604874612fa292ab4c49f96aedefdf8be1ff27e/include/llvm/Object/StackMapParser.h"
            moz-do-not-send="true">https://github.com/llvm-mirror/llvm/blob/4604874612fa292ab4c49f96aedefdf8be1ff27e/include/llvm/Object/StackMapParser.h</a><br>
        </div>
        <div><br>
        </div>
        <div>Thanks,</div>
        <div> River Riddle</div>
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Sat, Jan 13, 2018 at 10:02 AM,
          benzrf via llvm-dev <span dir="ltr"><<a
              href="mailto:llvm-dev@lists.llvm.org" target="_blank"
              moz-do-not-send="true">llvm-dev@lists.llvm.org</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">Is there an explanation anywhere of what code
              that uses a stack map looks like? I'm interested in
              writing a garbage collector, but it's not clear to me how
              my code should make use of the stack map format to
              actually locate roots in memory.<br>
            </div>
            <br>
            ______________________________<wbr>_________________<br>
            LLVM Developers mailing list<br>
            <a href="mailto:llvm-dev@lists.llvm.org"
              moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
            <a
              href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
              rel="noreferrer" target="_blank" moz-do-not-send="true">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </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>