[llvm] b999400 - [SCEV] Add operand methods to Cast and UDiv
Russell Gallop via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 24 06:50:48 PDT 2020
Looks like you got it.
Thanks
Russ
On Mon, 24 Aug 2020 at 10:14, Sam Parker <Sam.Parker at arm.com> wrote:
> Hi Russ,
>
> I'm looking at it, but I'm a bit stuck without a Windows machine... Do you
> have any suggestions?
>
> Thanks,
> Sam
>
> Sam Parker
>
> Compilation Tools Engineer | Arm
>
> . . . . . . . . . . . . . . . . . . . . . . . . . . .
>
> Arm.com
>
> ------------------------------
> *From:* Russell Gallop <russell.gallop at gmail.com>
> *Sent:* 24 August 2020 10:00
> *To:* Sam Parker <Sam.Parker at arm.com>; Sam Parker <llvmlistbot at llvm.org>
> *Cc:* LLVM Commits <llvm-commits at lists.llvm.org>
> *Subject:* Re: [llvm] b999400 - [SCEV] Add operand methods to Cast and
> UDiv
>
> Hi Sam,
>
> It looks like this is continuing to have build problems on Windows, even
> after "e286c600e10d - [SCEV] Attempt to fix windows buildbots":
>
> http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/34251/steps/build-unified-tree/logs/stdio
>
> Are you looking at this failure?
>
> Thanks
> Russ
>
> On Mon, 24 Aug 2020 at 06:57, Sam Parker via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>
> Author: Sam Parker
> Date: 2020-08-24T06:57:07+01:00
> New Revision: b999400a4fb645cab6d8abcb1ce9146775f69c64
>
> URL:
> https://github.com/llvm/llvm-project/commit/b999400a4fb645cab6d8abcb1ce9146775f69c64
> DIFF:
> https://github.com/llvm/llvm-project/commit/b999400a4fb645cab6d8abcb1ce9146775f69c64.diff
>
> LOG: [SCEV] Add operand methods to Cast and UDiv
>
> Add methods to access operands in a similar manner to NAryExpr.
>
> Differential Revision: https://reviews.llvm.org/D86083
>
> Added:
>
>
> Modified:
> llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
>
> Removed:
>
>
>
>
> ################################################################################
> diff --git a/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
> b/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
> index 0076e02ae1bf..10fefa0272b1 100644
> --- a/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
> +++ b/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h
> @@ -82,6 +82,16 @@ class Type;
>
> public:
> const SCEV *getOperand() const { return Op; }
> + const SCEV *getOperand(unsigned i) const {
> + assert(i == 0 && "Operand index out of range!");
> + return Op;
> + }
> + using op_iterator = const SCEV *const *;
> + using op_range = iterator_range<op_iterator>;
> + op_range operands() const {
> + return make_range(&Op, &Op + 1);
> + }
> + size_t getNumOperands() const { return 1; }
> Type *getType() const { return Ty; }
>
> /// Methods for support type inquiry through isa, cast, and dyn_cast:
> @@ -263,16 +273,28 @@ class Type;
> class SCEVUDivExpr : public SCEV {
> friend class ScalarEvolution;
>
> - const SCEV *LHS;
> - const SCEV *RHS;
> + std::array<const SCEV*, 2> Operands;
>
> SCEVUDivExpr(const FoldingSetNodeIDRef ID, const SCEV *lhs, const
> SCEV *rhs)
> - : SCEV(ID, scUDivExpr, computeExpressionSize({lhs, rhs})),
> LHS(lhs),
> - RHS(rhs) {}
> + : SCEV(ID, scUDivExpr, computeExpressionSize({lhs, rhs})) {
> + Operands[0] = lhs;
> + Operands[1] = rhs;
> + }
>
> public:
> - const SCEV *getLHS() const { return LHS; }
> - const SCEV *getRHS() const { return RHS; }
> + const SCEV *getLHS() const { return Operands[0]; }
> + const SCEV *getRHS() const { return Operands[1]; }
> + size_t getNumOperands() const { return 2; }
> + const SCEV *getOperand(unsigned i) const {
> + assert((i == 0 || i == 1) && "Operand index out of range!");
> + return i == 0 ? getLHS() : getRHS();
> + }
> +
> + using op_iterator = const SCEV *const *;
> + using op_range = iterator_range<op_iterator>;
> + op_range operands() const {
> + return make_range(Operands.begin(), Operands.end());
> + }
>
> Type *getType() const {
> // In most cases the types of LHS and RHS will be the same, but in
> some
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200824/52132146/attachment.html>
More information about the llvm-commits
mailing list