[llvm] [SCEV] Do not attempt to collect loop guards for loops without predecessor. (PR #123662)
Danila Malyutin via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 22 05:43:17 PST 2025
================
@@ -336,3 +336,31 @@ exit:
ret void
}
+
+; Checks correct traversal for loops without a unique predecessor
+; outside the loop.
+define void @pr122913() {
----------------
danilaml wrote:
```llvm
define void @pr122913() {
entry:
br i1 1, label %bb, label %header
bb:
br i1 1, label %exit, label %header
header:
%0 = phi i32 [ %1, %body ], [ 0, %bb ], [ 0, %entry ]
br label %body
body:
%1 = add i32 %0, 1
%2 = icmp ult i32 %1, 0
br i1 %2, label %header, label %exit
exit:
ret void
}
```
Seems to crash in the same way (either no predecessors or multiple predecessors would work to cause this crash). https://godbolt.org/z/8rdhM11vh
https://github.com/llvm/llvm-project/pull/123662
More information about the llvm-commits
mailing list