[llvm] 7a4f1d5 - [ConstraintElimination] Decompose GEP %ptr, ZEXT(SHL()).

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 2 14:24:46 PST 2020


Hi,

thanks for the heads-up. I pushed 2304528bb54a to hopeful fix this.

Cheers,
Florian

On Wed, Dec 2, 2020 at 7:20 PM Rainer Orth <ro at gcc.gnu.org> wrote:

> Florian Hahn via llvm-commits <llvm-commits at lists.llvm.org> writes:
>
> > Author: Florian Hahn
> > Date: 2020-12-01T14:23:21Z
> > New Revision: 7a4f1d59b82e5defbce4498347291e6ef9f1281c
> >
> > URL:
> https://github.com/llvm/llvm-project/commit/7a4f1d59b82e5defbce4498347291e6ef9f1281c
> > DIFF:
> https://github.com/llvm/llvm-project/commit/7a4f1d59b82e5defbce4498347291e6ef9f1281c.diff
> >
> > LOG: [ConstraintElimination] Decompose GEP %ptr, ZEXT(SHL()).
> >
> > Add support to decompose a GEP with a ZEXT(SHL()) operand.
>
> This patch and its predecessor broke the Solaris build:
>
>         http://lab.llvm.org:8014/#/builders/22
>
> /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*)’:
> /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
>    66 |               {pow(2, CI->getSExtValue()), Op0}};
>       |                                         ^
> In file included from
> /usr/gcc/10/lib/gcc/sparcv9-sun-solaris2.11/10.2.0/include-fixed/math.h:24,
>                  from /usr/gcc/10/include/c++/10.2.0/bits/std_abs.h:40,
>                  from /usr/gcc/10/include/c++/10.2.0/cstdlib:77,
>                  from /usr/gcc/10/include/c++/10.2.0/bits/stl_algo.h:59,
>                  from /usr/gcc/10/include/c++/10.2.0/algorithm:62,
>                  from
> /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/Support/MathExtras.h:17,
>                  from
> /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/ADT/APInt.h:19,
>                  from
> /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/ADT/DenseMapInfo.h:16,
>                  from
> /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/ADT/DenseMap.h:16,
>                  from
> /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/IR/PassManager.h:40,
>                  from
> /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/include/llvm/Transforms/Scalar/ConstraintElimination.h:12,
>                  from
> /opt/llvm-buildbot/home/solaris11-sparcv9/clang-solaris11-sparcv9/llvm/llvm/lib/Transforms/Scalar/ConstraintElimination.cpp:14:
> /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)’
>   212 |  inline long double pow(long double __X, long double __Y) { return
>       |                     ^~~
> /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)’
>   172 |  inline float pow(float __X, float __Y) { return __powf(__X, __Y);
> }
>       |               ^~~
> /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)’
>    73 | extern double pow __P((double, double));
>       |               ^~~
> /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>’
>    66 |               {pow(2, CI->getSExtValue()), Op0}};
>       |                                                ^
>       |                                                |
>       |                                                <brace-enclosed
> initializer list>
>
> and similarly for the other use of pow.
>
>         Rainer
>
> --
>
> -----------------------------------------------------------------------------
> Rainer Orth, Center for Biotechnology, Bielefeld University
>


-- 

http://www.fhahn.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201202/d00bf548/attachment.html>


More information about the llvm-commits mailing list