diff options
Diffstat (limited to 'llvm/test/DebugInfo/RISCV/relax-debug-frame.ll')
-rw-r--r-- | llvm/test/DebugInfo/RISCV/relax-debug-frame.ll | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/llvm/test/DebugInfo/RISCV/relax-debug-frame.ll b/llvm/test/DebugInfo/RISCV/relax-debug-frame.ll new file mode 100644 index 00000000000..3449cc8b7d6 --- /dev/null +++ b/llvm/test/DebugInfo/RISCV/relax-debug-frame.ll @@ -0,0 +1,59 @@ +; RUN: llc -filetype=obj -mtriple=riscv32 -mattr=+relax %s -o - \ +; RUN: | llvm-readobj -r | FileCheck -check-prefix=RELAX %s +; RUN: llc -filetype=obj -mtriple=riscv32 -mattr=+relax %s -o - \ +; RUN: | llvm-dwarfdump --debug-frame - \ +; RUN: | FileCheck -check-prefix=RELAX-DWARFDUMP %s +; +; RELAX: Section{{.*}}.rela.{{eh|debug}}_frame { +; RELAX-NOT: {{[}]}} +; RELAX: 0x20 R_RISCV_ADD32 +; RELAX: 0x20 R_RISCV_SUB32 +; RELAX-NOT: {{[}]}} +; RELAX: 0x25 R_RISCV_SET6 +; RELAX: 0x25 R_RISCV_SUB6 +; +; RELAX-DWARFDUMP: CIE +; RELAX-DWARFDUMP: DW_CFA_advance_loc +; RELAX-DWARFDUMP: DW_CFA_def_cfa_offset +; RELAX-DWARFDUMP: DW_CFA_offset +; RELAX-DWARFDUMP: DW_CFA_restore +source_filename = "frame.c" + +; Function Attrs: noinline nounwind optnone +define i32 @init() { +entry: + ret i32 0 +} + +; Function Attrs: noinline nounwind optnone +define i32 @foo(i32 signext %value) { +entry: + %value.addr = alloca i32, align 4 + store i32 %value, i32* %value.addr, align 4 + %0 = load i32, i32* %value.addr, align 4 + ret i32 %0 +} + +; Function Attrs: noinline nounwind optnone +define i32 @bar() { +entry: + %result = alloca i32, align 4 + %v = alloca i32, align 4 + %call = call i32 @init() + store i32 %call, i32* %v, align 4 + %0 = load i32, i32* %v, align 4 + %call1 = call i32 @foo(i32 signext %0) + store i32 %call1, i32* %result, align 4 + %1 = load i32, i32* %result, align 4 + ret i32 %1 +} + +!llvm.dbg.cu = !{!0} +!llvm.module.flags = !{!3, !4, !5} + +!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2) +!1 = !DIFile(filename: "line.c", directory: "./") +!2 = !{} +!3 = !{i32 2, !"Dwarf Version", i32 4} +!4 = !{i32 2, !"Debug Info Version", i32 3} +!5 = !{i32 1, !"wchar_size", i32 4} |