Issue 122913
Summary [SCEV] Another SEGV/stack overflow in LoopGuards
Labels llvm:SCEV, crash-on-valid
Assignees juliannagele
Reporter danilaml
    Similar to https://github.com/llvm/llvm-project/issues/120615. Looks like the fix wasn't a complete one. Here is an example:

```llvm
target triple = "x86_64-unknown-linux-gnu"

define ptr @f(i32 %0) {
  switch i32 0, label %bb4 [
    i32 1, label %bb4
    i32 2, label %bb4
    i32 3, label %bb4
    i32 4, label %bb1
    i32 5, label %bb4
    i32 6, label %bb4
 ]

bb:                                               ; No predecessors!
 switch i32 0, label %bb4 [
    i32 0, label %bb4
    i32 1, label %bb1
 ]

bb1:                                              ; preds = %bb2, %bb, %1
  %2 = phi i32 [ %3, %bb2 ], [ 0, %bb ], [ 0, %1 ]
  switch i32 %0, label %bb3 [
    i32 0, label %bb2
    i32 1, label %bb2
    i32 2, label %bb2
  ]

bb2:                                              ; preds = %bb1, %bb1, %bb1
  %3 = add i32 %2, 1
  %4 = icmp ult i32 %0, 0
  br i1 %4, label %bb1, label %bb4

bb3: ; preds = %bb1
  unreachable

bb4: ; preds = %bb2, %bb, %bb, %1, %1, %1, %1, %1, %1
  ret ptr null
}
```
Crashes with the same command line `opt -passes=nary-reassociate --scalar-evolution-use-expensive-range-sharpening`
godbolt: https://godbolt.org/z/4d3jo8jTz
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to