mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
da6c965d3e
This patch implements BTF (BPF Type Format).
The BTF is the debug info format for BPF, introduced
in the below linux patch:
69b693f0ae (diff-06fb1c8825f653d7e539058b72c83332)
and further extended several times, e.g.,
https://www.spinics.net/lists/netdev/msg534640.html
https://www.spinics.net/lists/netdev/msg538464.html
https://www.spinics.net/lists/netdev/msg540246.html
The main advantage of implementing in LLVM is:
. better integration/deployment as no extra tools are needed.
. bpf JIT based compilation (like bcc, bpftrace, etc.) can get
BTF without much extra effort.
. BTF line_info needs selective source codes, which can be
easily retrieved when inside the compiler.
This patch implemented BTF generation by registering a BPF
specific DebugHandler in BPFAsmPrinter.
Signed-off-by: Yonghong Song <yhs@fb.com>
Differential Revision: https://reviews.llvm.org/D55752
llvm-svn: 349640
36 lines
1019 B
CMake
36 lines
1019 B
CMake
set(LLVM_TARGET_DEFINITIONS BPF.td)
|
|
|
|
tablegen(LLVM BPFGenAsmMatcher.inc -gen-asm-matcher)
|
|
tablegen(LLVM BPFGenAsmWriter.inc -gen-asm-writer)
|
|
tablegen(LLVM BPFGenCallingConv.inc -gen-callingconv)
|
|
tablegen(LLVM BPFGenDAGISel.inc -gen-dag-isel)
|
|
tablegen(LLVM BPFGenDisassemblerTables.inc -gen-disassembler)
|
|
tablegen(LLVM BPFGenInstrInfo.inc -gen-instr-info)
|
|
tablegen(LLVM BPFGenMCCodeEmitter.inc -gen-emitter)
|
|
tablegen(LLVM BPFGenRegisterInfo.inc -gen-register-info)
|
|
tablegen(LLVM BPFGenSubtargetInfo.inc -gen-subtarget)
|
|
|
|
add_public_tablegen_target(BPFCommonTableGen)
|
|
|
|
add_llvm_target(BPFCodeGen
|
|
BPFAsmPrinter.cpp
|
|
BPFFrameLowering.cpp
|
|
BPFInstrInfo.cpp
|
|
BPFISelDAGToDAG.cpp
|
|
BPFISelLowering.cpp
|
|
BPFMCInstLower.cpp
|
|
BPFRegisterInfo.cpp
|
|
BPFSelectionDAGInfo.cpp
|
|
BPFSubtarget.cpp
|
|
BPFTargetMachine.cpp
|
|
BPFMIPeephole.cpp
|
|
BPFMIChecking.cpp
|
|
BTFDebug.cpp
|
|
)
|
|
|
|
add_subdirectory(AsmParser)
|
|
add_subdirectory(Disassembler)
|
|
add_subdirectory(InstPrinter)
|
|
add_subdirectory(MCTargetDesc)
|
|
add_subdirectory(TargetInfo)
|