[PATCH] D114650: [SCEV] Construct SCEV iteratively.
Nikita Popov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 28 06:28:28 PDT 2022
nikic accepted this revision.
nikic added a comment.
This revision is now accepted and ready to land.
LG. Seems to be a recurring problem, and the solution looks sufficiently non-intrusive. I like that there is no requirement to precisely synchronize the logic between createSCEV and createSCEVIter here, which would be a PITA. If we don't queue enough operands, those will just get computed recursively.
================
Comment at: llvm/lib/Analysis/ScalarEvolution.cpp:7349
+ // returned getUnknown for a select constant expressions anyway.
+ if (isa<Instruction>(U)) {
+ for (Value *Inc : cast<Instruction>(U)->operands())
----------------
I don't think this is strictly true due to the createNodeForSelectViaUMinSeq() code. And either way, I don't think we need to handle it this precisely here.
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