<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 03/15/2018 10:49 AM, Clement Courbet
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAHOnJtrAkw2aGs9y3T-g99DoWiqhfAQHgd8YyYJQWJSG9pgw1w@mail.gmail.com">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <div class="gmail_quote">On Thu, Mar 15, 2018 at 4:41 PM, Hal
            Finkel 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 text="#000000" bgcolor="#FFFFFF">
                <div>
                  <div class="h5">
                    <p><br>
                    </p>
                    <div class="m_-7778141929440463774moz-cite-prefix">On
                      03/15/2018 10:04 AM, Guillaume Chatelet via
                      llvm-dev wrote:<br>
                    </div>
                    <blockquote type="cite">
                      <div dir="ltr"><span
id="m_-7778141929440463774gmail-m_-3389961447841594895m_-971815685618268078inbox-inbox-docs-internal-guid-1c394e3d-2a21-a2b0-ec96-98e1318e8606"
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                          <div
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial"><span><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[You can find an easier to read and more complete version of this RFC <a href="https://docs.google.com/document/d/1QidaJMJUyQdRrFKD66vE1_N55whe0coQ3h1GpFzz27M/edit?ts=5aaa84ee#" style="color:rgb(17,85,204)" target="_blank" moz-do-not-send="true">here</a>.]</span></span></div>
                          <br>
                        </span>
                        <p dir="ltr"
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:justify"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">
</span></p>
                        <p dir="ltr"
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:justify"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Knowing instruction scheduling properties (latency, uops) is the basis for all scheduling work done by LLVM.</span></p>
                        <br
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                        <p dir="ltr"
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:justify"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Unfortunately, vendors usually release only partial (and sometimes incorrect) information.  Updating the information is painful and requires careful guesswork and analysis. As a result, scheduling information is incomplete for most X86 models (</span><a
href="https://bugs.llvm.org/show_bug.cgi?id=32325"
                            style="color:rgb(17,85,204);text-decoration-line:none"
                            target="_blank" moz-do-not-send="true"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">this bug</span></a><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> tracks some of these issues). The goal of the tool presented here is to automatically (in)validate the TableDef scheduling models. In the long run we envision automatic generation of the models.</span></p>
                        <br
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                        <p dir="ltr"
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:justify"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">At Google, we have developed a tool that, given an instruction mnemonic, uses the data in `</span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">MCInstrInfo</span><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">` to generate a code snippet that makes execution as serial (resp. as parallel) as possible so that we can measure the latency (resp. uop decomposition) of the instruction. The code snippet is jitted and executed on the host subtarget. The time taken (resp. resource usage) is measured using hardware performance counters. More details can be found in the ‘implementation’ section of the RFC.</span></p>
                        <br
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                        <p dir="ltr"
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:justify"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">For people familiar with the work of Agner Fog, this is essentially an automation of the process of building the code snippets using instruction descriptions from LLVM. </span></p>
                        <span
id="m_-7778141929440463774gmail-m_-3389961447841594895m_-971815685618268078inbox-inbox-docs-internal-guid-1c394e3d-2a21-e904-346a-6decad13442d"
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                          <h1 dir="ltr"
                            style="line-height:1.38;margin-top:20pt;margin-bottom:6pt"><span style="font-size:20pt;font-family:Arial;background-color:transparent;font-weight:400;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Results</span></h1>
                          <ul style="margin-top:0pt;margin-bottom:0pt">
                            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Solving </span><a href="https://bugs.llvm.org/show_bug.cgi?id=36084" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank" moz-do-not-send="true"><span style="font-size:11pt;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">this bug</span></a><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> (sandybridge):</span></p></li>
                          </ul>
                          <div dir="ltr" style="margin-left:0pt">
                            <table
                              style="border:none;border-collapse:collapse">
                              <colgroup><col width="682"></colgroup><tbody>
                                <tr style="height:0pt">
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:1pt;border-style:solid;border-color:rgb(0,0,0);vertical-align:top;padding:5pt">
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">> llvm-exegesis -opcode-name IMUL16rri8 -benchmark-mode latency</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">---</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">asm_template:    </font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  name:            latency IMUL16rri8</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">cpu_name:        sandybridge</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">llvm_triple:     x86_64-grtev4-linux-gnu</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">num_repetitions: 10000</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">measurements:    </font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  - { key: latency, value: 4.0115, debug_string: '' }</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">error:           ''</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.2;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">...</font></span></p>
                                  </td>
                                </tr>
                              </tbody>
                            </table>
                          </div>
                          <br>
                          <div dir="ltr" style="margin-left:0pt">
                            <table
                              style="border:none;border-collapse:collapse">
                              <colgroup><col width="683"></colgroup><tbody>
                                <tr style="height:0pt">
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:1pt;border-style:solid;border-color:rgb(0,0,0);vertical-align:top;padding:5pt">
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">> llvm-exegesis -opcode-name IMUL16rri8 -benchmark-mode uops</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">---</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">asm_template:    </font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  name:            uops IMUL16rri8</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">cpu_name:        sandybridge</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">llvm_triple:     x86_64-grtev4-linux-gnu</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">num_repetitions: 10000</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">measurements:    </font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  - { key: '2', value: 0.5232, debug_string: SBPort0 }</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  - { key: '3', value: 1.0039, debug_string: SBPort1 }</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  - { key: '4', value: 0.0024, debug_string: SBPort4 }</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">  - { key: '5', value: 0.3693, debug_string: SBPort5 }</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">error:           ''</font></span></p>
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;color:rgb(67,67,67);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font face="monospace, monospace">...</font></span></p>
                                  </td>
                                </tr>
                              </tbody>
                            </table>
                          </div>
                          <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;margin-left:36pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Running both these commands took ~.2 seconds including printing.</span></p>
                          <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;margin-left:36pt"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">
