Go to file
Hsiangkai Wang 2532ac880a [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: 340039
2018-08-17 15:22:04 +00:00
clang [Preamble] Empty preamble is not an error. 2018-08-17 14:25:10 +00:00
clang-tools-extra [clang-tidy] Abseil: integral division of Duration check 2018-08-17 15:19:19 +00:00
compiler-rt [NFC] Some small test updates for Implicit Conversion sanitizer. 2018-08-17 07:33:38 +00:00
debuginfo-tests Add a basic integration test for C++ smart pointers 2018-08-16 23:05:15 +00:00
libclc amdgcn: Use __constant AS for amdgcn builtins. 2018-08-03 15:14:08 +00:00
libcxx Revert "Establish the <bit> header. NFC yet. Reviewed as https://reviews.llvm.org/D50815" 2018-08-16 23:57:16 +00:00
libcxxabi Factor Node creation out of the demangler. No functionality change intended. 2018-08-16 22:04:36 +00:00
libunwind NFC: Test commit access 2018-08-16 16:55:07 +00:00
lld [LLD][ELF] - Remove dead code. NFC. 2018-08-17 11:19:55 +00:00
lldb Fix compiler warnings after rL339649. 2018-08-17 07:28:24 +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-17 15:22:04 +00:00
openmp [OMPT] Remove OMPT idle callback 2018-08-15 13:54:28 +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.