<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>No particular data, it came about as cleaning up the fix for
      D100656</p>
    <p><a class="moz-txt-link-freetext" href="https://commondatastorage.googleapis.com/chromium-browser-clang/llvm-include-analysis.html">https://commondatastorage.googleapis.com/chromium-browser-clang/llvm-include-analysis.html</a>
      indicates that <string> and <algorithm> are some of
      the bulkiest std includes we use (and speaking as a user of an old
      + crusty home desktop I'm after any potential build savings I can
      get.....).<br>
    </p>
    <div class="moz-cite-prefix">On 22/04/2021 00:43, David Blaikie
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAENS6EtXOwYLNabXeBkQzUVSq4L1nJWxaUxwZVfm6avkZHiSSQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">Any particular data that suggests removing this
        #include is worthwhile?</div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Tue, Apr 20, 2021 at 3:23
          AM Simon Pilgrim via llvm-commits <<a
            href="mailto:llvm-commits@lists.llvm.org"
            moz-do-not-send="true">llvm-commits@lists.llvm.org</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
          Author: Simon Pilgrim<br>
          Date: 2021-04-20T11:21:39+01:00<br>
          New Revision: 5ed8cea9a8166b81ade4a9352971ba061f9b6f65<br>
          <br>
          URL: <a
href="https://github.com/llvm/llvm-project/commit/5ed8cea9a8166b81ade4a9352971ba061f9b6f65"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://github.com/llvm/llvm-project/commit/5ed8cea9a8166b81ade4a9352971ba061f9b6f65</a><br>
          DIFF: <a
href="https://github.com/llvm/llvm-project/commit/5ed8cea9a8166b81ade4a9352971ba061f9b6f65.diff"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://github.com/llvm/llvm-project/commit/5ed8cea9a8166b81ade4a9352971ba061f9b6f65.diff</a><br>
          <br>
          LOG: [Support] APInt.h - remove <algorithm> include.
          NFCI.<br>
          <br>
          Replace std::min use which should allow us to avoid including
          the <algorithm> header in every include of APInt.h.<br>
          <br>
          Added: <br>
          <br>
          <br>
          Modified: <br>
              llvm/include/llvm/ADT/APInt.h<br>
          <br>
          Removed: <br>
          <br>
          <br>
          <br>
################################################################################<br>
          diff  --git a/llvm/include/llvm/ADT/APInt.h
          b/llvm/include/llvm/ADT/APInt.h<br>
          index 0fca6bac43fd9..0cd4a0c9fc9f7 100644<br>
          --- a/llvm/include/llvm/ADT/APInt.h<br>
          +++ b/llvm/include/llvm/ADT/APInt.h<br>
          @@ -17,7 +17,6 @@<br>
          <br>
           #include "llvm/Support/Compiler.h"<br>
           #include "llvm/Support/MathExtras.h"<br>
          -#include <algorithm><br>
           #include <cassert><br>
           #include <climits><br>
           #include <cstring><br>
          @@ -1699,8 +1698,10 @@ class LLVM_NODISCARD APInt {<br>
             /// \returns BitWidth if the value is zero, otherwise
          returns the number of<br>
             /// zeros from the least significant bit to the first one
          bit.<br>
             unsigned countTrailingZeros() const {<br>
          -    if (isSingleWord())<br>
          -      return
          std::min(unsigned(llvm::countTrailingZeros(U.VAL)), BitWidth);<br>
          +    if (isSingleWord()) {<br>
          +      unsigned TrailingZeros =
          llvm::countTrailingZeros(U.VAL);<br>
          +      return (TrailingZeros > BitWidth ? BitWidth :
          TrailingZeros);<br>
          +    }<br>
               return countTrailingZerosSlowCase();<br>
             }<br>
          <br>
          <br>
          <br>
          <br>
          _______________________________________________<br>
          llvm-commits mailing list<br>
          <a href="mailto:llvm-commits@lists.llvm.org" target="_blank"
            moz-do-not-send="true">llvm-commits@lists.llvm.org</a><br>
          <a
            href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits"
            rel="noreferrer" target="_blank" moz-do-not-send="true">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
        </blockquote>
      </div>
    </blockquote>
  </body>
</html>