[DebugInfo] generate btf_tag annotations for DISubprogram types
authorYonghong Song <yhs@fb.com>
Mon, 19 Jul 2021 15:33:01 +0000 (08:33 -0700)
committerYonghong Song <yhs@fb.com>
Thu, 26 Aug 2021 15:24:19 +0000 (08:24 -0700)
commitd383df32c0d5bcdc8c160ecdd7174399aa3c5395
tree49c61cd487506fc9ef79eb410b948e77a799f5de
parentc9066c5d37755c7d9049dd1fb7bd365bdef6155f
[DebugInfo] generate btf_tag annotations for DISubprogram types

Generate btf_tag annotations for DISubprogram types.
A field "annotations" is introduced to DISubprogram, and
annotations are represented as an DINodeArray, similar to
DIComposite elements. The following example illustrates how
annotations are encoded in IR:
    distinct !DISubprogram(..., annotations: !10)
    !10 = !{!11, !12}
    !11 = !{!"btf_tag", !"a"}
    !12 = !{!"btf_tag", !"b"}

Differential Revision: https://reviews.llvm.org/D106618
llvm/include/llvm/IR/DIBuilder.h
llvm/include/llvm/IR/DebugInfoMetadata.h
llvm/lib/AsmParser/LLParser.cpp
llvm/lib/Bitcode/Reader/MetadataLoader.cpp
llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
llvm/lib/IR/AsmWriter.cpp
llvm/lib/IR/DIBuilder.cpp
llvm/lib/IR/DebugInfoMetadata.cpp
llvm/lib/IR/LLVMContextImpl.h
llvm/test/Bitcode/attr-btf_tag-disubprogram.ll [new file with mode: 0644]