<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 6/19/2017 7:29 PM, Vedant Kumar
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:3FC228D0-E27E-4AE2-AB49-E1A36EA7D335@apple.com"><br
        class="">
      <div>
        <blockquote type="cite" class="">
          <div class="">
            <div text="#000000" bgcolor="#FFFFFF" class="">
              <blockquote type="cite"
                cite="mid:622B38E5-4A1F-449E-AFF4-BEC1DE0CF2CA@apple.com"
                class="">
                <div class="">
                  <div class="">
                    <div class="">We can reduce testing time by *not*
                      instrumented basic tools like count, not,
                      FileCheck etc. I filed: <a
                        href="http://llvm.org/PR33501" class=""
                        moz-do-not-send="true">llvm.org/PR33501</a>.</div>
                    <div class=""><br class="">
                    </div>
                    <blockquote type="cite" class="">
                      <div class="">
                        <div class="">3. The generated profile
                          information takes up a lot of space: llc
                          generates a 90MB profraw file.<br class="">
                        </div>
                      </div>
                    </blockquote>
                    <div class=""><br class="">
                    </div>
                    <div class="">I don't have any ideas about how to
                      fix this. You can decrease the space overhead for
                      raw profiles by altering <span class="">LLVM_PROFILE_</span><span
                        class="">MERGE_P</span><span class="">OOL_SIZE
                        from 4 to a lower value.</span></div>
                  </div>
                </div>
              </blockquote>
              <br class="">
              Disk space is cheap, but the I/O takes a long time.  I
              guess it's specifically bad for LLVM's "make check", maybe
              not so bad for other cases.<br class="">
            </div>
          </div>
        </blockquote>
        <div><br class="">
        </div>
        <div>You can speed up "make check" a bit by using
          non-instrumented versions of count, not, FileCheck, etc.</div>
      </div>
    </blockquote>
    <br>
    I tried looking into this a bit more.  It looks like the profile
    data file generated by llc contains approximately 5MB of counters
    (__llvm_prf_cnts), 10MB of "data" (__llvm_prf_data), and 70MB of
    __llvm_prf_names.  __llvm_prf_data and __llvm_prf_names contain
    which can be read from the original binary, as far as I can tell. 
    The 80MB of data wouldn't be a big deal if it were just sitting on
    disk... but we also erase the whole file and rewrite it from scratch
    after we merge profile counters.<br>
    <br>
    Can we do better here?<br>
    <br>
    -Eli<br>
    <pre class="moz-signature" cols="72">-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</pre>
  </body>
</html>