[PATCH] D133313: [Assignment Tracking][18/*] Account for assignment tracking in LICM

Orlando Cazalet-Hyams via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 12 03:33:29 PDT 2022


Orlando added inline comments.


================
Comment at: llvm/test/DebugInfo/Generic/assignment-tracking/licm/multi-exit.ll:23-24
+;;
+;; Check that a store sunk into multiple exits retains its (their) dbg.assign,
+;; and that the new stores share the same DIAssignID.
+
----------------
jmorse wrote:
> This seems slightly un-natural as there aren't any loop exits?
IIRC (it's been a while since I created this test) this was reduced from a real-world reproducer and the IR hasn't been modified. It looks like this CFG has become two loops and we're concerned with the inner one, which appears to look like this:

`if.cond` - header, exiting
`if.then` - latch, exiting
`if.end3.loopexit` - exit
`if.end` - exit

Here's the CFG.

```
      entry
        |
        v
*---->for.cond.outer
|       |
|       v
|  +->for.cond-----+
|  |    |          |
|  |    v          |
|  +--if.then      |
|       |          |
|       v          v
|     if.end     if.end3.loopexit
|       |          |
|       v          |
+-----if.end3 <----+
```

The store in `for.cond` is sunk into the inner-loop exits `if.end` and `if.end3.loopexit`.


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

https://reviews.llvm.org/D133313



More information about the llvm-commits mailing list