</span></p>
                          <br>
                          <ul style="margin-top:0pt;margin-bottom:0pt">
                            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><a href="https://docs.google.com/spreadsheets/d/11_vFQRpiPHQ3zLcx8cVYYCqR5N5PCa4IvMyKHwF7Op4/edit?usp=sharing" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank" moz-do-not-send="true"><span style="font-size:11pt;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">List of measured latencies</span></a><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> for sandybridge, haswell and skylake processors including diffs with LLVM latencies. Excerpt:</span></p></li>
                          </ul>
                          <br>
                          <div dir="ltr" style="margin-left:0pt">
                            <table
                              style="border:none;border-collapse:collapse">
                              <colgroup><col width="97"><col width="97"><col
                                  width="97"><col width="97"><col
                                  width="97"><col width="97"><col
                                  width="97"></colgroup><tbody>
                                <tr style="height:15pt">
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt"><br>
                                  </td>
                                  <td colspan="2"
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">sandybridge</span></p>
                                  </td>
                                  <td colspan="2"
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">haswell</span></p>
                                  </td>
                                  <td colspan="2"
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">skylake</span></p>
                                  </td>
                                </tr>
                                <tr style="height:15pt">
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">mnemonic</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">llvm-exegesis</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">TD file</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">llvm-exegesis</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">TD file</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">llvm-exegesis</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:center"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">TD file</span></p>
                                  </td>
                                </tr>
                                <tr style="height:15pt">
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">SHR32r1</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.01</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.00</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.00</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.00</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.01</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">1.00</span></p>
                                  </td>
                                </tr>
                                <tr style="height:15pt">
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
                                      style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">IMUL16rri</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">4.02</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">3.00</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">4.01</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">3.00</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">4.01</span></p>
                                  </td>
                                  <td
style="font-family:arial,sans-serif;margin:0px;border-width:0.75pt;border-style:solid;border-color:rgb(204,204,204);vertical-align:bottom;padding:2pt">
                                    <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-align:right"><span style="font-size:10pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">3.00</span></p>
                                  </td>
                                </tr>
                              </tbody>
                            </table>
                          </div>
                          <br>
                          <ul style="margin-top:0pt;margin-bottom:0pt">
                            <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Some instructions have different </span><span style="font-size:11pt;background-color:transparent;font-weight:700;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">implementations</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> depending on which registers are assigned. This is well known for cases like `</span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">xor eax, eax`</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> and `</span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">xor eax, ebx`</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">, which emits no uops in the first case (this happens during register renaming, see Agner Fog’s “Register Allocation and Renaming”, in </span><a href="http://www.agner.org/optimize/microarchitecture.pdf" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank" moz-do-not-send="true"><span style="font-size:11pt;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">microarchitecture.pdf</span></a><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">). But we found out that this can go further. For example, </span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">SHLD64rri8</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> takes one cycle and runs on P06 in the </span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">`shld rax, rax, 0x1`</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> case, but takes 3 cycles and runs on P1 in the </span><span style="font-size:11pt;font-family:Consolas;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">`shld rbx, rax, 0x1`</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> case. To the best of our knowledge, this has not yet been described.</span></p></li>
                          </ul>
                        </span></div>
                    </blockquote>
                    <br>
                  </div>
                </div>
                This is great!<span class=""><br>
                  <br>
                  <blockquote type="cite">
                    <div dir="ltr"><span
