"README.md" did not exist on "7840336c91c44d54ebf9582b9783d7d26a4d3639"
[DebugInfo] Generate DWARF debug information for labels.
There are two forms for label debug information in DWARF format. 1. Labels in a non-inlined function: DW_TAG_label DW_AT_name DW_AT_decl_file DW_AT_decl_line DW_AT_low_pc 2. Labels in an inlined function: DW_TAG_label DW_AT_abstract_origin DW_AT_low_pc We will collect label information from DBG_LABEL. Before every DBG_LABEL, we will generate a temporary symbol to denote the location of the label. The symbol could be used to get DW_AT_low_pc afterwards. So, we create a mapping between 'inlined label' and DBG_LABEL MachineInstr in DebugHandlerBase. The DBG_LABEL in the mapping is used to query the symbol before it. The AbstractLabels in DwarfCompileUnit is used to process labels in inlined functions. We also keep a mapping between scope and labels in DwarfFile to help to generate correct tree structure of DIEs. It also generates label debug information under global isel. Differential Revision: https://reviews.llvm.org/D45556 llvm-svn: 338390
Showing
- llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h 4 additions, 0 deletionsllvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
- llvm/lib/CodeGen/AsmPrinter/CMakeLists.txt 1 addition, 1 deletionllvm/lib/CodeGen/AsmPrinter/CMakeLists.txt
- llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h 1 addition, 1 deletionllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
- llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp 44 additions, 29 deletionsllvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.cpp
- llvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.h 25 additions, 4 deletionsllvm/lib/CodeGen/AsmPrinter/DbgEntityHistoryCalculator.h
- llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp 10 additions, 2 deletionsllvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
- llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.h 4 additions, 1 deletionllvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.h
- llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp 62 additions, 26 deletionsllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
- llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h 13 additions, 10 deletionsllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
- llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp 90 additions, 45 deletionsllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
- llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h 109 additions, 27 deletionsllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
- llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp 5 additions, 0 deletionsllvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp
- llvm/lib/CodeGen/AsmPrinter/DwarfFile.h 15 additions, 3 deletionsllvm/lib/CodeGen/AsmPrinter/DwarfFile.h
- llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp 6 additions, 0 deletionsllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
- llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h 1 addition, 0 deletionsllvm/lib/CodeGen/AsmPrinter/DwarfUnit.h
- llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp 11 additions, 0 deletionsllvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
- llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp 9 additions, 0 deletionsllvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
- llvm/test/DebugInfo/Generic/debug-label-inline.ll 50 additions, 0 deletionsllvm/test/DebugInfo/Generic/debug-label-inline.ll
- llvm/test/DebugInfo/Generic/debug-label.ll 76 additions, 0 deletionsllvm/test/DebugInfo/Generic/debug-label.ll
Loading
Please register or sign in to comment