summaryrefslogtreecommitdiffstats
path: root/llvm/include
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2014-03-25 01:44:02 +0000
committerDavid Blaikie <dblaikie@gmail.com>2014-03-25 01:44:02 +0000
commit9c550ac4e79b20a4e78fc99ec6b57bc62cf502b0 (patch)
tree0024de59c32f3d80596332f3227b800d6adffe74 /llvm/include
parent2d33d6a4c29fcda36cc13591c9a007498934c961 (diff)
downloadbcm5719-llvm-9c550ac4e79b20a4e78fc99ec6b57bc62cf502b0.tar.gz
bcm5719-llvm-9c550ac4e79b20a4e78fc99ec6b57bc62cf502b0.zip
DebugInfo: Support debug_loc under fission
Implement debug_loc.dwo, as well as llvm-dwarfdump support for dumping this section. Outlined in the DWARF5 spec and http://gcc.gnu.org/wiki/DebugFission the debug_loc.dwo section has more variation than the standard debug_loc, allowing 3 different forms of entry (plus the end of list entry). GCC seems to, and Clang certainly, only use one form, so I've just implemented dumping support for that for now. It wasn't immediately obvious that there was a good refactoring to share the implementation of dumping support between debug_loc and debug_loc.dwo, so they're separate for now - ideas welcome or I may come back to it at some point. As per a comment in the code, we could choose different forms that may reduce the number of debug_addr entries we emit, but that will require further study. llvm-svn: 204697
Diffstat (limited to 'llvm/include')
-rw-r--r--llvm/include/llvm/DebugInfo/DIContext.h1
-rw-r--r--llvm/include/llvm/Support/Dwarf.h8
2 files changed, 9 insertions, 0 deletions
diff --git a/llvm/include/llvm/DebugInfo/DIContext.h b/llvm/include/llvm/DebugInfo/DIContext.h
index f04dc001f4b..69a4f8d1f6b 100644
--- a/llvm/include/llvm/DebugInfo/DIContext.h
+++ b/llvm/include/llvm/DebugInfo/DIContext.h
@@ -109,6 +109,7 @@ enum DIDumpType {
DIDT_Line,
DIDT_LineDwo,
DIDT_Loc,
+ DIDT_LocDwo,
DIDT_Ranges,
DIDT_Pubnames,
DIDT_Pubtypes,
diff --git a/llvm/include/llvm/Support/Dwarf.h b/llvm/include/llvm/Support/Dwarf.h
index 7d434dcb12d..87696990600 100644
--- a/llvm/include/llvm/Support/Dwarf.h
+++ b/llvm/include/llvm/Support/Dwarf.h
@@ -771,6 +771,14 @@ enum Constants {
DW_EH_PE_indirect = 0x80
};
+enum LocationListEntry : unsigned char {
+ DW_LLE_end_of_list_entry,
+ DW_LLE_base_address_selection_entry,
+ DW_LLE_start_end_entry,
+ DW_LLE_start_length_entry,
+ DW_LLE_offset_pair_entry
+};
+
enum ApplePropertyAttributes {
// Apple Objective-C Property Attributes
DW_APPLE_PROPERTY_readonly = 0x01,
OpenPOWER on IntegriCloud