From ded9a440d03f9c3f0825cef4f7ebc34fbe20e996 Mon Sep 17 00:00:00 2001 From: Yonghong Song Date: Fri, 22 Mar 2019 01:30:50 +0000 Subject: [PATCH] [BPF] handle derived type properly for computing type id Currently, the type id for a derived type is computed incorrectly. For example, type #1: int type #2: ptr to #1 For a global variable "int *a", type #1 will be attributed to variable "a". This is due to a bug which assigns the type id of the basetype of that derived type as the derived type's type id. This happens to "const", "volatile", "restrict", "typedef" and "pointer" types. This patch fixed this bug, fixed existing test cases and added a new one focusing on pointers plus other derived types. Signed-off-by: Yonghong Song llvm-svn: 356727 --- llvm/lib/Target/BPF/BTFDebug.cpp | 3 +- .../BPF/BTF/global-var-sec-readonly.ll | 2 +- .../BPF/BTF/static-var-derived-type.ll | 190 ++++++++++++++++++ .../CodeGen/BPF/BTF/static-var-inited-sec.ll | 4 +- .../test/CodeGen/BPF/BTF/static-var-inited.ll | 4 +- .../BPF/BTF/static-var-readonly-sec.ll | 4 +- .../CodeGen/BPF/BTF/static-var-readonly.ll | 4 +- llvm/test/CodeGen/BPF/BTF/static-var-sec.ll | 4 +- .../BPF/BTF/static-var-zerolen-array.ll | 2 +- llvm/test/CodeGen/BPF/BTF/static-var.ll | 4 +- 10 files changed, 206 insertions(+), 15 deletions(-) create mode 100644 llvm/test/CodeGen/BPF/BTF/static-var-derived-type.ll diff --git a/llvm/lib/Target/BPF/BTFDebug.cpp b/llvm/lib/Target/BPF/BTFDebug.cpp index 01d3b9e9d00d..f054933a2aa4 100644 --- a/llvm/lib/Target/BPF/BTFDebug.cpp +++ b/llvm/lib/Target/BPF/BTFDebug.cpp @@ -511,7 +511,8 @@ void BTFDebug::visitDerivedType(const DIDerivedType *DTy, uint32_t &TypeId) { // Visit base type of pointer, typedef, const, volatile, restrict or // struct/union member. - visitTypeEntry(DTy->getBaseType().resolve(), TypeId); + uint32_t TempTypeId = 0; + visitTypeEntry(DTy->getBaseType().resolve(), TempTypeId); } void BTFDebug::visitTypeEntry(const DIType *Ty, uint32_t &TypeId) { diff --git a/llvm/test/CodeGen/BPF/BTF/global-var-sec-readonly.ll b/llvm/test/CodeGen/BPF/BTF/global-var-sec-readonly.ll index 634c82ae360b..79416711ffe3 100644 --- a/llvm/test/CodeGen/BPF/BTF/global-var-sec-readonly.ll +++ b/llvm/test/CodeGen/BPF/BTF/global-var-sec-readonly.ll @@ -28,7 +28,7 @@ ; CHECK-NEXT: .long 16777248 # 0x1000020 ; CHECK-NEXT: .long 5 # BTF_KIND_VAR(id = 3) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 2 +; CHECK-NEXT: .long 1 ; CHECK-NEXT: .long 1 ; CHECK-NEXT: .long 9 # BTF_KIND_VAR(id = 4) ; CHECK-NEXT: .long 234881024 # 0xe000000 diff --git a/llvm/test/CodeGen/BPF/BTF/static-var-derived-type.ll b/llvm/test/CodeGen/BPF/BTF/static-var-derived-type.ll new file mode 100644 index 000000000000..8a0ffdd59630 --- /dev/null +++ b/llvm/test/CodeGen/BPF/BTF/static-var-derived-type.ll @@ -0,0 +1,190 @@ +; RUN: llc -march=bpfel -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s +; RUN: llc -march=bpfeb -filetype=asm -o - %s | FileCheck -check-prefixes=CHECK %s + +; Source code: +; typedef int * int_ptr; +; static int * volatile v1; +; static const int * volatile v2; +; static volatile int_ptr v3 = 0; +; static volatile const int_ptr v4 = 0; +; long foo() { return (long)(v1 - v2 + v3 - v4); } +; Compilation flag: +; clang -target bpf -O2 -g -S -emit-llvm test.c + +@v1 = internal global i32* null, align 8, !dbg !0 +@v2 = internal global i32* null, align 8, !dbg !8 +@v3 = internal global i32* null, align 8, !dbg !14 +@v4 = internal constant i32* null, align 8, !dbg !19 + +; Function Attrs: norecurse nounwind +define dso_local i64 @foo() local_unnamed_addr #0 !dbg !27 { + %1 = load volatile i32*, i32** @v1, align 8, !dbg !29, !tbaa !30 + %2 = load volatile i32*, i32** @v2, align 8, !dbg !34, !tbaa !30 + %3 = ptrtoint i32* %1 to i64, !dbg !35 + %4 = ptrtoint i32* %2 to i64, !dbg !35 + %5 = sub i64 %3, %4, !dbg !35 + %6 = ashr exact i64 %5, 2, !dbg !35 + %7 = load volatile i32*, i32** @v3, align 8, !dbg !36, !tbaa !30 + %8 = getelementptr inbounds i32, i32* %7, i64 %6, !dbg !37 + %9 = load volatile i32*, i32** @v4, align 8, !dbg !38, !tbaa !30 + %10 = ptrtoint i32* %8 to i64, !dbg !39 + %11 = ptrtoint i32* %9 to i64, !dbg !39 + %12 = sub i64 %10, %11, !dbg !39 + %13 = ashr exact i64 %12, 2, !dbg !39 + ret i64 %13, !dbg !40 +} + +; CHECK: .section .BTF,"",@progbits +; CHECK-NEXT: .short 60319 # 0xeb9f +; CHECK-NEXT: .byte 1 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .long 24 +; CHECK-NEXT: .long 0 +; CHECK-NEXT: .long 288 +; CHECK-NEXT: .long 288 +; CHECK-NEXT: .long 95 +; CHECK-NEXT: .long 0 # BTF_KIND_FUNC_PROTO(id = 1) +; CHECK-NEXT: .long 218103808 # 0xd000000 +; CHECK-NEXT: .long 2 +; CHECK-NEXT: .long 45 # BTF_KIND_INT(id = 2) +; CHECK-NEXT: .long 16777216 # 0x1000000 +; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 16777280 # 0x1000040 +; CHECK-NEXT: .long 54 # BTF_KIND_FUNC(id = 3) +; CHECK-NEXT: .long 201326592 # 0xc000000 +; CHECK-NEXT: .long 1 +; CHECK-NEXT: .long 0 # BTF_KIND_VOLATILE(id = 4) +; CHECK-NEXT: .long 150994944 # 0x9000000 +; CHECK-NEXT: .long 5 +; CHECK-NEXT: .long 0 # BTF_KIND_PTR(id = 5) +; CHECK-NEXT: .long 33554432 # 0x2000000 +; CHECK-NEXT: .long 6 +; CHECK-NEXT: .long 58 # BTF_KIND_INT(id = 6) +; CHECK-NEXT: .long 16777216 # 0x1000000 +; CHECK-NEXT: .long 4 +; CHECK-NEXT: .long 16777248 # 0x1000020 +; CHECK-NEXT: .long 62 # BTF_KIND_VAR(id = 7) +; CHECK-NEXT: .long 234881024 # 0xe000000 +; CHECK-NEXT: .long 4 +; CHECK-NEXT: .long 0 +; CHECK-NEXT: .long 0 # BTF_KIND_VOLATILE(id = 8) +; CHECK-NEXT: .long 150994944 # 0x9000000 +; CHECK-NEXT: .long 9 +; CHECK-NEXT: .long 0 # BTF_KIND_PTR(id = 9) +; CHECK-NEXT: .long 33554432 # 0x2000000 +; CHECK-NEXT: .long 10 +; CHECK-NEXT: .long 0 # BTF_KIND_CONST(id = 10) +; CHECK-NEXT: .long 167772160 # 0xa000000 +; CHECK-NEXT: .long 6 +; CHECK-NEXT: .long 65 # BTF_KIND_VAR(id = 11) +; CHECK-NEXT: .long 234881024 # 0xe000000 +; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 0 +; CHECK-NEXT: .long 0 # BTF_KIND_VOLATILE(id = 12) +; CHECK-NEXT: .long 150994944 # 0x9000000 +; CHECK-NEXT: .long 13 +; CHECK-NEXT: .long 68 # BTF_KIND_TYPEDEF(id = 13) +; CHECK-NEXT: .long 134217728 # 0x8000000 +; CHECK-NEXT: .long 5 +; CHECK-NEXT: .long 76 # BTF_KIND_VAR(id = 14) +; CHECK-NEXT: .long 234881024 # 0xe000000 +; CHECK-NEXT: .long 12 +; CHECK-NEXT: .long 0 +; CHECK-NEXT: .long 0 # BTF_KIND_CONST(id = 15) +; CHECK-NEXT: .long 167772160 # 0xa000000 +; CHECK-NEXT: .long 12 +; CHECK-NEXT: .long 79 # BTF_KIND_VAR(id = 16) +; CHECK-NEXT: .long 234881024 # 0xe000000 +; CHECK-NEXT: .long 15 +; CHECK-NEXT: .long 0 +; CHECK-NEXT: .long 82 # BTF_KIND_DATASEC(id = 17) +; CHECK-NEXT: .long 251658241 # 0xf000001 +; CHECK-NEXT: .long 0 +; CHECK-NEXT: .long 16 +; CHECK-NEXT: .long v4 +; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 90 # BTF_KIND_DATASEC(id = 18) +; CHECK-NEXT: .long 251658243 # 0xf000003 +; CHECK-NEXT: .long 0 +; CHECK-NEXT: .long 7 +; CHECK-NEXT: .long v1 +; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 11 +; CHECK-NEXT: .long v2 +; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 14 +; CHECK-NEXT: .long v3 +; CHECK-NEXT: .long 8 +; CHECK-NEXT: .byte 0 # string offset=0 +; CHECK-NEXT: .ascii ".text" # string offset=1 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii "/home/yhs/work/tests/llvm/bugs/test.c" # string offset=7 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii "long int" # string offset=45 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii "foo" # string offset=54 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii "int" # string offset=58 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii "v1" # string offset=62 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii "v2" # string offset=65 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii "int_ptr" # string offset=68 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii "v3" # string offset=76 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii "v4" # string offset=79 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii ".rodata" # string offset=82 +; CHECK-NEXT: .byte 0 +; CHECK-NEXT: .ascii ".bss" # string offset=90 +; CHECK-NEXT: .byte 0 + +attributes #0 = { norecurse nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" } + +!llvm.dbg.cu = !{!2} +!llvm.module.flags = !{!23, !24, !25} +!llvm.ident = !{!26} + +!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression()) +!1 = distinct !DIGlobalVariable(name: "v1", scope: !2, file: !3, line: 2, type: !22, isLocal: true, isDefinition: true) +!2 = distinct !DICompileUnit(language: DW_LANG_C99, file: !3, producer: "clang version 8.0.20181009 ", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !4, retainedTypes: !5, globals: !7, nameTableKind: None) +!3 = !DIFile(filename: "test.c", directory: "/home/yhs/work/tests/llvm/bugs") +!4 = !{} +!5 = !{!6} +!6 = !DIBasicType(name: "long int", size: 64, encoding: DW_ATE_signed) +!7 = !{!0, !8, !14, !19} +!8 = !DIGlobalVariableExpression(var: !9, expr: !DIExpression()) +!9 = distinct !DIGlobalVariable(name: "v2", scope: !2, file: !3, line: 3, type: !10, isLocal: true, isDefinition: true) +!10 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !11) +!11 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !12, size: 64) +!12 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !13) +!13 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed) +!14 = !DIGlobalVariableExpression(var: !15, expr: !DIExpression()) +!15 = distinct !DIGlobalVariable(name: "v3", scope: !2, file: !3, line: 4, type: !16, isLocal: true, isDefinition: true) +!16 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !17) +!17 = !DIDerivedType(tag: DW_TAG_typedef, name: "int_ptr", file: !3, line: 1, baseType: !18) +!18 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !13, size: 64) +!19 = !DIGlobalVariableExpression(var: !20, expr: !DIExpression()) +!20 = distinct !DIGlobalVariable(name: "v4", scope: !2, file: !3, line: 5, type: !21, isLocal: true, isDefinition: true) +!21 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !16) +!22 = !DIDerivedType(tag: DW_TAG_volatile_type, baseType: !18) +!23 = !{i32 2, !"Dwarf Version", i32 4} +!24 = !{i32 2, !"Debug Info Version", i32 3} +!25 = !{i32 1, !"wchar_size", i32 4} +!26 = !{!"clang version 8.0.20181009 "} +!27 = distinct !DISubprogram(name: "foo", scope: !3, file: !3, line: 6, type: !28, isLocal: false, isDefinition: true, scopeLine: 6, isOptimized: true, unit: !2, retainedNodes: !4) +!28 = !DISubroutineType(types: !5) +!29 = !DILocation(line: 6, column: 28, scope: !27) +!30 = !{!31, !31, i64 0} +!31 = !{!"any pointer", !32, i64 0} +!32 = !{!"omnipotent char", !33, i64 0} +!33 = !{!"Simple C/C++ TBAA"} +!34 = !DILocation(line: 6, column: 33, scope: !27) +!35 = !DILocation(line: 6, column: 31, scope: !27) +!36 = !DILocation(line: 6, column: 38, scope: !27) +!37 = !DILocation(line: 6, column: 36, scope: !27) +!38 = !DILocation(line: 6, column: 43, scope: !27) +!39 = !DILocation(line: 6, column: 41, scope: !27) +!40 = !DILocation(line: 6, column: 14, scope: !27) diff --git a/llvm/test/CodeGen/BPF/BTF/static-var-inited-sec.ll b/llvm/test/CodeGen/BPF/BTF/static-var-inited-sec.ll index 007b9a5c8a02..beeffa0d5e8a 100644 --- a/llvm/test/CodeGen/BPF/BTF/static-var-inited-sec.ll +++ b/llvm/test/CodeGen/BPF/BTF/static-var-inited-sec.ll @@ -51,7 +51,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777232 # 0x1000010 ; CHECK-NEXT: .long 58 # BTF_KIND_VAR(id = 6) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 5 +; CHECK-NEXT: .long 4 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 0 # BTF_KIND_VOLATILE(id = 7) ; CHECK-NEXT: .long 150994944 # 0x9000000 @@ -62,7 +62,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777224 # 0x1000008 ; CHECK-NEXT: .long 69 # BTF_KIND_VAR(id = 9) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 7 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 71 # BTF_KIND_DATASEC(id = 10) ; CHECK-NEXT: .long 251658242 # 0xf000002 diff --git a/llvm/test/CodeGen/BPF/BTF/static-var-inited.ll b/llvm/test/CodeGen/BPF/BTF/static-var-inited.ll index 7f11c765f350..b3b3576fb6bf 100644 --- a/llvm/test/CodeGen/BPF/BTF/static-var-inited.ll +++ b/llvm/test/CodeGen/BPF/BTF/static-var-inited.ll @@ -51,7 +51,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777232 # 0x1000010 ; CHECK-NEXT: .long 58 # BTF_KIND_VAR(id = 6) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 5 +; CHECK-NEXT: .long 4 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 0 # BTF_KIND_VOLATILE(id = 7) ; CHECK-NEXT: .long 150994944 # 0x9000000 @@ -62,7 +62,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777224 # 0x1000008 ; CHECK-NEXT: .long 69 # BTF_KIND_VAR(id = 9) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 7 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 71 # BTF_KIND_DATASEC(id = 10) ; CHECK-NEXT: .long 251658242 # 0xf000002 diff --git a/llvm/test/CodeGen/BPF/BTF/static-var-readonly-sec.ll b/llvm/test/CodeGen/BPF/BTF/static-var-readonly-sec.ll index 49b1389e2e90..546f2bcbc0d1 100644 --- a/llvm/test/CodeGen/BPF/BTF/static-var-readonly-sec.ll +++ b/llvm/test/CodeGen/BPF/BTF/static-var-readonly-sec.ll @@ -54,7 +54,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777232 # 0x1000010 ; CHECK-NEXT: .long 58 # BTF_KIND_VAR(id = 7) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 6 +; CHECK-NEXT: .long 4 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 0 # BTF_KIND_CONST(id = 8) ; CHECK-NEXT: .long 167772160 # 0xa000000 @@ -68,7 +68,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777224 # 0x1000008 ; CHECK-NEXT: .long 69 # BTF_KIND_VAR(id = 11) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 10 +; CHECK-NEXT: .long 8 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 71 # BTF_KIND_DATASEC(id = 12) ; CHECK-NEXT: .long 251658242 # 0xf000002 diff --git a/llvm/test/CodeGen/BPF/BTF/static-var-readonly.ll b/llvm/test/CodeGen/BPF/BTF/static-var-readonly.ll index 12bef91a0581..e39e737865de 100644 --- a/llvm/test/CodeGen/BPF/BTF/static-var-readonly.ll +++ b/llvm/test/CodeGen/BPF/BTF/static-var-readonly.ll @@ -54,7 +54,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777232 # 0x1000010 ; CHECK-NEXT: .long 58 # BTF_KIND_VAR(id = 7) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 6 +; CHECK-NEXT: .long 4 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 0 # BTF_KIND_CONST(id = 8) ; CHECK-NEXT: .long 167772160 # 0xa000000 @@ -68,7 +68,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777224 # 0x1000008 ; CHECK-NEXT: .long 69 # BTF_KIND_VAR(id = 11) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 10 +; CHECK-NEXT: .long 8 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 71 # BTF_KIND_DATASEC(id = 12) ; CHECK-NEXT: .long 251658242 # 0xf000002 diff --git a/llvm/test/CodeGen/BPF/BTF/static-var-sec.ll b/llvm/test/CodeGen/BPF/BTF/static-var-sec.ll index 4f70512b0f67..36ce07d8968c 100644 --- a/llvm/test/CodeGen/BPF/BTF/static-var-sec.ll +++ b/llvm/test/CodeGen/BPF/BTF/static-var-sec.ll @@ -51,7 +51,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777232 # 0x1000010 ; CHECK-NEXT: .long 58 # BTF_KIND_VAR(id = 6) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 5 +; CHECK-NEXT: .long 4 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 0 # BTF_KIND_VOLATILE(id = 7) ; CHECK-NEXT: .long 150994944 # 0x9000000 @@ -62,7 +62,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777224 # 0x1000008 ; CHECK-NEXT: .long 69 # BTF_KIND_VAR(id = 9) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 7 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 71 # BTF_KIND_DATASEC(id = 10) ; CHECK-NEXT: .long 251658242 # 0xf000002 diff --git a/llvm/test/CodeGen/BPF/BTF/static-var-zerolen-array.ll b/llvm/test/CodeGen/BPF/BTF/static-var-zerolen-array.ll index 7fb1488a9e4f..30eb657cbe92 100644 --- a/llvm/test/CodeGen/BPF/BTF/static-var-zerolen-array.ll +++ b/llvm/test/CodeGen/BPF/BTF/static-var-zerolen-array.ll @@ -70,7 +70,7 @@ define dso_local i32 @test() local_unnamed_addr #0 !dbg !21 { ; CHECK-NEXT: .long 16777224 # 0x1000008 ; CHECK-NEXT: .long 86 # BTF_KIND_VAR(id = 9) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 5 +; CHECK-NEXT: .long 4 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 89 # BTF_KIND_DATASEC(id = 10) ; CHECK-NEXT: .long 251658241 # 0xf000001 diff --git a/llvm/test/CodeGen/BPF/BTF/static-var.ll b/llvm/test/CodeGen/BPF/BTF/static-var.ll index bfd532fcc0e5..5d09b19b5206 100644 --- a/llvm/test/CodeGen/BPF/BTF/static-var.ll +++ b/llvm/test/CodeGen/BPF/BTF/static-var.ll @@ -51,7 +51,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777232 # 0x1000010 ; CHECK-NEXT: .long 58 # BTF_KIND_VAR(id = 6) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 5 +; CHECK-NEXT: .long 4 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 0 # BTF_KIND_VOLATILE(id = 7) ; CHECK-NEXT: .long 150994944 # 0x9000000 @@ -62,7 +62,7 @@ define dso_local i32 @foo() local_unnamed_addr #0 !dbg !2 { ; CHECK-NEXT: .long 16777224 # 0x1000008 ; CHECK-NEXT: .long 69 # BTF_KIND_VAR(id = 9) ; CHECK-NEXT: .long 234881024 # 0xe000000 -; CHECK-NEXT: .long 8 +; CHECK-NEXT: .long 7 ; CHECK-NEXT: .long 0 ; CHECK-NEXT: .long 71 # BTF_KIND_DATASEC(id = 10) ; CHECK-NEXT: .long 251658242 # 0xf000002