[llvm] LoopDeletion: Move EH pad check before the isLoopNeverExecuted Check (PR #78189)

Manish Kausik H via llvm-commits llvm-commits at lists.llvm.org
Thu Jan 18 10:53:25 PST 2024


================
@@ -0,0 +1,40 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
+; RUN: opt %s -passes=loop-deletion -S | FileCheck %s
+
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128-ni:1-p2:32:8:8:32-ni:2"
+target triple = "x86_64-unknown-linux-gnu"
+
+define void @wombat() gc "statepoint-example" personality ptr null {
+; CHECK-LABEL: define void @wombat() gc "statepoint-example" personality ptr null {
+; CHECK-NEXT:  bb:
+; CHECK-NEXT:    br i1 false, label [[BB1:%.*]], label [[BB4:%.*]]
+; CHECK:       bb1:
+; CHECK-NEXT:    br label [[BB2:%.*]]
+; CHECK:       bb2:
+; CHECK-NEXT:    [[INVOKE:%.*]] = invoke double null(i64 0)
+; CHECK-NEXT:            to label [[BB2]] unwind label [[BB3:%.*]]
+; CHECK:       bb3:
+; CHECK-NEXT:    [[LANDINGPAD:%.*]] = landingpad { ptr, i32 }
+; CHECK-NEXT:            cleanup
+; CHECK-NEXT:    ret void
+; CHECK:       bb4:
+; CHECK-NEXT:    ret void
+;
+bb:
+  br i1 false, label %bb1, label %bb4
+
+bb1:                                              ; preds = %bb
+  br label %bb2
+
+bb2:                                              ; preds = %bb1, %bb2
+  %invoke = invoke double null(i64 0)
----------------
Nirhar wrote:

Done

https://github.com/llvm/llvm-project/pull/78189


More information about the llvm-commits mailing list