Go to file
Hsiangkai Wang ccae278938 [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems)
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: 339676
2018-08-14 13:50:59 +00:00
clang [gnu-objc] Make selector order deterministic. 2018-08-14 10:05:25 +00:00
clang-tools-extra [clangd] NFC: Cleanup clangd help message 2018-08-14 12:00:39 +00:00
compiler-rt [hwasan] Provide __sanitizer_* aliases to allocator functions. 2018-08-13 21:07:27 +00:00
debuginfo-tests Disable the asan-deque.cpp integration test for AppleLLDB < v1000 2018-08-04 00:02:48 +00:00
libclc amdgcn: Use __constant AS for amdgcn builtins. 2018-08-03 15:14:08 +00:00
libcxx [libc++] Add missing #include in C11 features tests 2018-08-14 13:29:17 +00:00
libcxxabi [itanium demangler] Add llvm::itaniumFindTypesInMangledName() 2018-08-13 16:37:47 +00:00
libunwind [cmake] Add MINGW_LIBRARIES to the linker flags 2018-08-14 06:13:36 +00:00
lld [LLD][ELF] - Remove UnresolvedPolicy::IgnoreAll and relative code. NFC. 2018-08-14 11:55:31 +00:00
lldb Remove unused FastDemangle sources 2018-08-14 11:32:51 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [DebugInfo] Generate DWARF debug information for labels. (Fix leak problems) 2018-08-14 13:50:59 +00:00
openmp [OMPT] Make omp_control_tool() compliant when called from Fortran programs 2018-08-13 17:26:18 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [DepInfo] Use isl++ in Dependences::isValidSchedule. NFC. 2018-08-10 22:33:27 +00:00
README.md

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.