blob: 7262aea02cd1099b6e1701bf140f5f974938a939 [file] [edit]
# RUN: llc -mtriple=aarch64 -debug-only=machine-outliner \
# RUN: -run-pass=machine-outliner -verify-machineinstrs %s -o /dev/null \
# RUN: 2>&1 | FileCheck %s
# RUN: llc -mtriple=aarch64 -debug-only=machine-outliner \
# RUN: -run-pass=mir-strip-debug,machine-outliner \
# RUN: -mir-strip-debugify-only=0 -verify-machineinstrs %s -o /dev/null \
# RUN: 2>&1 | FileCheck %s
# REQUIRES: asserts
# A debug instruction must not make an otherwise too-short AArch64 range
# eligible for mapping.
# CHECK-LABEL: MAPPING FUNCTION: range_without_debug
# CHECK: : 0 outlinable range(s)
# CHECK-LABEL: MAPPING FUNCTION: range_with_debug
# CHECK: : 0 outlinable range(s)
# CHECK-LABEL: MAPPING FUNCTION: debug_outside_range
# CHECK: Skipped 8 instructions outside outlinable range
--- |
define void @range_without_debug() noredzone { unreachable }
define void @range_with_debug() noredzone { unreachable }
define void @debug_outside_range() noredzone { unreachable }
...
---
name: range_without_debug
tracksRegLiveness: true
body: |
bb.0:
liveins: $x0, $lr
$w16 = ORRWri $wzr, 7
$w8 = ORRWri $w16, 5
RET undef $lr
...
---
name: range_with_debug
tracksRegLiveness: true
body: |
bb.0:
liveins: $x0, $lr
$w16 = ORRWri $wzr, 7
$w8 = ORRWri $w16, 5
DBG_VALUE $x0, 0
RET undef $lr
...
---
name: debug_outside_range
tracksRegLiveness: true
machineFunctionInfo:
hasRedZone: false
body: |
bb.0:
liveins: $x0, $x9
$x16 = ADDXri $x0, 16, 0
DBG_VALUE $x0, 0
$x9 = ADDXri $x9, 16, 0
$x9 = ADDXri $x9, 16, 0
$x9 = ADDXri $x9, 16, 0
$x9 = ADDXri $x9, 16, 0
$x9 = ADDXri $x9, 16, 0
$x9 = ADDXri $x9, 16, 0
$x16 = ADDXri killed $x16, 16, 0
$x0 = ADDXri $x0, 0, 0
$x1 = ADDXri $x0, 1, 0
$x2 = ADDXri $x0, 2, 0
$x3 = ADDXri $x0, 3, 0
$x8 = ADDXri $x3, 3, 0
$x0 = ADDXri $x0, 0, 0
$x1 = ADDXri $x0, 1, 0
$x2 = ADDXri $x0, 2, 0
$x3 = ADDXri $x0, 3, 0
RET undef $x9
...