diff options
author | Joshua Cao <cao.joshua@yahoo.com> | 2022-12-16 04:00:56 -0500 |
---|---|---|
committer | Joshua Cao <cao.joshua@yahoo.com> | 2023-01-05 00:05:49 -0800 |
commit | 629d880dc527cd7a8d692cd24af196db4ea8646b (patch) | |
tree | f49022fb86dfa739ae46614d6963b3a5094690e4 /llvm/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp | |
parent | 6a930e889145cbfb3ff1d99f67a5382c19bc1745 (diff) | |
download | llvm-629d880dc527cd7a8d692cd24af196db4ea8646b.zip llvm-629d880dc527cd7a8d692cd24af196db4ea8646b.tar.gz llvm-629d880dc527cd7a8d692cd24af196db4ea8646b.tar.bz2 |
[LoopUnrollAndJam] Visit phi operand dependencies in post-order
Fixes https://github.com/llvm/llvm-project/issues/58565
The previous implementation visits operands in pre-order, but this does
not guarantee an instruction is visited before its uses. This can cause
instructions to be copied in the incorrect order. For example:
```
a = ...
b = add a, 1
c = add a, b
d = add b, a
```
Pre-order visits does not guarantee the order in which `a` and `b` are
visited. LoopUnrollAndJam may incorrectly insert `b` before `a`.
This patch implements post-order visits. By visiting dependencies first,
we guarantee that an instruction's dependencies are visited first.
Differential Revision: https://reviews.llvm.org/D140255
Diffstat (limited to 'llvm/lib/DebugInfo/CodeView/DebugFrameDataSubsection.cpp')
0 files changed, 0 insertions, 0 deletions