4b4db40174
Summary: Summary: Update DWARF location lists in .debug_loc and pointers to them in .debug_info so that gdb can print variables which change location during their lifetime. The following changes were made: - Refactored BasicBlockOffsetRanges to allow ranges to be tied to binary information (so that we can reuse it for location lists) - Implemented range compression optimization in BasicBlockOffsetRanges (needed otherwise too much data was being generated). - Added representation for location lists (LocationList.h, BinaryContext.h) - Implemented .debug_loc serializer that keeps the updated offsets (DebugLocWriter.{h,cpp}) - After disassembly, traverse entries in .debug_loc and save them in context (BinaryContext.cpp) - After optimizations, serialize .debug_loc and update pointers in .debug_info (RewriteInstance.cpp) (cherry picked from FBD3130682)
28 lines
445 B
CMake
28 lines
445 B
CMake
set(LLVM_LINK_COMPONENTS
|
|
${LLVM_TARGETS_TO_BUILD}
|
|
CodeGen
|
|
Core
|
|
DebugInfoDWARF
|
|
MC
|
|
MCDisassembler
|
|
MCParser
|
|
Object
|
|
Orcjit
|
|
Support
|
|
)
|
|
|
|
add_llvm_tool(llvm-bolt
|
|
llvm-bolt.cpp
|
|
BasicBlockOffsetRanges.cpp
|
|
BinaryBasicBlock.cpp
|
|
BinaryContext.cpp
|
|
BinaryFunction.cpp
|
|
BinaryPatcher.cpp
|
|
DataReader.cpp
|
|
DebugLineTableRowRef.cpp
|
|
DebugLocWriter.cpp
|
|
DebugRangesSectionsWriter.cpp
|
|
Exceptions.cpp
|
|
RewriteInstance.cpp
|
|
)
|