This patch introduces API that keeps track of SCEVs users of
another SCEVs, required to handle invalidations of users along
with operands that comes in follow-up patches.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/lib/Analysis/ScalarEvolution.cpp | ||
---|---|---|
13307 | Something we might want to consider is to not track users of SCEVConstant. I believe this is where things are moving in IR (dropping use lists for ConstantData) and we might want to avoid repeating that mistake from the start. I don't think it's possible for a SCEVConstant to ever become invalid (as they are just integers -- constant expressions are SCEVUnknown), so not having SCEVConstant users should not present an issue for invalidation purposes. |
LGTM.
llvm/lib/Analysis/ScalarEvolution.cpp | ||
---|---|---|
13307 | I agree with Nikita here. I'm fine with this either being added before commit (e.g. treating my LGTM as conditional), or a separate follow on commit. |
llvm/lib/Analysis/ScalarEvolution.cpp | ||
---|---|---|
13307 | It's a good point, but I'd prefer to make it a follow-up. |
Something we might want to consider is to not track users of SCEVConstant. I believe this is where things are moving in IR (dropping use lists for ConstantData) and we might want to avoid repeating that mistake from the start.
I don't think it's possible for a SCEVConstant to ever become invalid (as they are just integers -- constant expressions are SCEVUnknown), so not having SCEVConstant users should not present an issue for invalidation purposes.