Go to file
Shiva Chen d6b2cdf9d4 [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.

Differential Revision: https://reviews.llvm.org/D45556

Patch by Hsiangkai Wang.

llvm-svn: 337799
2018-07-24 02:22:55 +00:00
clang Attempt to fix regression due to r337791 2018-07-24 02:12:24 +00:00
clang-tools-extra [clang-tidy] fix PR36489 - respect deduced pointer types from auto as well 2018-07-23 17:46:17 +00:00
compiler-rt Revert "[Fuzzer] Update path to libc++ headers" 2018-07-24 00:34:55 +00:00
debuginfo-tests Revert "[CMake] Sort dependency list and add safestack to it" 2018-07-18 20:10:43 +00:00
libclc atom: Use volatile pointers for cl_khr_{global,local}_int32_{base,extended}_atomics 2018-06-21 19:27:39 +00:00
libcxx Revert r337727 as it caused Darwin bot failures 2018-07-24 00:27:31 +00:00
libcxxabi [demangler] call terminate() if allocation failed 2018-07-23 22:23:04 +00:00
libunwind The semantics of DW_CFA_GNU_args_size have changed subtile over the 2018-07-17 19:00:51 +00:00
lld [WebAssembly] Add support for --whole-archive. 2018-07-23 23:51:19 +00:00
lldb Added unit test for StreamTee 2018-07-24 00:01:32 +00:00
llgo Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
llvm [DebugInfo] Generate DWARF debug information for labels. 2018-07-24 02:22:55 +00:00
openmp [OPNEMP, NVPTX] Fixed sychronization construct + code cleanup. 2018-07-23 13:52:12 +00:00
parallel-libs Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
polly [isl] Simplify iterator implementation by building on top of list accessors 2018-07-23 15:28:50 +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.