id="m_-7778141929440463774gmail-m_-3389961447841594895m_-971815685618268078inbox-inbox-docs-internal-guid-1c394e3d-2a21-e904-346a-6decad13442d"
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                        <h1 dir="ltr"
                          style="line-height:1.38;margin-top:20pt;margin-bottom:6pt"><span style="font-size:20pt;font-family:Arial;background-color:transparent;font-weight:400;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Future Work</span></h1>
                        <ul style="margin-top:0pt;margin-bottom:0pt">
                          <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[easy] Fix Intel Scheduling Models.</span></p></li>
                          <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[easy] Extend to memory operands.</span></p></li>
                          <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[easy] Make the tool work reliably for x87 instructions.</span></p></li>
                          <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[medium] A tool that automatically create patches to TD files.</span></p></li>
                          <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[medium] Measure the effect of immediate/register values: Some instructions have performance characteristics that depends on the values it operates on. We should explore the value space (0, 1, ~1, 2^{8,16,32,64}, inf, nan, denorm...).</span></p></li>
                          <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[medium] Measure the effect of changing registers on instruction </span><span style="font-size:11pt;background-color:transparent;font-style:italic;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">implementation</span><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> (see </span><a href="https://docs.google.com/document/d/1QidaJMJUyQdRrFKD66vE1_N55whe0coQ3h1GpFzz27M/edit?ts=5aaa84ee#bookmark=kix.q6a0imw9qn1n" style="color:rgb(17,85,204);text-decoration-line:none" target="_blank" moz-do-not-send="true"><span style="font-size:11pt;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">results section</span></a><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"> above). Model this in LLVM TD schema.</span></p></li>
                          <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[hard] Make the tool work for instruction that have side effects (e.g. PUSH/POP, JMP, ...). This might involve extending the TD schema with information on how to setup measurements for specific instructions.</span></p></li>
                          <li dir="ltr" style="margin-left:15px;list-style-type:disc;font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">[??] Make the tool work for other CPUs. This mainly depends on the presence of performance counters.</span></p></li>
                        </ul>
                        <h1 dir="ltr"
                          style="line-height:1.38;margin-top:20pt;margin-bottom:6pt"><span style="font-size:20pt;font-family:Arial;background-color:transparent;font-weight:400;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">Open Questions</span></h1>
                        <span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">We depend on </span><a
href="http://perfmon2.sourceforge.net/docs_v4.html"
                          style="color:rgb(17,85,204);text-decoration-line:none"
                          target="_blank" moz-do-not-send="true"><span style="font-size:11pt;font-family:Arial;color:rgb(17,85,204);background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">libpfm</span></a><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">. How do we handle the dependency ?</span></span><br
class="m_-7778141929440463774gmail-m_-3389961447841594895m_-971815685618268078inbox-inbox-Apple-interchange-newline"
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial">
                    </div>
                  </blockquote>
                  <br>
                </span> Are there options that you have in mind? It's an
                external MIT-licensed dependency. Wouldn't CMake just
                detect it when it's available?<br>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>That's what we've done for now (see <a
href="https://reviews.llvm.org/differential/changeset/?ref=1002469&whitespace=ignore-most"
                moz-do-not-send="true">code here</a>). We're not sure
              what the policy is wrt external deps. Right now if the
              tool is enabled and libpfm is not on the system, we die
              with an error message. The other options would be to
              disable the tool in that case (I'm not sure how to do
              that). Opinions ?</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Sounds good (we can discuss this further, if necessary, in the code
    review).<br>
    <br>
     -Hal<br>
    <br>
    <blockquote type="cite"
cite="mid:CAHOnJtrAkw2aGs9y3T-g99DoWiqhfAQHgd8YyYJQWJSG9pgw1w@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div text="#000000" bgcolor="#FFFFFF"> <br>
                 -Hal<br>
                <br>
                <blockquote type="cite"><span class="">
                    <div dir="ltr">
                      <div
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">
</span></span></div>
                      <div
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap">--</span></span></div>
                      <div
style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-size:11pt;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">Guillaume Chatelet (</span><a
                          href="mailto:gchatelet@google.com"
                          style="color:rgb(17,85,204);text-decoration-line:none"
                          target="_blank" moz-do-not-send="true"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">gchatelet@google.com</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-size:11pt;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">), Clement Courbet (</span><a
                          href="mailto:courbet@google.com"
                          style="color:rgb(17,85,204);text-decoration-line:none"
                          target="_blank" moz-do-not-send="true"><span style="font-size:11pt;font-family:Arial;background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;text-decoration-line:underline;vertical-align:baseline;white-space:pre-wrap">courbet@google.com</span></a><span style="background-color:transparent;font-variant-numeric:normal;font-variant-east-asian:normal;font-size:11pt;font-family:Arial;vertical-align:baseline;white-space:pre-wrap">) for the Google Compiler Research Team</span></div>
                      <br>
                    </div>
                    <br>
                    <fieldset
                      class="m_-7778141929440463774mimeAttachmentHeader"></fieldset>
                    <br>
                  </span>
                  <pre>______________________________<wbr>_________________
LLVM Developers mailing list
<a class="m_-7778141929440463774moz-txt-link-abbreviated" href="mailto:llvm-dev@lists.llvm.org" target="_blank" moz-do-not-send="true">llvm-dev@lists.llvm.org</a>
<a class="m_-7778141929440463774moz-txt-link-freetext" href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank" moz-do-not-send="true">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-dev</a><span class="HOEnZb"><font color="#888888">
</font></span></pre>
                  <span class="HOEnZb"><font color="#888888"> </font></span></blockquote>
                <span class="HOEnZb"><font color="#888888"> <br>
                    <pre class="m_-7778141929440463774moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
                  </font></span></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>
      </div>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
  </body>
</html>