[PATCH] D144849: [SCEV] Only add uses to worklist for instrs in map, loop or phis.

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 27 03:21:06 PST 2023


nikic added a comment.

I like the idea here, and have tried changes along these lines in the past, but always ran into issues. Some questions:

- If we have `%y = add %x, 1; %z = add %y, 1` and create SCEV for `%z`, we will create one for `%x`, but not for `%y`. Doesn't this break the invalidation chain?
- Can we rely on LCSSA in SCEV? I don't think it's guaranteed.
- I don't really understand the LCSSA phi special case. The LCSSA phis themselves should already get added without the `isa<PHINode>` check by dint of being users of a loop value. Why do we need to enforce addition of the LCSSA users, but not its transitive users?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144849/new/

https://reviews.llvm.org/D144849



More information about the llvm-commits mailing list