[PATCH] D114650: [SCEV] Construct SCEV iteratively.
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 27 07:01:43 PDT 2022
nikic added inline comments.
================
Comment at: llvm/lib/Analysis/ScalarEvolution.cpp:7264
+ Ops.push_back(BO->LHS);
+ Ops.push_back(BO->RHS);
+ return nullptr;
----------------
Add and mul currently have special code that tries to combine multiple sequential adds/mul into one getAddExpr/getMulExpr call. This is effectively lost here (or maybe worse, we end up doing both -- each add individually here, and then a multiple-add variant in getSCEV).
I think if we're going to change this (which might well make sense), we should probably change that separately, and also in the createSCEV() code as well. I suspect that this might account for both some of the codegen changes and some of the compile-time impact.
================
Comment at: llvm/lib/Analysis/ScalarEvolution.cpp:7290
+ case Instruction::GetElementPtr:
+ if (cast<GEPOperator>(U)->getSourceElementType()->isSized()) {
+ for (Value *Index : U->operands())
----------------
https://github.com/llvm/llvm-project/commit/327307d9d4da0045f762f75343fe66b0f10ecc63 ;)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114650/new/
https://reviews.llvm.org/D114650
More information about the llvm-commits
mailing list