CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
172 lines
5.6 KiB
YAML
172 lines
5.6 KiB
YAML
# RUN: llc -o - -run-pass=machine-scheduler -misched=shuffle %s | FileCheck %s
|
|
# RUN: llc -o - -passes=machine-scheduler -misched=shuffle %s | FileCheck %s
|
|
# RUN: llc -o - -run-pass=postmisched %s | FileCheck %s
|
|
# RUN: llc -o - -passes=postmisched %s | FileCheck %s
|
|
|
|
# REQUIRES: asserts
|
|
# -misched=shuffle is only available with assertions enabled
|
|
|
|
--- |
|
|
target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
target triple = "thumbv8.1m.main-arm-none-eabi"
|
|
|
|
define i32 @foo_bti() #0 {
|
|
entry:
|
|
ret i32 0
|
|
}
|
|
|
|
define i32 @foo_pac() #0 {
|
|
entry:
|
|
ret i32 0
|
|
}
|
|
|
|
define i32 @foo_pacbti() #0 {
|
|
entry:
|
|
ret i32 0
|
|
}
|
|
|
|
define i32 @foo_setjmp() #0 {
|
|
entry:
|
|
ret i32 0
|
|
if.then:
|
|
ret i32 0
|
|
}
|
|
|
|
define i32 @foo_sg() #0 {
|
|
entry:
|
|
ret i32 0
|
|
}
|
|
|
|
declare i32 @setjmp(ptr noundef) #1
|
|
declare void @longjmp(ptr noundef, i32 noundef) #2
|
|
|
|
attributes #0 = { "frame-pointer"="all" "target-cpu"="cortex-m55" "target-features"="+armv8.1-m.main" }
|
|
attributes #1 = { nounwind returns_twice "frame-pointer"="all" "target-cpu"="cortex-m55" "target-features"="+armv8.1-m.main" }
|
|
attributes #2 = { noreturn nounwind "frame-pointer"="all" "target-cpu"="cortex-m55" "target-features"="+armv8.1-m.main" }
|
|
|
|
...
|
|
---
|
|
name: foo_bti
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0.entry:
|
|
liveins: $r0
|
|
|
|
t2BTI
|
|
renamable $r0, dead $cpsr = nsw tADDi8 killed renamable $r0, 1, 14 /* CC::al */, $noreg
|
|
tBX_RET 14 /* CC::al */, $noreg, implicit killed $r0
|
|
|
|
...
|
|
|
|
# CHECK-LABEL: name: foo_bti
|
|
# CHECK: body:
|
|
# CHECK-NEXT: bb.0.entry:
|
|
# CHECK-NEXT: liveins: $r0
|
|
# CHECK-NEXT: {{^ +$}}
|
|
# CHECK-NEXT: t2BTI
|
|
|
|
---
|
|
name: foo_pac
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0.entry:
|
|
liveins: $r0, $lr, $r12
|
|
|
|
frame-setup t2PAC implicit-def $r12, implicit $lr, implicit $sp
|
|
renamable $r2 = nsw t2ADDri $r0, 3, 14 /* CC::al */, $noreg, $noreg
|
|
$sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
|
|
$r7 = frame-setup tMOVr killed $sp, 14 /* CC::al */, $noreg
|
|
early-clobber $sp = frame-setup t2STR_PRE killed $r12, $sp, -4, 14 /* CC::al */, $noreg
|
|
$r12, $sp = frame-destroy t2LDR_POST $sp, 4, 14 /* CC::al */, $noreg
|
|
$sp = frame-destroy t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r7, def $lr
|
|
t2AUT implicit $r12, implicit $lr, implicit $sp
|
|
tBX_RET 14 /* CC::al */, $noreg, implicit $r0
|
|
|
|
...
|
|
|
|
# CHECK-LABEL: name: foo_pac
|
|
# CHECK: body:
|
|
# CHECK-NEXT: bb.0.entry:
|
|
# CHECK-NEXT: liveins: $r0, $lr, $r12
|
|
# CHECK-NEXT: {{^ +$}}
|
|
# CHECK-NEXT: frame-setup t2PAC implicit-def $r12, implicit $lr, implicit $sp
|
|
|
|
---
|
|
name: foo_pacbti
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0.entry:
|
|
liveins: $r0, $lr, $r12
|
|
|
|
frame-setup t2PACBTI implicit-def $r12, implicit $lr, implicit $sp
|
|
renamable $r2 = nsw t2ADDri $r0, 3, 14 /* CC::al */, $noreg, $noreg
|
|
$sp = frame-setup t2STMDB_UPD $sp, 14 /* CC::al */, $noreg, killed $r7, killed $lr
|
|
$r7 = frame-setup tMOVr killed $sp, 14 /* CC::al */, $noreg
|
|
early-clobber $sp = frame-setup t2STR_PRE killed $r12, $sp, -4, 14 /* CC::al */, $noreg
|
|
$r12, $sp = frame-destroy t2LDR_POST $sp, 4, 14 /* CC::al */, $noreg
|
|
$sp = frame-destroy t2LDMIA_UPD $sp, 14 /* CC::al */, $noreg, def $r7, def $lr
|
|
t2AUT implicit $r12, implicit $lr, implicit $sp
|
|
tBX_RET 14 /* CC::al */, $noreg, implicit $r0
|
|
|
|
...
|
|
|
|
# CHECK-LABEL: name: foo_pacbti
|
|
# CHECK: body:
|
|
# CHECK-NEXT: bb.0.entry:
|
|
# CHECK-NEXT: liveins: $r0, $lr, $r12
|
|
# CHECK-NEXT: {{^ +$}}
|
|
# CHECK-NEXT: frame-setup t2PACBTI implicit-def $r12, implicit $lr, implicit $sp
|
|
|
|
---
|
|
name: foo_setjmp
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0.entry:
|
|
successors: %bb.1
|
|
liveins: $lr
|
|
|
|
frame-setup tPUSH 14 /* CC::al */, $noreg, $r7, killed $lr, implicit-def $sp, implicit $sp
|
|
$r7 = frame-setup tMOVr $sp, 14 /* CC::al */, $noreg
|
|
$sp = frame-setup tSUBspi $sp, 40, 14 /* CC::al */, $noreg
|
|
renamable $r0 = tMOVr $sp, 14 /* CC::al */, $noreg
|
|
tBL 14 /* CC::al */, $noreg, @setjmp, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit-def $sp, implicit-def $r0
|
|
t2BTI
|
|
renamable $r2 = nsw t2ADDri $r0, 3, 14 /* CC::al */, $noreg, $noreg
|
|
tCMPi8 killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
|
|
t2IT 0, 2, implicit-def $itstate
|
|
renamable $r0 = tMOVi8 $noreg, 0, 0 /* CC::eq */, $cpsr, implicit $itstate
|
|
$sp = frame-destroy tADDspi $sp, 40, 0 /* CC::eq */, $cpsr, implicit $itstate
|
|
frame-destroy tPOP_RET 0 /* CC::eq */, killed $cpsr, def $r7, def $pc, implicit killed $r0, implicit $sp, implicit killed $itstate
|
|
|
|
bb.1.if.then:
|
|
renamable $r0 = tMOVr $sp, 14 /* CC::al */, $noreg
|
|
renamable $r1, dead $cpsr = tMOVi8 1, 14 /* CC::al */, $noreg
|
|
tBL 14 /* CC::al */, $noreg, @longjmp, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit killed $r1, implicit-def $sp
|
|
|
|
...
|
|
|
|
# CHECK-LABEL: name: foo_setjmp
|
|
# CHECK: body:
|
|
# CHECK: tBL 14 /* CC::al */, $noreg, @setjmp, csr_aapcs, implicit-def dead $lr, implicit $sp, implicit killed $r0, implicit-def $sp, implicit-def $r0
|
|
# CHECK-NEXT: t2BTI
|
|
|
|
---
|
|
name: foo_sg
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0.entry:
|
|
liveins: $r0
|
|
|
|
t2SG 14 /* CC::al */, $noreg
|
|
renamable $r0, dead $cpsr = nsw tADDi8 killed renamable $r0, 1, 14 /* CC::al */, $noreg
|
|
tBX_RET 14 /* CC::al */, $noreg, implicit killed $r0
|
|
|
|
...
|
|
|
|
# CHECK-LABEL: name: foo_sg
|
|
# CHECK: body:
|
|
# CHECK-NEXT: bb.0.entry:
|
|
# CHECK-NEXT: liveins: $r0
|
|
# CHECK-NEXT: {{^ +$}}
|
|
# CHECK-NEXT: t2SG
|