[llvm] 9bde5be - [BranchFolding][SEH] Add test to track SEH CFG optimization (#77598)

via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 10 06:34:22 PST 2024


Author: HaohaiWen
Date: 2024-01-10T22:34:18+08:00
New Revision: 9bde5becb44ea071f5e1fa1f5d4071dc8788b18c

URL: https://github.com/llvm/llvm-project/commit/9bde5becb44ea071f5e1fa1f5d4071dc8788b18c
DIFF: https://github.com/llvm/llvm-project/commit/9bde5becb44ea071f5e1fa1f5d4071dc8788b18c.diff

LOG: [BranchFolding][SEH] Add test to track SEH CFG optimization (#77598)

This test tracks BranchFolding pass which removes fall through jump and
leaves landing-pad to be machine basic block of no predecessors. It
would raise bug as introduced in #77441.

Added: 
    llvm/test/CodeGen/X86/branchfolding-landingpad-cfg.mir

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/X86/branchfolding-landingpad-cfg.mir b/llvm/test/CodeGen/X86/branchfolding-landingpad-cfg.mir
new file mode 100644
index 00000000000000..a494701c2a3997
--- /dev/null
+++ b/llvm/test/CodeGen/X86/branchfolding-landingpad-cfg.mir
@@ -0,0 +1,49 @@
+# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 4
+# RUN: llc -mtriple=x86_64-pc-windows-msvc -run-pass=branch-folder -o - %s | FileCheck %s
+---
+name:            main
+body:             |
+  ; CHECK-LABEL: name: main
+  ; CHECK: bb.0:
+  ; CHECK-NEXT:   successors: %bb.1(0x7ffff800), %bb.3(0x00000800)
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.1:
+  ; CHECK-NEXT:   RET 0
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.2 (machine-block-address-taken, landing-pad, ehfunclet-entry):
+  ; CHECK-NEXT:   successors: %bb.3(0x80000000)
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT:   CLEANUPRET
+  ; CHECK-NEXT: {{  $}}
+  ; CHECK-NEXT: bb.3 (landing-pad, ehfunclet-entry):
+  ; CHECK-NEXT:   CLEANUPRET
+  bb.0:
+    successors: %bb.1(0x7ffff800), %bb.5(0x00000800)
+    JMP_1 %bb.1
+
+  bb.1:
+    successors: %bb.2(0x7ffff800), %bb.4(0x00000800)
+
+    JMP_1 %bb.2
+
+  bb.2:
+    successors: %bb.3(0x7ffff800), %bb.4(0x00000800)
+
+    JMP_1 %bb.3
+
+  bb.3:
+    successors: %bb.6(0x7ffff800)
+
+    JMP_1 %bb.6
+
+  bb.4 (machine-block-address-taken, landing-pad, ehfunclet-entry):
+    successors: %bb.5(0x80000000)
+    CLEANUPRET
+
+  bb.5 (landing-pad, ehfunclet-entry):
+    CLEANUPRET
+
+  bb.6:
+    RET 0
+...


        


More information about the llvm-commits mailing list