<div dir="ltr"><div dir="ltr">Hi,<div><br></div><div>thanks for the heads-up. I pushed 2304528bb54a to hopeful fix this.</div><div><br></div><div>Cheers,</div><div>Florian</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Dec 2, 2020 at 7:20 PM Rainer Orth <<a href="mailto:ro@gcc.gnu.org">ro@gcc.gnu.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Florian Hahn via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> writes:<br>
<br>
> Author: Florian Hahn<br>
> Date: 2020-12-01T14:23:21Z<br>
> New Revision: 7a4f1d59b82e5defbce4498347291e6ef9f1281c<br>
><br>
> URL: <a href="https://github.com/llvm/llvm-project/commit/7a4f1d59b82e5defbce4498347291e6ef9f1281c" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/7a4f1d59b82e5defbce4498347291e6ef9f1281c</a><br>
> DIFF: <a href="https://github.com/llvm/llvm-project/commit/7a4f1d59b82e5defbce4498347291e6ef9f1281c.diff" rel="noreferrer" target="_blank">https://github.com/llvm/llvm-project/commit/7a4f1d59b82e5defbce4498347291e6ef9f1281c.diff</a><br>
><br>
> LOG: [ConstraintElimination] Decompose GEP %ptr, ZEXT(SHL()).<br>
><br>
> Add support to decompose a GEP with a ZEXT(SHL()) operand.<br>
<br>
This patch and its predecessor broke the Solaris build:<br>
<br>
        <a href="http://lab.llvm.org:8014/#/builders/22" rel="noreferrer" target="_blank">http://lab.llvm.org:8014/#/builders/22</a><br>
<br>
/opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp: In function ‘llvm::SmallVector<std::pair<long int, llvm::Value*>, 4> decompose(llvm::Value*)’:<br>
/opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp:66:41: error: call of overloaded ‘pow(int, int64_t)’ is ambiguous<br>
   66 |               {pow(2, CI->getSExtValue()), Op0}};<br>
      |                                         ^<br>
In file included from /usr/gcc/10/lib/gcc/sparcv9-sun-solaris2.11/10.2.0/include-fixed/math.h:24,<br>
                 from /usr/gcc/10/include/c++/10.2.0/bits/std_abs.h:40,<br>
                 from /usr/gcc/10/include/c++/10.2.0/cstdlib:77,<br>
                 from /usr/gcc/10/include/c++/10.2.0/bits/stl_algo.h:59,<br>
                 from /usr/gcc/10/include/c++/10.2.0/algorithm:62,<br>
                 from /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/Support/MathExtras.h:17,<br>
                 from /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/ADT/APInt.h:19,<br>
                 from /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/ADT/DenseMapInfo.h:16,<br>
                 from /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/ADT/DenseMap.h:16,<br>
                 from /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/IR/PassManager.h:40,<br>
                 from /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/Transforms/Scalar/ConstraintElimination.h:12,<br>
                 from /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp:14:<br>
/usr/gcc/10/lib/gcc/sparcv9-sun-solaris2.11/10.2.0/include-fixed/iso/math_iso.h:212:21: note: candidate: ‘long double std::pow(long double, long double)’<br>
  212 |  inline long double pow(long double __X, long double __Y) { return<br>
      |                     ^~~<br>
/usr/gcc/10/lib/gcc/sparcv9-sun-solaris2.11/10.2.0/include-fixed/iso/math_iso.h:172:15: note: candidate: ‘float std::pow(float, float)’<br>
  172 |  inline float pow(float __X, float __Y) { return __powf(__X, __Y); }<br>
      |               ^~~<br>
/usr/gcc/10/lib/gcc/sparcv9-sun-solaris2.11/10.2.0/include-fixed/iso/math_iso.h:73:15: note: candidate: ‘double std::pow(double, double)’<br>
   73 | extern double pow __P((double, double));<br>
      |               ^~~<br>
/opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp:66:48: error: could not convert ‘{{0, nullptr}, {1, GEP->llvm::GetElementPtrInst::getPointerOperand()}, {<expression error>, Op0}}’ from ‘<brace-enclosed initializer list>’ to ‘llvm::SmallVector<std::pair<long int, llvm::Value*>, 4>’<br>
   66 |               {pow(2, CI->getSExtValue()), Op0}};<br>
      |                                                ^<br>
      |                                                |<br>
      |                                                <brace-enclosed initializer list><br>
<br>
and similarly for the other use of pow.<br>
<br>
        Rainer<br>
<br>
-- <br>
-----------------------------------------------------------------------------<br>
Rainer Orth, Center for Biotechnology, Bielefeld University<br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><br><a href="http://www.fhahn.com/" target="_blank">http://www.fhahn.com/</a><br></div>