[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