You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.207
Former-commit-id: 3b152f462918d427ce18620a2cbe4f8b79650449
This commit is contained in:
parent
8e12397d70
commit
eb85e2fc17
@ -1,23 +0,0 @@
|
||||
# RUN: llc -mtriple=arm-apple-ios -run-pass=if-converter %s -o - | FileCheck %s
|
||||
---
|
||||
name: foo
|
||||
body: |
|
||||
bb.0:
|
||||
B %bb.2
|
||||
|
||||
bb.1:
|
||||
BX_RET 14, 0
|
||||
|
||||
bb.2:
|
||||
Bcc %bb.1, 1, %cpsr
|
||||
|
||||
bb.3:
|
||||
B %bb.1
|
||||
...
|
||||
|
||||
# We should get a single block containing the BX_RET, with no successors at all
|
||||
|
||||
# CHECK: body:
|
||||
# CHECK-NEXT: bb.0:
|
||||
# CHECK-NEXT: BX_RET
|
||||
|
@ -1,75 +0,0 @@
|
||||
# RUN: llc -mtriple thumbv7-apple-ios -run-pass none -o - %s | FileCheck %s
|
||||
# This test ensures that the MIR parser parses the bundled machine instructions
|
||||
# and 'internal' register flags correctly.
|
||||
|
||||
--- |
|
||||
|
||||
define i32 @test1(i32 %a) {
|
||||
entry:
|
||||
%cmp = icmp sgt i32 %a, -78
|
||||
%. = zext i1 %cmp to i32
|
||||
ret i32 %.
|
||||
}
|
||||
|
||||
define i32 @test2(i32 %a) {
|
||||
entry:
|
||||
%cmp = icmp sgt i32 %a, -78
|
||||
%. = zext i1 %cmp to i32
|
||||
ret i32 %.
|
||||
}
|
||||
|
||||
...
|
||||
---
|
||||
name: test1
|
||||
tracksRegLiveness: true
|
||||
liveins:
|
||||
- { reg: '%r0' }
|
||||
body: |
|
||||
bb.0.entry:
|
||||
liveins: %r0
|
||||
; CHECK-LABEL: name: test1
|
||||
; CHECK: %r1 = t2MOVi 0, 14, %noreg, %noreg
|
||||
; CHECK-NEXT: t2CMNri killed %r0, 78, 14, %noreg, implicit-def %cpsr
|
||||
; CHECK-NEXT: BUNDLE implicit-def dead %itstate, implicit-def %r1, implicit killed %cpsr {
|
||||
; CHECK-NEXT: t2IT 12, 8, implicit-def %itstate
|
||||
; CHECK-NEXT: %r1 = t2MOVi 1, 12, killed %cpsr, %noreg, implicit internal killed %itstate
|
||||
; CHECK-NEXT: }
|
||||
; CHECK-NEXT: %r0 = tMOVr killed %r1, 14, %noreg
|
||||
; CHECK-NEXT: tBX_RET 14, %noreg, implicit killed %r0
|
||||
%r1 = t2MOVi 0, 14, _, _
|
||||
t2CMNri killed %r0, 78, 14, _, implicit-def %cpsr
|
||||
BUNDLE implicit-def dead %itstate, implicit-def %r1, implicit killed %cpsr {
|
||||
t2IT 12, 8, implicit-def %itstate
|
||||
%r1 = t2MOVi 1, 12, killed %cpsr, _, implicit internal killed %itstate
|
||||
}
|
||||
%r0 = tMOVr killed %r1, 14, _
|
||||
tBX_RET 14, _, implicit killed %r0
|
||||
...
|
||||
---
|
||||
name: test2
|
||||
tracksRegLiveness: true
|
||||
liveins:
|
||||
- { reg: '%r0' }
|
||||
body: |
|
||||
bb.0.entry:
|
||||
liveins: %r0
|
||||
|
||||
; Verify that the next machine instruction can be on the same line as
|
||||
; '{' or '}'.
|
||||
|
||||
; CHECK-LABEL: name: test2
|
||||
; CHECK: %r1 = t2MOVi 0, 14, %noreg, %noreg
|
||||
; CHECK-NEXT: t2CMNri killed %r0, 78, 14, %noreg, implicit-def %cpsr
|
||||
; CHECK-NEXT: BUNDLE implicit-def dead %itstate, implicit-def %r1, implicit killed %cpsr {
|
||||
; CHECK-NEXT: t2IT 12, 8, implicit-def %itstate
|
||||
; CHECK-NEXT: %r1 = t2MOVi 1, 12, killed %cpsr, %noreg, implicit internal killed %itstate
|
||||
; CHECK-NEXT: }
|
||||
; CHECK-NEXT: %r0 = tMOVr killed %r1, 14, %noreg
|
||||
; CHECK-NEXT: tBX_RET 14, %noreg, implicit killed %r0
|
||||
%r1 = t2MOVi 0, 14, _, _
|
||||
t2CMNri killed %r0, 78, 14, _, implicit-def %cpsr
|
||||
BUNDLE implicit-def dead %itstate, implicit-def %r1, implicit killed %cpsr { t2IT 12, 8, implicit-def %itstate
|
||||
%r1 = t2MOVi 1, 12, killed %cpsr, _, internal implicit killed %itstate
|
||||
} %r0 = tMOVr killed %r1, 14, _
|
||||
tBX_RET 14, _, implicit killed %r0
|
||||
...
|
@ -1,80 +0,0 @@
|
||||
# RUN: llc -mtriple=arm-linux-unknown-gnueabi -run-pass none -o - %s | FileCheck %s
|
||||
|
||||
--- |
|
||||
declare void @dummy_use(i32*, i32)
|
||||
|
||||
define void @test_basic() #0 {
|
||||
entry:
|
||||
%mem = alloca i32, i32 10
|
||||
call void @dummy_use(i32* %mem, i32 10)
|
||||
ret void
|
||||
}
|
||||
|
||||
attributes #0 = { "split-stack" }
|
||||
...
|
||||
---
|
||||
name: test_basic
|
||||
tracksRegLiveness: true
|
||||
frameInfo:
|
||||
stackSize: 48
|
||||
maxAlignment: 4
|
||||
adjustsStack: true
|
||||
hasCalls: true
|
||||
stack:
|
||||
- { id: 0, name: mem, offset: -48, size: 40, alignment: 4 }
|
||||
- { id: 1, type: spill-slot, offset: -4, size: 4, alignment: 4,
|
||||
callee-saved-register: '%lr' }
|
||||
- { id: 2, type: spill-slot, offset: -8, size: 4, alignment: 4,
|
||||
callee-saved-register: '%r11' }
|
||||
body: |
|
||||
bb.0:
|
||||
successors: %bb.2, %bb.1
|
||||
liveins: %r11, %lr
|
||||
|
||||
%sp = STMDB_UPD %sp, 14, _, %r4, %r5
|
||||
CFI_INSTRUCTION def_cfa_offset 8
|
||||
CFI_INSTRUCTION offset %r5, -4
|
||||
CFI_INSTRUCTION offset %r4, -8
|
||||
%r5 = MOVr %sp, 14, _, _
|
||||
%r4 = MRC 15, 0, 13, 0, 3, 14, _
|
||||
%r4 = LDRi12 %r4, 4, 14, _
|
||||
CMPrr %r4, %r5, 14, _, implicit-def %cpsr
|
||||
Bcc %bb.2, 3, %cpsr
|
||||
|
||||
bb.1:
|
||||
successors: %bb.2
|
||||
liveins: %r11, %lr
|
||||
|
||||
%r4 = MOVi 48, 14, _, _
|
||||
%r5 = MOVi 0, 14, _, _
|
||||
%sp = STMDB_UPD %sp, 14, _, %lr
|
||||
CFI_INSTRUCTION def_cfa_offset 12
|
||||
CFI_INSTRUCTION offset %lr, -12
|
||||
BL $__morestack, implicit-def %lr, implicit %sp
|
||||
%sp = LDMIA_UPD %sp, 14, _, %lr
|
||||
%sp = LDMIA_UPD %sp, 14, _, %r4, %r5
|
||||
CFI_INSTRUCTION def_cfa_offset 0
|
||||
BX_RET 14, _
|
||||
|
||||
bb.2:
|
||||
liveins: %r11, %lr
|
||||
|
||||
%sp = LDMIA_UPD %sp, 14, _, %r4, %r5
|
||||
CFI_INSTRUCTION def_cfa_offset 0
|
||||
; CHECK: CFI_INSTRUCTION same_value %r4
|
||||
; CHECK-NEXT: CFI_INSTRUCTION same_value %r5
|
||||
CFI_INSTRUCTION same_value %r4
|
||||
CFI_INSTRUCTION same_value %r5
|
||||
%sp = frame-setup STMDB_UPD %sp, 14, _, killed %r11, killed %lr
|
||||
frame-setup CFI_INSTRUCTION def_cfa_offset 8
|
||||
frame-setup CFI_INSTRUCTION offset %lr, -4
|
||||
frame-setup CFI_INSTRUCTION offset %r11, -8
|
||||
%sp = frame-setup SUBri killed %sp, 40, 14, _, _
|
||||
frame-setup CFI_INSTRUCTION def_cfa_offset 48
|
||||
%r0 = MOVr %sp, 14, _, _
|
||||
%r1 = MOVi 10, 14, _, _
|
||||
BL @dummy_use, csr_aapcs, implicit-def dead %lr, implicit %sp, implicit %r0, implicit killed %r1, implicit-def %sp
|
||||
%sp = ADDri killed %sp, 40, 14, _, _
|
||||
%sp = LDMIA_UPD %sp, 14, _, %r4, %r5
|
||||
MOVPCLR 14, _
|
||||
...
|
@ -1,50 +0,0 @@
|
||||
# RUN: not llc -mtriple thumbv7-apple-ios -run-pass none -o /dev/null %s 2>&1 | FileCheck %s
|
||||
|
||||
--- |
|
||||
@G = external global i32
|
||||
|
||||
define i32 @test1(i32 %a) {
|
||||
entry:
|
||||
br label %foo
|
||||
|
||||
foo:
|
||||
%cmp = icmp sgt i32 %a, -78
|
||||
%. = zext i1 %cmp to i32
|
||||
br i1 %cmp, label %if.then, label %if.else
|
||||
|
||||
if.then:
|
||||
ret i32 %.
|
||||
|
||||
if.else:
|
||||
%b = load i32, i32* @G
|
||||
%c = add i32 %b, 1
|
||||
br label %foo
|
||||
}
|
||||
...
|
||||
---
|
||||
name: test1
|
||||
tracksRegLiveness: true
|
||||
liveins:
|
||||
- { reg: '%r0' }
|
||||
body: |
|
||||
bb.0.entry:
|
||||
successors: %bb.1.foo
|
||||
liveins: %r0
|
||||
bb.1.foo:
|
||||
successors: %bb.2.if.then, %bb.1.foo
|
||||
liveins: %r0
|
||||
|
||||
t2CMNri %r0, 78, 14, _, implicit-def %cpsr
|
||||
%r1 = t2MOVi 0, 14, _, _
|
||||
BUNDLE implicit-def dead %itstate, implicit-def %r1, implicit killed %cpsr {
|
||||
t2IT 12, 8, implicit-def %itstate
|
||||
%r1 = t2MOVi 1, 12, killed %cpsr, _, implicit killed %itstate
|
||||
t2CMNri %r0, 77, 14, _, implicit-def %cpsr
|
||||
t2Bcc %bb.1.foo, 11, killed %cpsr
|
||||
; CHECK: [[@LINE+1]]:3: expected '}'
|
||||
bb.2.if.then:
|
||||
liveins: %r1
|
||||
|
||||
%r0 = tMOVr killed %r1, 14, _
|
||||
tBX_RET 14, _, implicit killed %r0
|
||||
...
|
@ -1,20 +0,0 @@
|
||||
# RUN: not llc -mtriple thumbv7-apple-ios -run-pass none -o /dev/null %s 2>&1 | FileCheck %s
|
||||
|
||||
--- |
|
||||
define i32 @test1(i32 %a) {
|
||||
entry:
|
||||
ret i32 %a
|
||||
}
|
||||
...
|
||||
---
|
||||
name: test1
|
||||
tracksRegLiveness: true
|
||||
liveins:
|
||||
- { reg: '%r0' }
|
||||
body: |
|
||||
bb.0.entry:
|
||||
liveins: %r0
|
||||
tBX_RET 14, _, implicit killed %r0
|
||||
; CHECK: [[@LINE+1]]:5: extraneous closing brace ('}')
|
||||
}
|
||||
...
|
@ -1,65 +0,0 @@
|
||||
# RUN: llc -mtriple=arm-apple-ios -o - %s -run-pass if-converter | FileCheck %s
|
||||
---
|
||||
name: f1
|
||||
body: |
|
||||
bb.0:
|
||||
successors: %bb.1
|
||||
|
||||
B %bb.1
|
||||
|
||||
bb.1:
|
||||
successors: %bb.2, %bb.4
|
||||
|
||||
Bcc %bb.4, 1, %cpsr
|
||||
|
||||
bb.2:
|
||||
successors: %bb.3, %bb.5
|
||||
|
||||
Bcc %bb.5, 1, %cpsr
|
||||
|
||||
bb.3:
|
||||
successors: %bb.5
|
||||
|
||||
B %bb.5
|
||||
|
||||
bb.4:
|
||||
successors:
|
||||
|
||||
bb.5:
|
||||
successors: %bb.1, %bb.6
|
||||
|
||||
Bcc %bb.1, 1, %cpsr
|
||||
|
||||
bb.6:
|
||||
BX_RET 14, _
|
||||
|
||||
...
|
||||
|
||||
# IfConversion.cpp/canFallThroughTo thought there was a fallthrough from
|
||||
# bb.4 to bb5 even if the successor list was empty.
|
||||
# bb.4 is empty, so it surely looks like it can fallthrough, but this is what
|
||||
# happens for a bb just containing an "unreachable".
|
||||
|
||||
#CHECK: body: |
|
||||
#CHECK: bb.0:
|
||||
#CHECK: successors: %bb.1
|
||||
|
||||
#CHECK: bb.1:
|
||||
#CHECK: successors: %bb.3({{.*}}), %bb.2
|
||||
|
||||
# The original brr_cond from bb.1, jumping to the empty bb
|
||||
#CHECK: Bcc %bb.2
|
||||
#CHECK: B %bb.3
|
||||
|
||||
# Empty bb.2, originally containing "unreachable" and thus has no successors
|
||||
# and we cannot guess them: we should print an empty list of successors.
|
||||
#CHECK: bb.2:
|
||||
#CHECK: successors:{{ *$}}
|
||||
|
||||
#CHECK: bb.3:
|
||||
#CHECK: successors: %bb.1
|
||||
|
||||
# Conditional BX_RET and then loop back to bb.1
|
||||
#CHECK: BX_RET 0
|
||||
#CHECK: B %bb.1
|
||||
|
@ -1,30 +0,0 @@
|
||||
# RUN: llc -mtriple=arm-apple-ios -run-pass=if-converter %s -o - | FileCheck %s
|
||||
---
|
||||
name: foo
|
||||
body: |
|
||||
bb.0:
|
||||
Bcc %bb.2, 1, %cpsr
|
||||
|
||||
bb.1:
|
||||
%sp = tADDspi %sp, 1, 14, _
|
||||
B %bb.3
|
||||
|
||||
bb.2:
|
||||
%sp = tADDspi %sp, 2, 14, _
|
||||
B %bb.3
|
||||
|
||||
bb.3:
|
||||
successors:
|
||||
%sp = tADDspi %sp, 3, 14, _
|
||||
BX_RET 14, _
|
||||
...
|
||||
|
||||
# Diamond testcase with unanalyzable instruction in the BB following the
|
||||
# diamond.
|
||||
|
||||
# CHECK: body: |
|
||||
# CHECK: bb.0:
|
||||
# CHECK: %sp = tADDspi %sp, 2, 1, %cpsr
|
||||
# CHECK: %sp = tADDspi %sp, 1, 0, %cpsr, implicit %sp
|
||||
# CHECK: %sp = tADDspi %sp, 3, 14, %noreg
|
||||
# CHECK: BX_RET 14, %noreg
|
@ -1,48 +0,0 @@
|
||||
# RUN: llc -mtriple=arm-apple-ios -run-pass=if-converter %s -o - | FileCheck %s
|
||||
---
|
||||
name: foo
|
||||
body: |
|
||||
bb.0:
|
||||
Bcc %bb.2, 1, %cpsr
|
||||
|
||||
bb.1:
|
||||
successors: %bb.3(0x20000000), %bb.4(0x60000000)
|
||||
%sp = tADDspi %sp, 1, 14, _
|
||||
Bcc %bb.3, 1, %cpsr
|
||||
B %bb.4
|
||||
|
||||
bb.2:
|
||||
successors: %bb.3(0x20000000), %bb.4(0x60000000)
|
||||
%sp = tADDspi %sp, 2, 14, _
|
||||
Bcc %bb.3, 1, %cpsr
|
||||
B %bb.4
|
||||
|
||||
bb.3:
|
||||
successors:
|
||||
%sp = tADDspi %sp, 3, 14, _
|
||||
BX_RET 14, _
|
||||
|
||||
bb.4:
|
||||
successors:
|
||||
%sp = tADDspi %sp, 4, 14, _
|
||||
BX_RET 14, _
|
||||
...
|
||||
|
||||
# Forked-diamond testcase with unanalyzable instructions in both the True and
|
||||
# False BBs following the forked diamond.
|
||||
|
||||
# CHECK: body: |
|
||||
# CHECK: bb.0:
|
||||
# CHECK: successors: %bb.2(0x20000000), %bb.1(0x60000000)
|
||||
|
||||
# CHECK: %sp = tADDspi %sp, 2, 1, %cpsr
|
||||
# CHECK: %sp = tADDspi %sp, 1, 0, %cpsr, implicit %sp
|
||||
# CHECK: Bcc %bb.2, 1, %cpsr
|
||||
|
||||
# CHECK: bb.1:
|
||||
# CHECK: %sp = tADDspi %sp, 4, 14, %noreg
|
||||
# CHECK: BX_RET 14, %noreg
|
||||
|
||||
# CHECK: bb.2:
|
||||
# CHECK: %sp = tADDspi %sp, 3, 14, %noreg
|
||||
# CHECK: BX_RET 14, %noreg
|
@ -1,33 +0,0 @@
|
||||
# RUN: llc -mtriple=arm-apple-ios -run-pass=if-converter %s -o - | FileCheck %s
|
||||
---
|
||||
name: f1
|
||||
body: |
|
||||
bb.0:
|
||||
|
||||
bb.1:
|
||||
Bcc %bb.3, 0, %cpsr
|
||||
|
||||
bb.2:
|
||||
|
||||
bb.3:
|
||||
Bcc %bb.1, 0, %cpsr
|
||||
|
||||
bb.4:
|
||||
successors: %bb.1
|
||||
tBRIND %r1, 14, _
|
||||
...
|
||||
|
||||
# We should only get bb.1 as successor to bb.1. No zero percent probability
|
||||
# edge from bb.1 to bb.2. There shouldn't even be a bb.2 at all.
|
||||
|
||||
# CHECK: body: |
|
||||
# CHECK: bb.0:
|
||||
# CHECK: successors: %bb.1(0x80000000)
|
||||
|
||||
# CHECK: bb.1:
|
||||
# CHECK: successors: %bb.1(0x80000000)
|
||||
# CHECK-NOT: %bb.2(0x00000000)
|
||||
# CHECK: tBRIND %r1, 1, %cpsr
|
||||
# CHECK: B %bb.1
|
||||
|
||||
#CHECK-NOT: bb.2:
|
@ -1,25 +0,0 @@
|
||||
# RUN: llc -mtriple=arm-apple-ios -run-pass=if-converter %s -o - | FileCheck %s
|
||||
---
|
||||
name: foo
|
||||
body: |
|
||||
bb.0:
|
||||
Bcc %bb.2, 0, %cpsr
|
||||
|
||||
bb.1:
|
||||
successors:
|
||||
BX_RET 14, _
|
||||
|
||||
bb.2:
|
||||
successors:
|
||||
%sp = tADDspi %sp, 2, 14, _
|
||||
BX_RET 14, _
|
||||
...
|
||||
|
||||
# Simple testcase with unanalyzable instructions in both TBB and FBB.
|
||||
|
||||
# CHECK: body: |
|
||||
# CHECK: bb.0:
|
||||
# CHECK: %sp = tADDspi %sp, 2, 0, %cpsr
|
||||
# CHECK: BX_RET 0, %cpsr
|
||||
# CHECK: BX_RET 14, %noreg
|
||||
|
@ -1,52 +0,0 @@
|
||||
# RUN: llc -mtriple=arm-apple-ios -run-pass=if-converter %s -o - | FileCheck %s
|
||||
--- |
|
||||
declare void @__stack_chk_fail()
|
||||
declare void @bar()
|
||||
|
||||
define void @foo() {
|
||||
ret void
|
||||
}
|
||||
...
|
||||
---
|
||||
name: foo
|
||||
body: |
|
||||
|
||||
bb.0:
|
||||
Bcc %bb.1, 1, %cpsr
|
||||
B %bb.2
|
||||
|
||||
bb.1:
|
||||
Bcc %bb.3, 0, %cpsr
|
||||
|
||||
bb.2:
|
||||
successors:
|
||||
tBL 14, %cpsr, @__stack_chk_fail
|
||||
|
||||
bb.3:
|
||||
successors:
|
||||
%sp = tADDspi %sp, 2, 14, _
|
||||
%sp = tADDspi %sp, 2, 14, _
|
||||
tTAILJMPdND @bar, 14, %cpsr
|
||||
...
|
||||
|
||||
# bb.2 has no successors, presumably because __stack_chk_fail doesn't return,
|
||||
# so there should be no edge from bb.2 to bb.3.
|
||||
# Nevertheless, IfConversion treats bb.1, bb.2, bb.3 as a triangle and
|
||||
# inserts a predicated copy of bb.2 in bb.1.
|
||||
|
||||
# This caused r302876 to die with a failed assertion.
|
||||
|
||||
# CHECK: bb.0:
|
||||
# CHECK: successors: %bb.2(0x40000000), %bb.1(0x40000000)
|
||||
# CHECK: Bcc %bb.2, 1, %cpsr
|
||||
|
||||
# CHECK: bb.1:
|
||||
# CHECK-NOT: successors: %bb
|
||||
# CHECK: tBL 14, %cpsr, @__stack_chk_fail
|
||||
|
||||
# CHECK: bb.2:
|
||||
# CHECK-NOT: successors: %bb
|
||||
# CHECK: tBL 1, %cpsr, @__stack_chk_fail
|
||||
# CHECK: %sp = tADDspi %sp, 2, 14, %noreg
|
||||
# CHECK: %sp = tADDspi %sp, 2, 14, %noreg
|
||||
# CHECK: tTAILJMPdND @bar, 14, %cpsr
|
@ -1,2 +0,0 @@
|
||||
if not 'ARM' in config.root.targets:
|
||||
config.unsupported = True
|
@ -1,30 +0,0 @@
|
||||
# RUN: not llc -mtriple thumbv7-apple-ios -run-pass none -o /dev/null %s 2>&1 | FileCheck %s
|
||||
|
||||
--- |
|
||||
define i32 @test1(i32 %a) {
|
||||
entry:
|
||||
%cmp = icmp sgt i32 %a, -78
|
||||
%. = zext i1 %cmp to i32
|
||||
ret i32 %.
|
||||
}
|
||||
...
|
||||
---
|
||||
name: test1
|
||||
tracksRegLiveness: true
|
||||
liveins:
|
||||
- { reg: '%r0' }
|
||||
body: |
|
||||
bb.0.entry:
|
||||
liveins: %r0
|
||||
%r1 = t2MOVi 0, 14, _, _
|
||||
t2CMNri killed %r0, 78, 14, _, implicit-def %cpsr
|
||||
BUNDLE implicit-def dead %itstate, implicit-def %r1, implicit killed %cpsr {
|
||||
t2IT 12, 8, implicit-def %itstate
|
||||
%r1 = t2MOVi 1, 12, killed %cpsr, _
|
||||
; CHECK: [[@LINE+1]]:14: nested instruction bundles are not allowed
|
||||
BUNDLE {
|
||||
}
|
||||
}
|
||||
%r0 = tMOVr killed %r1, 14, _
|
||||
tBX_RET 14, _, implicit killed %r0
|
||||
...
|
@ -1,27 +0,0 @@
|
||||
# RUN: not llc -mtriple arm-unknown -run-pass none -o /dev/null %s 2>&1 | FileCheck %s
|
||||
--- |
|
||||
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
|
||||
|
||||
@g = private global i32 4
|
||||
define void @target_constant_pool() { ret void }
|
||||
...
|
||||
---
|
||||
name: target_constant_pool
|
||||
tracksRegLiveness: true
|
||||
registers:
|
||||
- { id: 0, class: gpr, preferred-register: '' }
|
||||
- { id: 1, class: gpr, preferred-register: '' }
|
||||
constants:
|
||||
- id: 0
|
||||
# CHECK: [[@LINE+1]]:22: Can't parse target-specific constant pool entries yet
|
||||
value: 'g-(LPC0+8)'
|
||||
alignment: 4
|
||||
isTargetSpecific: true
|
||||
body: |
|
||||
bb.0.entry:
|
||||
%0 = LDRi12 %const.0, 0, 14, _ :: (load 4 from constant-pool)
|
||||
%1 = PICLDR killed %0, 0, 14, _ :: (dereferenceable load 4 from @g)
|
||||
%r0 = COPY %1
|
||||
BX_RET 14, _, implicit %r0
|
||||
|
||||
...
|
Reference in New Issue
Block a user