[llvm] 7a4f1d5 - [ConstraintElimination] Decompose GEP %ptr, ZEXT(SHL()).
Rainer Orth via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 2 11:20:29 PST 2020
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
More information about the llvm-commits
mailing list