[llvm] r366407 - [NFC][PowerPC] Add the test to test the pass block-placement

Kang Zhang via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 17 23:56:49 PDT 2019


Author: zhangkang
Date: Wed Jul 17 23:56:49 2019
New Revision: 366407

URL: http://llvm.org/viewvc/llvm-project?rev=366407&view=rev
Log:
[NFC][PowerPC] Add the test to test the pass block-placement

Added:
    llvm/trunk/test/CodeGen/PowerPC/block-placement-1.mir
Modified:
    llvm/trunk/test/CodeGen/PowerPC/block-placement.mir

Added: llvm/trunk/test/CodeGen/PowerPC/block-placement-1.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/block-placement-1.mir?rev=366407&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/block-placement-1.mir (added)
+++ llvm/trunk/test/CodeGen/PowerPC/block-placement-1.mir Wed Jul 17 23:56:49 2019
@@ -0,0 +1,312 @@
+# RUN: llc -verify-machineinstrs -mcpu=pwr9 -mtriple powerpc64le-unknown-linux-gnu \
+# RUN:   -run-pass=block-placement -o - %s | FileCheck %s
+--- |
+  ; ModuleID = 'test.ll'
+  source_filename = "test.ll"
+  target datalayout = "e-m:e-i64:64-n32:64"
+  
+  @_ZTIl = external constant i8*
+  @_ZTIi = external constant i8*
+  @_ZTIc = external constant i8*
+  
+  define dso_local void @_Z6calleev() local_unnamed_addr {
+  entry:
+    tail call void @__cxa_rethrow()
+    unreachable
+  }
+  
+  declare void @__cxa_rethrow() local_unnamed_addr
+  
+  define dso_local void @_Z14TestSinglePredv() local_unnamed_addr personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) {
+  entry:
+    br label %for.body
+  
+  for.cond.cleanup:                                 ; preds = %for.inc
+    ret void
+  
+  for.body:                                         ; preds = %for.inc, %entry
+    %lsr.iv = phi i32 [ %lsr.iv.next, %for.inc ], [ 10, %entry ]
+    invoke void @__cxa_rethrow()
+            to label %.noexc unwind label %lpad
+  
+  .noexc:                                           ; preds = %for.body
+    unreachable
+  
+  lpad:                                             ; preds = %for.body
+    %0 = landingpad { i8*, i32 }
+            catch i8* bitcast (i8** @_ZTIl to i8*)
+            catch i8* bitcast (i8** @_ZTIi to i8*)
+            catch i8* null
+    %1 = extractvalue { i8*, i32 } %0, 0
+    %2 = extractvalue { i8*, i32 } %0, 1
+    %3 = tail call i32 @llvm.eh.typeid.for(i8* bitcast (i8** @_ZTIl to i8*))
+    %matches = icmp eq i32 %2, %3
+    br i1 %matches, label %catch4, label %catch.fallthrough
+  
+  catch4:                                           ; preds = %lpad
+    %4 = tail call i8* @__cxa_begin_catch(i8* %1)
+    invoke void @__cxa_rethrow()
+            to label %unreachable unwind label %lpad6
+  
+  catch.fallthrough:                                ; preds = %lpad
+    %5 = tail call i32 @llvm.eh.typeid.for(i8* bitcast (i8** @_ZTIi to i8*))
+    %matches1 = icmp eq i32 %2, %5
+    %6 = tail call i8* @__cxa_begin_catch(i8* %1)
+    br i1 %matches1, label %catch2, label %catch
+  
+  catch2:                                           ; preds = %catch.fallthrough
+    tail call void @__cxa_end_catch()
+    br label %for.inc
+  
+  catch:                                            ; preds = %catch.fallthrough
+    tail call void @__cxa_end_catch()
+    br label %for.inc
+  
+  lpad6:                                            ; preds = %catch4
+    %7 = landingpad { i8*, i32 }
+            cleanup
+            catch i8* bitcast (i8** @_ZTIc to i8*)
+    %8 = extractvalue { i8*, i32 } %7, 1
+    %9 = tail call i32 @llvm.eh.typeid.for(i8* bitcast (i8** @_ZTIc to i8*))
+    %matches9 = icmp eq i32 %8, %9
+    br i1 %matches9, label %catch10, label %ehcleanup
+  
+  catch10:                                          ; preds = %lpad6
+    %10 = extractvalue { i8*, i32 } %7, 0
+    %11 = tail call i8* @__cxa_begin_catch(i8* %10)
+    tail call void @__cxa_end_catch()
+    tail call void @__cxa_end_catch()
+    br label %for.inc
+  
+  for.inc:                                          ; preds = %catch10, %catch, %catch2
+    %lsr.iv.next = add nsw i32 %lsr.iv, -1
+    %exitcond = icmp eq i32 %lsr.iv.next, 0
+    br i1 %exitcond, label %for.cond.cleanup, label %for.body
+  
+  ehcleanup:                                        ; preds = %lpad6
+    tail call void @__cxa_end_catch()
+    %exn.obj = extractvalue { i8*, i32 } %7, 0
+    call void @_Unwind_Resume(i8* %exn.obj)
+    unreachable
+  
+  unreachable:                                      ; preds = %catch4
+    unreachable
+  }
+  
+  declare i32 @__gxx_personality_v0(...)
+  
+  ; Function Attrs: nounwind readnone
+  declare i32 @llvm.eh.typeid.for(i8*) #0
+  
+  declare i8* @__cxa_begin_catch(i8*) local_unnamed_addr
+  
+  declare void @__cxa_end_catch() local_unnamed_addr
+  
+  ; Function Attrs: nounwind
+  declare void @llvm.stackprotector(i8*, i8**) #1
+  
+  declare void @_Unwind_Resume(i8*)
+  
+  attributes #0 = { nounwind readnone }
+  attributes #1 = { nounwind }
+
+...
+---
+name:            _Z6calleev
+alignment:       4
+exposesReturnsTwice: false
+legalized:       false
+regBankSelected: false
+selected:        false
+failedISel:      false
+tracksRegLiveness: true
+hasWinCFI:       false
+registers:       []
+liveins:         []
+frameInfo:
+  isFrameAddressTaken: false
+  isReturnAddressTaken: false
+  hasStackMap:     false
+  hasPatchPoint:   false
+  stackSize:       32
+  offsetAdjustment: 0
+  maxAlignment:    0
+  adjustsStack:    true
+  hasCalls:        true
+  stackProtector:  ''
+  maxCallFrameSize: 32
+  cvBytesOfCalleeSavedRegisters: 0
+  hasOpaqueSPAdjustment: false
+  hasVAStart:      false
+  hasMustTailInVarArgFunc: false
+  localFrameSize:  0
+  savePoint:       ''
+  restorePoint:    ''
+fixedStack:      []
+stack:           []
+callSites:       []
+constants:       []
+machineFunctionInfo: {}
+body:             |
+  bb.0.entry:
+    $x0 = MFLR8 implicit $lr8
+    STD killed $x0, 16, $x1
+    $x1 = STDU $x1, -32, $x1
+    CFI_INSTRUCTION def_cfa_offset 32
+    CFI_INSTRUCTION offset $lr8, 16
+    BL8_NOP @__cxa_rethrow, csr_svr464_altivec, implicit-def dead $lr8, implicit $rm, implicit-def $r1
+
+...
+---
+name:            _Z14TestSinglePredv
+alignment:       4
+exposesReturnsTwice: false
+legalized:       false
+regBankSelected: false
+selected:        false
+failedISel:      false
+tracksRegLiveness: true
+hasWinCFI:       false
+registers:       []
+liveins:         []
+frameInfo:
+  isFrameAddressTaken: false
+  isReturnAddressTaken: false
+  hasStackMap:     false
+  hasPatchPoint:   false
+  stackSize:       64
+  offsetAdjustment: 0
+  maxAlignment:    0
+  adjustsStack:    true
+  hasCalls:        true
+  stackProtector:  ''
+  maxCallFrameSize: 32
+  cvBytesOfCalleeSavedRegisters: 0
+  hasOpaqueSPAdjustment: false
+  hasVAStart:      false
+  hasMustTailInVarArgFunc: false
+  localFrameSize:  0
+  savePoint:       ''
+  restorePoint:    ''
+fixedStack:
+  - { id: 0, type: spill-slot, offset: -80, size: 8, alignment: 16, stack-id: default, 
+      callee-saved-register: '$x30', callee-saved-restored: true, debug-info-variable: '', 
+      debug-info-expression: '', debug-info-location: '' }
+  - { id: 1, type: spill-slot, offset: -88, size: 8, alignment: 8, stack-id: default, 
+      callee-saved-register: '$x29', callee-saved-restored: true, debug-info-variable: '', 
+      debug-info-expression: '', debug-info-location: '' }
+stack:           []
+callSites:       []
+constants:       []
+machineFunctionInfo: {}
+body:             |
+  bb.0.entry:
+    successors: %bb.1(0x80000000)
+    liveins: $x29, $x30
+  
+    $x0 = MFLR8 implicit $lr8
+    CFI_INSTRUCTION def_cfa_offset 64
+    CFI_INSTRUCTION offset $lr8, 16
+    CFI_INSTRUCTION offset $x29, -24
+    CFI_INSTRUCTION offset $x30, -16
+    STD killed $x29, -24, $x1 :: (store 8 into %fixed-stack.1)
+    STD killed $x30, -16, $x1 :: (store 8 into %fixed-stack.0, align 16)
+    STD killed $x0, 16, $x1
+    $x1 = STDU $x1, -64, $x1
+    renamable $r29 = LI 10
+  
+  bb.1.for.body:
+    successors: %bb.2(0x7ffff800), %bb.3(0x00000800)
+    liveins: $r29
+  
+    EH_LABEL <mcsymbol .Ltmp0>
+    BL8_NOP @__cxa_rethrow, csr_svr464_altivec, implicit-def dead $lr8, implicit $rm, implicit-def $r1
+    EH_LABEL <mcsymbol .Ltmp1>
+  
+  bb.2..noexc:
+    successors: 
+  
+  
+  bb.3.lpad (landing-pad):
+    successors: %bb.4(0x00000001), %bb.5(0x7fffffff)
+    liveins: $r29, $x3, $x4
+  
+    EH_LABEL <mcsymbol .Ltmp2>
+    $x30 = OR8 killed $x4, $x4
+    renamable $cr0 = CMPLWI renamable $r30, 3
+    BCC 71, killed renamable $cr0, %bb.5
+  
+  bb.4.catch4:
+    successors: %bb.11(0x7ffff800), %bb.6(0x00000800)
+    liveins: $r29, $x3
+  
+    BL8_NOP @__cxa_begin_catch, csr_svr464_altivec, implicit-def dead $lr8, implicit $rm, implicit killed $x3, implicit $x2, implicit-def $r1, implicit-def dead $x3
+    EH_LABEL <mcsymbol .Ltmp3>
+    BL8_NOP @__cxa_rethrow, csr_svr464_altivec, implicit-def dead $lr8, implicit $rm, implicit-def $r1
+    EH_LABEL <mcsymbol .Ltmp4>
+    B %bb.11
+  
+  bb.5.catch.fallthrough:
+    successors: %bb.8(0x80000000)
+    liveins: $r29, $x3, $x30
+  
+    BL8_NOP @__cxa_begin_catch, csr_svr464_altivec, implicit-def dead $lr8, implicit $rm, implicit killed $x3, implicit $x2, implicit-def $r1, implicit-def dead $x3
+    renamable $cr0 = CMPLWI killed renamable $r30, 2, implicit $x30
+    B %bb.8
+  
+  bb.6.lpad6 (landing-pad):
+    successors: %bb.7(0x7fffffff), %bb.10(0x00000001)
+    liveins: $r29, $x3, $x4
+  
+    EH_LABEL <mcsymbol .Ltmp5>
+    renamable $cr0 = CMPLWI killed renamable $r4, 4, implicit $x4
+    $x30 = OR8 killed $x3, $x3
+    BCC 70, killed renamable $cr0, %bb.10
+  
+  bb.7.catch10:
+    successors: %bb.8(0x80000000)
+    liveins: $r29, $x30
+  
+    $x3 = OR8 killed $x30, $x30
+    BL8_NOP @__cxa_begin_catch, csr_svr464_altivec, implicit-def dead $lr8, implicit $rm, implicit killed $x3, implicit-def $r1, implicit-def dead $x3
+    BL8_NOP @__cxa_end_catch, csr_svr464_altivec, implicit-def dead $lr8, implicit $rm, implicit-def $r1
+  
+  bb.8.for.inc:
+    successors: %bb.9(0x04000000), %bb.1(0x7c000000)
+    liveins: $r29
+  
+    BL8_NOP @__cxa_end_catch, csr_svr464_altivec, implicit-def dead $lr8, implicit $rm, implicit-def $r1
+    renamable $r29 = nsw ADDI killed renamable $r29, -1
+    renamable $cr0 = CMPLWI renamable $r29, 0
+    BCC 68, killed renamable $cr0, %bb.1
+  
+  bb.9.for.cond.cleanup:
+    $x1 = ADDI8 $x1, 64
+    $x0 = LD 16, $x1
+    MTLR8 killed $x0, implicit-def $lr8
+    $x30 = LD -16, $x1 :: (load 8 from %fixed-stack.0, align 16)
+    $x29 = LD -24, $x1 :: (load 8 from %fixed-stack.1)
+    BLR8 implicit $lr8, implicit $rm
+  
+  bb.10.ehcleanup:
+    successors: 
+    liveins: $x30
+  
+    BL8_NOP @__cxa_end_catch, csr_svr464_altivec, implicit-def dead $lr8, implicit $rm, implicit-def $r1
+    $x3 = OR8 killed $x30, $x30
+    BL8_NOP @_Unwind_Resume, csr_svr464_altivec, implicit-def dead $lr8, implicit $rm, implicit killed $x3, implicit-def $r1
+  
+  bb.11.unreachable:
+
+  ; CHECK:      bb.1.for.body:
+  ; CHECK:        successors: %bb.2(0x7ffff800), %bb.3(0x00000800)
+  ; CHECK:        B %bb.2
+
+  ; CHECK:      bb.4.catch4:
+  ; CHECK:        successors: %bb.11(0x7ffff800), %bb.6(0x00000800)
+  ; CHECK:        B %bb.11
+
+  ; CHECK:      bb.2..noexc:
+
+  ; CHECK:      bb.11.unreachable: 
+...

Modified: llvm/trunk/test/CodeGen/PowerPC/block-placement.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/block-placement.mir?rev=366407&r1=366406&r2=366407&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/block-placement.mir (original)
+++ llvm/trunk/test/CodeGen/PowerPC/block-placement.mir Wed Jul 17 23:56:49 2019
@@ -209,7 +209,12 @@ body:             |
     BLR8 implicit $lr8, implicit $rm, implicit killed $x3
 
   ; CHECK:      bb.5.if.else.i:
-  ; CHECK:      B %bb.11
+  ; CHECK:        successors: %bb.11(0x80000000)
+  ; CHECK:        B %bb.11
+
+  ; CHECK:      bb.8.while.body.i (align 4):
+  ; CHECK:        successors: %bb.11(0x04000000), %bb.9(0x7c000000)
+  ; CHECK:        BCC 76, killed renamable $cr0, %bb.11
 
   ; CHECK:      bb.11:
   ; CHECK:        renamable $x3 = LI8 1




More information about the llvm-commits mailing list