Alp Toker
e89523ae73
[C++11] Expand and eliminate the LLVM_ENUM_INT_TYPE() macro
...
llvm-svn: 202607
2014-03-02 03:20:38 +00:00
Adrian Prantl
e2d61b87e3
Pull in a couple of new constants from the upcoming DWARF 5 standard.
...
llvm-svn: 197611
2013-12-18 21:48:14 +00:00
Manman Ren
380360c403
Debug Info: Move the constant for Debug Info Version from Dwarf.h to Metadata.h.
...
Suggested by Eric.
llvm-svn: 196144
2013-12-02 20:09:52 +00:00
Manman Ren
ae00f558c3
Debug Info: add a constant for debug info version number.
...
This will be used to output the debug info version number as a module flag.
llvm-svn: 195494
2013-11-22 19:41:59 +00:00
David Blaikie
949cb82c41
DIEHash: Summary hashing of nested types
...
llvm-svn: 193427
2013-10-25 18:38:43 +00:00
David Blaikie
e9f0bff07e
DebugInfo: Put each kind of constant (form, attribute, tag, etc) into its own enum for ease of use.
...
This allows various variables to be more self-documenting and easier to
debug by being of specific types without overlapping enum values.
Precommit review by Eric Christopher.
llvm-svn: 193091
2013-10-21 17:28:37 +00:00
Richard Mitton
560c7ced61
Formally added an explicit enum for DWARF TLS support. No functionality change.
...
llvm-svn: 192118
2013-10-07 18:39:18 +00:00
Reid Kleckner
333fd129ac
Explicitly request unsigned enum types when desired
...
The underlying type of all plain enums in MSVC is 'int', even if the
enumerator contains large 32-bit unsigned values or values greater than
UINT_MAX. The only way to get a large or unsigned enum type is to
request it explicitly with the C++11 strong enum types feature.
However, since LLVM isn't C++11 yet, I had to add a conditional
LLVM_ENUM_INT_TYPE to Compiler.h to control its usage.
The motivating true positive for this change is compiling PointerIntPair
with MSVC for win64. The PointerIntMask value is supposed to be pointer
sized value of all ones with some low zeros. Instead, it's truncated to
32-bits! We are only saved later because it is sign extended back in
the AND with int64_t, and we happen to want all ones.
This silences lots of -Wmicrosoft warnings during a clang self-host
targeting Windows.
llvm-svn: 191241
2013-09-23 23:26:57 +00:00
David Blaikie
8dd7f9c9a7
DebugInfo: GDBIndexEntry*String conversion functions now return const char* for easy llvm::formating
...
This was previously invoking UB by passing a user-defined type to
format. Thanks to Jordan Rose for pointing this out.
llvm-svn: 191060
2013-09-20 00:33:15 +00:00
Richard Mitton
f43e48210e
Fixed warning
...
llvm-svn: 191053
2013-09-19 23:21:07 +00:00
Richard Mitton
fe7ffd01f6
Added support for generate DWARF .debug_aranges sections automatically.
...
llvm-svn: 191052
2013-09-19 23:21:01 +00:00
David Blaikie
f60a2aeec3
DebugInfo: llvm-dwarfdump support for gnu_pubnames section
...
llvm-svn: 191050
2013-09-19 23:01:29 +00:00
David Blaikie
7d5a020241
DebugInfo: Improve IR annotation comments for GNU pubthings.
...
llvm-svn: 191043
2013-09-19 22:19:37 +00:00
Benjamin Kramer
824049fa6e
Unbreak C++03 build.
...
llvm-svn: 191039
2013-09-19 21:30:00 +00:00
David Blaikie
a8dfbd9e12
Unshift the GDB index/GNU pubnames constants modified in r191025
...
Based on code review feedback from Eric Christopher, unshifting these
constants as they can appear in the gdb_index itself, shifted a further
24 bits. This means that keeping them preshifted is a bit inflexible, so
let's not do that.
Given the motivation, wrap up some nicer enums, more type safety, and
some utility functions.
llvm-svn: 191035
2013-09-19 20:40:26 +00:00
David Blaikie
d4db76886f
DebugInfo: Simplify gnu_pubnames index computation.
...
Names open to bikeshedding. Could switch back to the constants being
unshifted, but this way seems a bit easier to work with.
llvm-svn: 191025
2013-09-19 18:39:59 +00:00
Eric Christopher
89bc57b9bc
Add initial support for handling gnu style pubnames accepted by some
...
versions of gold. This support is designed to allow gold to produce
gdb_index sections similar to the accelerator tables and consumable
by gdb.
llvm-svn: 190649
2013-09-13 00:35:05 +00:00
Eric Christopher
20fbf5e9c0
Add constant defines for gnu pubnames and gnu pubtypes - they're used
...
for the gdb index as the names convey.
llvm-svn: 190343
2013-09-09 20:03:11 +00:00
Eric Christopher
b9afc367ff
Formatting.
...
llvm-svn: 190342
2013-09-09 20:03:08 +00:00
Eric Christopher
059d9c3395
Move accelerator table defines and constants to Dwarf.h since
...
we're proposing it for DWARF5.
No functional change intended.
llvm-svn: 190074
2013-09-05 18:20:16 +00:00
Eric Christopher
611fa37a25
Rename enums to match convention and remove superfluous "dwarf" in names.
...
llvm-svn: 190067
2013-09-05 16:55:35 +00:00
Eric Christopher
d29caae526
Clean up some whitespace and comment formatting.
...
llvm-svn: 190015
2013-09-05 00:01:17 +00:00
Eric Christopher
9241791269
Move default dwarf version enum into the llvm dwarf constants rather
...
than the spec dwarf constants.
llvm-svn: 190011
2013-09-04 23:38:29 +00:00
Eric Christopher
49b6a03c98
Migrate the DWARF_VERSION constant to 4. It largely needs to go away.
...
llvm-svn: 189824
2013-09-03 16:11:13 +00:00
David Majnemer
198e3adaf6
DebugInfo: Do not use the DWARF Version for the .debug_pubnames or .debug_pubtypes version field
...
Summary:
LLVM would generate DWARF with version 3 in the .debug_pubname and
.debug_pubtypes version fields. This would lead SGI dwarfdump to fail
parsing the DWARF with (in the instance of .debug_pubnames) would exit
with:
dwarfdump ERROR: dwarf_get_globals: DW_DLE_PUBNAMES_VERSION_ERROR (123)
This fixes PR16950.
Reviewers: echristo, dblaikie
Reviewed By: echristo
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1454
llvm-svn: 188869
2013-08-21 06:13:34 +00:00
Eric Christopher
3b6ff658c3
Add DW_AT_GNU_odr_signature to the set of dwarf attributes.
...
llvm-svn: 186296
2013-07-14 22:02:31 +00:00
Eric Christopher
d419b3e326
Revert "Update the version of dwarf we say we're emitting to at least 3."
...
temporarily while we work on plumbing through some changes to continue
supporting gdb on darwin.
This reverts commit r179122.
llvm-svn: 179222
2013-04-10 21:45:07 +00:00
Eric Christopher
8a0c2a7dbd
Update the version of dwarf we say we're emitting to at least 3.
...
Deals with a dwarf2 -> dwarf3 DW_FORM_ref_addr change.
llvm-svn: 179122
2013-04-09 20:22:47 +00:00
Eli Bendersky
0802d28eff
Initial support for DWARF CFI parsing and dumping in LLVM
...
llvm-svn: 174463
2013-02-05 23:30:58 +00:00
Eric Christopher
eedffc4f2b
Remove the llvm-local DW_TAG_vector_type tag and add a test to
...
make sure that vector types do work.
llvm-svn: 171833
2013-01-08 01:53:52 +00:00
Eric Christopher
08e34159b3
Remove what appears to be a dead llvm-specific debug tag.
...
llvm-svn: 171821
2013-01-08 00:16:33 +00:00
Eric Christopher
44d69c50b0
Add constant definitions for fission dwarf attributes, forms, etc.
...
llvm-svn: 168218
2012-11-16 23:04:31 +00:00
Eric Christopher
330add6489
Lowercase the tag name to match the rest of dwarf.
...
llvm-svn: 153691
2012-03-29 21:35:05 +00:00
Devang Patel
9146918282
Update llvm debug version to support new structure and tag for Objective-C property's debug info.
...
llvm-svn: 149736
2012-02-04 01:30:01 +00:00
Devang Patel
1de069d34a
Add new tag and an attribute to support debug info for objective-c property.
...
llvm-svn: 149724
2012-02-03 23:57:08 +00:00
Kevin Enderby
63cf89d532
The second part of support for generating dwarf for assembly source files. This
...
generates the dwarf Compile Unit DIE and a dwarf subprogram DIE for each
non-temporary label.
The next part will be to get the clang driver to enable this when assembling
a .s file. rdar://9275556
llvm-svn: 146262
2011-12-09 18:09:40 +00:00
Nick Lewycky
e83d55a4d2
Despite what the GCC wiki says, a quick search shows that
...
DW_AT_GNU_template_name = 0x2110, not 0x2108. That would explain those
attr #0x2110 under the DW_TAG_GNU_template_template_param I'm seeing. Migrate
from documented values to reality.
llvm-svn: 139785
2011-09-15 05:30:55 +00:00
Nick Lewycky
d984768671
Add some more DWARF extensions from:
...
1. http://gcc.gnu.org/wiki/TemplateParmsDwarf
2. ftp://ftp.software.ibm.com/software/os390/czos/dwarf/mips_extensions.pdf
llvm-svn: 139784
2011-09-15 05:21:03 +00:00
Nick Lewycky
c76a2c21bc
Update Dwarf enums list for DWARF 4.
...
Note that DW_TAG_rvalue_reference_type is officially 0x42, not 0x41.
llvm-svn: 139779
2011-09-15 04:23:44 +00:00
Devang Patel
ac7dbe4022
Maintain hexadecimal order.
...
llvm-svn: 139601
2011-09-13 16:39:59 +00:00
Devang Patel
484cb2a602
Add DW_ATE_UTF, which clang started using in my previous commit!
...
llvm-svn: 139503
2011-09-12 17:18:20 +00:00
Devang Patel
c6fd34458c
Increment debug info version to accommodate upcoming change in debug info node structure.
...
llvm-svn: 137751
2011-08-16 21:00:05 +00:00
Devang Patel
5a4bb57ec5
Reapply r135457. This needs llvm-gcc change, that I forgot to check-in yesterday.
...
llvm-svn: 135504
2011-07-19 19:41:54 +00:00
Bob Wilson
7c9092c9aa
Revert "Make a provision to encode inline location in a variable. This will enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block."
...
This reverts commit 9fec5e346efdf744b151ae6604f912908315fa7a.
llvm-svn: 135486
2011-07-19 16:32:50 +00:00
Devang Patel
e50d45c876
Make a provision to encode inline location in a variable. This will enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block.
...
llvm-svn: 135457
2011-07-19 01:03:32 +00:00
Devang Patel
dd08ae41c6
Doug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name.
...
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g
llvm-svn: 131244
2011-05-12 21:29:42 +00:00
Devang Patel
b865dd6a20
Let Objective-C front-end identify class extension, in dwarf output, using an attribute DW_AT_APPLE_objc_class_extension.
...
llvm-svn: 131238
2011-05-12 19:06:16 +00:00
Devang Patel
5b09b96367
Add DW_OP_bit_piece.
...
llvm-svn: 129945
2011-04-21 22:26:13 +00:00
Devang Patel
eddab1d186
Introduce support to encode Objective-C property information in debugging information generated for an interface.
...
llvm-svn: 129624
2011-04-16 00:11:51 +00:00
Devang Patel
918feedd44
Remove unused tag.
...
llvm-svn: 125988
2011-02-18 23:23:09 +00:00