[PATCH] D156658: [clang][dataflow] When checking `ExprToLoc` convergence, only consider children of block terminator.

Gábor Horváth via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 22 09:59:42 PDT 2023


xazax.hun added a comment.

In D156658#4606400 <https://reviews.llvm.org/D156658#4606400>, @mboehme wrote:

> We only do widening at loop heads, and this means that widening only affects locations and values that flow into the loop from the outside or from a previous loop iteration.
>
> But convergence can also be blocked by locations and values that are only used within the loop body. If these change from loop iteration to loop iteration and we don't perform widening on them, we will conclude that the state of the loop body never converges.

I wonder if this is something we need to solve. Maybe when we do the widening at the loop head that should also affect values that are not flowing into that node. I.e., at the loop heads we might want to also look at the values from the previous iteration that are only used within the loop body.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D156658



More information about the cfe-commits mailing list