[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