
In review of bbde6b, I had originally proposed that we support the legacy text format. As review evolved, it bacame clear this had been a bad idea (too much complexity), but in order to let that patch finally move forward, I approved the change with the variant. This change undoes the variant, and updates all the tests to just use the array form.
133 lines
4.6 KiB
YAML
133 lines
4.6 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
|
# RUN: llc -start-before=if-converter -stop-after=if-converter -o - %s \
|
|
# RUN: -verify-machineinstrs | FileCheck %s
|
|
--- |
|
|
; ModuleID = 'reduced.ll'
|
|
source_filename = "reduced.ll"
|
|
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
target triple = "armv4t-unknown-linux-gnueabi"
|
|
|
|
define void @tusb1210_chg_det_work(i1 %tobool.not) {
|
|
entry:
|
|
br i1 %tobool.not, label %if.else, label %if.then
|
|
|
|
if.then: ; preds = %entry
|
|
callbr void asm sideeffect ".word b, ${1:l}, ${0:c}\0A\09", "i,!i"(ptr null)
|
|
to label %if.end [label %if.end.sink.split]
|
|
|
|
if.else: ; preds = %entry
|
|
callbr void asm sideeffect ".word b, ${1:l}, ${0:c}\0A\09", "i,!i"(ptr null)
|
|
to label %if.end [label %if.end.sink.split]
|
|
|
|
if.end.sink.split: ; preds = %if.else, %if.then
|
|
%.sink = phi i32 [ 1, %if.then ], [ 0, %if.else ]
|
|
store i32 %.sink, ptr null, align 4
|
|
br label %if.end
|
|
|
|
if.end: ; preds = %if.end.sink.split, %if.else, %if.then
|
|
ret void
|
|
}
|
|
|
|
...
|
|
---
|
|
name: tusb1210_chg_det_work
|
|
alignment: 4
|
|
exposesReturnsTwice: false
|
|
legalized: false
|
|
regBankSelected: false
|
|
selected: false
|
|
failedISel: false
|
|
tracksRegLiveness: true
|
|
hasWinCFI: false
|
|
callsEHReturn: false
|
|
callsUnwindInit: false
|
|
hasEHContTarget: false
|
|
hasEHScopes: false
|
|
hasEHFunclets: false
|
|
debugInstrRef: false
|
|
failsVerification: false
|
|
tracksDebugUserValues: true
|
|
registers: []
|
|
liveins:
|
|
- { reg: '$r0', virtual-reg: '' }
|
|
frameInfo:
|
|
isFrameAddressTaken: false
|
|
isReturnAddressTaken: false
|
|
hasStackMap: false
|
|
hasPatchPoint: false
|
|
stackSize: 0
|
|
offsetAdjustment: 0
|
|
maxAlignment: 1
|
|
adjustsStack: false
|
|
hasCalls: false
|
|
stackProtector: ''
|
|
functionContext: ''
|
|
maxCallFrameSize: 0
|
|
cvBytesOfCalleeSavedRegisters: 0
|
|
hasOpaqueSPAdjustment: false
|
|
hasVAStart: false
|
|
hasMustTailInVarArgFunc: false
|
|
hasTailCall: false
|
|
localFrameSize: 0
|
|
savePoint: []
|
|
restorePoint: []
|
|
fixedStack: []
|
|
stack: []
|
|
callSites: []
|
|
debugValueSubstitutions: []
|
|
constants: []
|
|
machineFunctionInfo: {}
|
|
body: |
|
|
; CHECK-LABEL: name: tusb1210_chg_det_work
|
|
; CHECK: bb.0.entry:
|
|
; CHECK-NEXT: successors: %bb.1(0x80000000), %bb.2(0x80000000)
|
|
; CHECK-NEXT: liveins: $r0
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: TSTri killed renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
|
|
; CHECK-NEXT: renamable $r0 = MOVi 0, 1 /* CC::ne */, $cpsr, $noreg
|
|
; CHECK-NEXT: renamable $r0 = MOVi 1, 0 /* CC::eq */, killed $cpsr, $noreg, implicit killed $r0
|
|
; CHECK-NEXT: INLINEASM_BR &".word b, ${1:l}, ${0:c}\0A\09", 9 /* sideeffect mayload attdialect */, 13 /* imm */, 0, 13 /* imm */, %bb.1
|
|
; CHECK-NEXT: B %bb.2
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: bb.1.if.end.sink.split (machine-block-address-taken, inlineasm-br-indirect-target):
|
|
; CHECK-NEXT: successors: %bb.2(0x80000000)
|
|
; CHECK-NEXT: liveins: $r0
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: renamable $r1 = MOVi 0, 14 /* CC::al */, $noreg, $noreg
|
|
; CHECK-NEXT: STRi12 killed renamable $r0, killed renamable $r1, 0, 14 /* CC::al */, $noreg :: (store (s32) into `ptr null`)
|
|
; CHECK-NEXT: {{ $}}
|
|
; CHECK-NEXT: bb.2.if.end:
|
|
; CHECK-NEXT: BX_RET 14 /* CC::al */, $noreg
|
|
bb.0.entry:
|
|
successors: %bb.4(0x40000000), %bb.1(0x40000000)
|
|
liveins: $r0
|
|
|
|
TSTri killed renamable $r0, 1, 14 /* CC::al */, $noreg, implicit-def $cpsr
|
|
Bcc %bb.4, 1 /* CC::ne */, killed $cpsr
|
|
|
|
bb.1.if.then:
|
|
successors: %bb.3(0x80000000), %bb.2(0x00000000)
|
|
|
|
renamable $r0 = MOVi 1, 14 /* CC::al */, $noreg, $noreg
|
|
INLINEASM_BR &".word b, ${1:l}, ${0:c}\0A\09", 9 /* sideeffect mayload attdialect */, 13 /* imm */, 0, 13 /* imm */, %bb.2
|
|
B %bb.3
|
|
|
|
bb.2.if.end.sink.split (machine-block-address-taken, inlineasm-br-indirect-target):
|
|
successors: %bb.3(0x80000000)
|
|
liveins: $r0
|
|
|
|
renamable $r1 = MOVi 0, 14 /* CC::al */, $noreg, $noreg
|
|
STRi12 killed renamable $r0, killed renamable $r1, 0, 14 /* CC::al */, $noreg :: (store (s32) into `ptr null`)
|
|
|
|
bb.3.if.end:
|
|
BX_RET 14 /* CC::al */, $noreg
|
|
|
|
bb.4.if.else:
|
|
successors: %bb.3(0x80000000), %bb.2(0x00000000)
|
|
|
|
renamable $r0 = MOVi 0, 14 /* CC::al */, $noreg, $noreg
|
|
INLINEASM_BR &".word b, ${1:l}, ${0:c}\0A\09", 9 /* sideeffect mayload attdialect */, 13 /* imm */, 0, 13 /* imm */, %bb.2
|
|
B %bb.3
|
|
|
|
...
|