| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 228474
|
|
|
|
|
|
|
| |
Use definition file for `DW_VIRTUALITY_*`. Add a `DW_VIRTUALITY_max`
both for ease of testing and for future use by the `LLParser`.
llvm-svn: 228473
|
|
|
|
| |
llvm-svn: 228470
|
|
|
|
| |
llvm-svn: 228469
|
|
|
|
| |
llvm-svn: 228468
|
|
|
|
| |
llvm-svn: 228458
|
|
|
|
| |
llvm-svn: 228457
|
|
|
|
| |
llvm-svn: 228451
|
|
|
|
|
|
| |
Add `dwarf::getTag()` to translate from `StringRef` to `unsigned`.
llvm-svn: 228031
|
|
|
|
|
|
|
|
|
| |
Also re-implements the `dwarf::Tag` enumerator. I've moved the mock
tags into the enumerator since there's no other way to do this. Really
they shouldn't be used at all (they're just a hack to identify
`MDNode`s, but we have a class hierarchy for that now).
llvm-svn: 228030
|
|
|
|
|
|
|
|
| |
`dwarf::TagString()` shouldn't stringify `DW_TAG_lo_user` or
`DW_TAG_hi_user`. These aren't actual tags; they're markers for the
edge of vendor-specific tag regions.
llvm-svn: 228029
|
|
|
|
|
|
|
|
|
|
| |
In post-commit review of r219442, Rafael pointed out that the comment style
of the newly introduced helper didn't follow LLVM's coding standard.
Modernize the whole file to the new standards.
Differential Revision: http://reviews.llvm.org/D5918
llvm-svn: 220467
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: dblaikie
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5688
llvm-svn: 219442
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument of the llvm.dbg.declare/llvm.dbg.value intrinsics.
Previously, DIVariable was a variable-length field that has an optional
reference to a Metadata array consisting of a variable number of
complex address expressions. In the case of OpPiece expressions this is
wasting a lot of storage in IR, because when an aggregate type is, e.g.,
SROA'd into all of its n individual members, the IR will contain n copies
of the DIVariable, all alike, only differing in the complex address
reference at the end.
By making the complex address into an extra argument of the
dbg.value/dbg.declare intrinsics, all of the pieces can reference the
same variable and the complex address expressions can be uniqued across
the CU, too.
Down the road, this will allow us to move other flags, such as
"indirection" out of the DIVariable, too.
The new intrinsics look like this:
declare void @llvm.dbg.declare(metadata %storage, metadata %var, metadata %expr)
declare void @llvm.dbg.value(metadata %storage, i64 %offset, metadata %var, metadata %expr)
This patch adds a new LLVM-local tag to DIExpressions, so we can detect
and pretty-print DIExpression metadata nodes.
What this patch doesn't do:
This patch does not touch the "Indirect" field in DIVariable; but moving
that into the expression would be a natural next step.
http://reviews.llvm.org/D4919
rdar://problem/17994491
Thanks to dblaikie and dexonsmith for reviewing this patch!
Note: I accidentally committed a bogus older version of this patch previously.
llvm-svn: 218787
|
|
|
|
|
|
| |
"Move the complex address expression out of DIVariable and into an extra"
llvm-svn: 218782
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
argument of the llvm.dbg.declare/llvm.dbg.value intrinsics.
Previously, DIVariable was a variable-length field that has an optional
reference to a Metadata array consisting of a variable number of
complex address expressions. In the case of OpPiece expressions this is
wasting a lot of storage in IR, because when an aggregate type is, e.g.,
SROA'd into all of its n individual members, the IR will contain n copies
of the DIVariable, all alike, only differing in the complex address
reference at the end.
By making the complex address into an extra argument of the
dbg.value/dbg.declare intrinsics, all of the pieces can reference the
same variable and the complex address expressions can be uniqued across
the CU, too.
Down the road, this will allow us to move other flags, such as
"indirection" out of the DIVariable, too.
The new intrinsics look like this:
declare void @llvm.dbg.declare(metadata %storage, metadata %var, metadata %expr)
declare void @llvm.dbg.value(metadata %storage, i64 %offset, metadata %var, metadata %expr)
This patch adds a new LLVM-local tag to DIExpressions, so we can detect
and pretty-print DIExpression metadata nodes.
What this patch doesn't do:
This patch does not touch the "Indirect" field in DIVariable; but moving
that into the expression would be a natural next step.
http://reviews.llvm.org/D4919
rdar://problem/17994491
Thanks to dblaikie and dexonsmith for reviewing this patch!
llvm-svn: 218778
|
|
|
|
|
|
|
|
| |
LanguageString()"
This commit was reverted in r217183, but is OK to go in again now that its dependency is commited (as of r217186).
llvm-svn: 217231
|
|
|
|
|
|
|
|
|
|
| |
Reviewed By: dblaikie
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5187
llvm-svn: 217186
|
|
|
|
|
|
|
|
| |
This reverts commit 93c7e6161e1adbd2c7ac81fa081823183035cb64.
This commit got approved first, but was dependant on another one going in (The one pretty printing attribute values). I'll reapply when the other one is in.
llvm-svn: 217183
|
|
|
|
|
|
|
|
|
|
| |
Reviewed By: dblaikie
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5193
llvm-svn: 217182
|
|
|
|
| |
llvm-svn: 205697
|
|
|
|
|
|
| |
This tag isn't emitted by any compiler at the moment. PR18306.
llvm-svn: 197877
|
|
|
|
| |
llvm-svn: 197611
|
|
|
|
| |
llvm-svn: 192118
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 191043
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
for the gdb index as the names convey.
llvm-svn: 190343
|
|
|
|
|
|
|
|
| |
we're proposing it for DWARF5.
No functional change intended.
llvm-svn: 190074
|
|
|
|
| |
llvm-svn: 190019
|
|
|
|
| |
llvm-svn: 186296
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to lib/DebugInfo, with dumping in llvm-dwarfdump. This patch adds
initial ability to parse and dump CFA instructions contained in
entries.
To keep it manageable, the patch omits some more advanced capabilities
(accounted in TODOs):
* Parsing of instructions with BLOCK arguments (expression lists)
* Dumping of actual instruction arguments (currently only names are
dumped). This is quite tricky since the dumper has to effectively
"interpret" the instructions.
llvm-svn: 175820
|
|
|
|
|
|
| |
make sure that vector types do work.
llvm-svn: 171833
|
|
|
|
| |
llvm-svn: 171821
|
|
|
|
|
|
| |
single attribute in the future.
llvm-svn: 170502
|
|
|
|
| |
llvm-svn: 169056
|
|
|
|
| |
llvm-svn: 153691
|
|
|
|
| |
llvm-svn: 149724
|
|
|
|
|
|
|
| |
1. http://gcc.gnu.org/wiki/TemplateParmsDwarf
2. ftp://ftp.software.ibm.com/software/os390/czos/dwarf/mips_extensions.pdf
llvm-svn: 139784
|
|
|
|
|
|
| |
Note that DW_TAG_rvalue_reference_type is officially 0x42, not 0x41.
llvm-svn: 139779
|
|
|
|
| |
llvm-svn: 139503
|
|
|
|
|
|
| |
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g
llvm-svn: 131244
|
|
|
|
|
|
| |
an attribute DW_AT_APPLE_objc_class_extension.
llvm-svn: 131238
|
|
|
|
| |
llvm-svn: 129945
|
|
|
|
|
|
| |
information generated for an interface.
llvm-svn: 129624
|
|
|
|
| |
llvm-svn: 125986
|
|
|
|
|
|
|
|
|
| |
DW_OP_breg[0..31] to Dwarf.h.
Add "DW_" prefix to the llvm::dwarf::*String methods which did not
already have them in Dwarf.cpp.
llvm-svn: 106197
|
|
|
|
| |
llvm-svn: 101812
|
|
|
|
| |
llvm-svn: 101805
|
|
|
|
| |
llvm-svn: 92268
|