diff options
author | ManuelJBrito <59119670+ManuelJBrito@users.noreply.github.com> | 2024-08-14 08:18:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-14 08:18:33 +0100 |
commit | 829992cf21e9220bbf7985073745ee8f09b0b7f1 (patch) | |
tree | 29d324c1557efcd33583698f5047208fa017f58e /llvm/lib/IR/Module.cpp | |
parent | 109b50808f72c228518766c3b384dd14e0dcf4ee (diff) | |
download | llvm-829992cf21e9220bbf7985073745ee8f09b0b7f1.zip llvm-829992cf21e9220bbf7985073745ee8f09b0b7f1.tar.gz llvm-829992cf21e9220bbf7985073745ee8f09b0b7f1.tar.bz2 |
[NewGVN] Prevent cyclic dependencies by ensuring Leader has min RPO number (#82110)
Cyclic dependencies in NewGVN can result in miscompilation and
termination issues.
This patch ensures that the Class Leader is always the member with the
lowest RPO number. This ensures that the Class Leader is processed
before all other members, making the cyclic dependence impossible.
This fixes #35683.
Regressions:
- 'simp-to-self.ll' regresses due to a known limitation in the way
NewGVN and InstSimplify interact. With the new leader, InstSimplify does
not know that %conv is 1 and fails to simplify.
Diffstat (limited to 'llvm/lib/IR/Module.cpp')
0 files changed, 0 insertions, 0 deletions