| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 203983
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
based on the ODR.
This adds an OdrMemberMap to DwarfDebug which is used to unique C++
member function declarations based on the unique identifier of their
containing class and their mangled name.
We can't use the usual DIRef mechanism here because DIScopes are indexed
using their entire MDNode, including decl_file and decl_line, which need
not be unique (see testcase).
Prior to this change multiple redundant member function declarations would
end up in the same uniqued DW_TAG_class_type.
llvm-svn: 203982
|
| |
|
|
| |
llvm-svn: 203980
|
| |
|
|
| |
llvm-svn: 203867
|
| |
|
|
|
|
| |
is a declaration and return the size of the type.
llvm-svn: 203690
|
| |
|
|
|
|
| |
No functional change.
llvm-svn: 203681
|
| |
|
|
| |
llvm-svn: 203634
|
| |
|
|
|
|
|
| |
This removes a relocation from each subprogram, reducing link times,
etc.
llvm-svn: 203187
|
| |
|
|
|
|
| |
emitting pub sections for compile units
llvm-svn: 203057
|
| |
|
|
|
|
| |
already lives.
llvm-svn: 203038
|
| |
|
|
|
|
|
|
| |
This enables us to figure out where in the debug_loc section our
locations are so that we can eventually hash them. It also helps
remove some special case code in emission. No functional change.
llvm-svn: 203018
|
| |
|
|
|
|
| |
making the cache mutable.
llvm-svn: 202417
|
| |
|
|
| |
llvm-svn: 202316
|
| |
|
|
|
|
|
|
|
| |
This is refactoring / simplifying code, updating comments and enabling the
testcase on non-x86 platforms.
No functionality change.
llvm-svn: 202199
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Variadic functions have an unspecified parameter tag after the last
argument. In IR this is represented as an unspecified parameter in the
subroutine type.
Paired commit with CFE r202185.
rdar://problem/13690847
This re-applies r202184 + a bugfix in DwarfDebug's argument handling.
llvm-svn: 202188
|
| |
|
|
|
|
| |
This reverts commit r202184 because of buildbot breakage.
llvm-svn: 202187
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Variadic functions have an unspecified parameter tag after the last
argument. In IR this is represented as an unspecified parameter in the
subroutine type.
Paired commit with CFE.
rdar://problem/13690847
llvm-svn: 202184
|
| |
|
|
|
|
|
| |
method to actually set it in the class to avoid computing it
multiple times.
llvm-svn: 201751
|
| |
|
|
| |
llvm-svn: 201745
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
alongside DIEBlock and replace uses accordingly. Use DW_FORM_exprloc
in DWARF4 and later code. Update testcases.
Adding a DIELoc instead of using extra forms inside DIEBlock so
that we can keep location expressions separate from other uses. No
direct use at the moment, however, it's not a lot of code and
using a separately named class keeps it somewhat more obvious
what's going on in various locations.
llvm-svn: 201481
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This broke in r185459 while TLS support was being generalized to handle
non-symbol TLS representations.
I thought about/tried having an enum rather than a bool to track the
TLS-ness of the address table entry, but namespaces and naming seemed
more hassle than it was worth for only one caller that needed to specify
this.
llvm-svn: 201469
|
| |
|
|
|
|
|
|
|
| |
Type units will share the statement list of their defining compile unit.
This is a tradeoff that reduces .o debug info size at the cost of some
linked debug info size (since the contents of those string tables won't
be deduplicated along with the type unit) which seems right for now.
llvm-svn: 201445
|
| |
|
|
|
|
|
| |
These types have an out of line virtual function each (emitHeader at
least) so they won't have weak vtables - no need for more than that.
llvm-svn: 201444
|
| |
|
|
|
|
| |
-Wunused-member-variable
llvm-svn: 201442
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fission and non-fission cases
This probably also addresses the FIXME in the fission case regarding
multiple compile units, though I haven't tested that.
This code still confuses me (the literal zero offset makes little sense,
the limitations surrounding asm output I'm not sure about either - but
perhaps we should just always emit one line table? Or should we not rely
on .loc/.file even in assembly so we can produce the same output between
asm and object output?) but this maintains the existing functionality.
llvm-svn: 201441
|
| |
|
|
| |
llvm-svn: 201265
|
| |
|
|
| |
llvm-svn: 201264
|
| |
|
|
|
|
| |
rdar://problem/16015314
llvm-svn: 201253
|
| |
|
|
|
|
|
|
|
|
| |
file_names table
There's still one piece missing here, which is adding the
DW_AT_stmt_list to the type unit that refer's to the compile unit's line
table. Working on that.
llvm-svn: 201198
|
| |
|
|
|
|
|
|
|
| |
DwarfTypeUnit.
Type units need to insert their file strings into the compile unit's
line/file table. This is preliminary work to that end.
llvm-svn: 201196
|
| |
|
|
|
|
|
|
| |
This is preliminary work to fix type unit file strings so they appear in
their originating CU's line table - but it's also just good/simple
cleanup, so I'm committing it ahead of time.
llvm-svn: 201195
|
| |
|
|
|
|
|
|
| |
We used to be pretty vague about what debug entities were what, with
many conditionals to silently drop/skip/accept things. These don't seem
to be relevant anymore.
llvm-svn: 201194
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Debug info: Emit values in subregisters that do not have a separate
DWARF register number by emitting a super-register + DW_OP_bit_piece.
This is necessary because on x86_64, there are no DWARF register numbers
for i386-style subregisters.
Fixes a bunch of FIXMEs.
rdar://problem/16015314
llvm-svn: 201190
|
| |
|
|
|
|
| |
This reverts commit r201179 for buildbot breakage.
llvm-svn: 201188
|
| |
|
|
|
|
|
|
|
|
|
| |
DWARF register number by emitting a super-register + DW_OP_bit_piece.
This is necessary because on x86_64, there are no DWARF register numbers
for i386-style subregisters.
Fixes a bunch of FIXMEs.
rdar://problem/16015314
llvm-svn: 201180
|
| |
|
|
|
|
|
|
|
|
|
| |
emits zero-length arrays as {i32 0}
A bunch of test cases needed to be cleaned up for this, many my fault -
when implementid imported modules I updated test cases by simply
duplicating the prior metadata field - which wasn't always the empty
metadata entry.
llvm-svn: 200731
|
| |
|
|
|
|
| |
keeping track of those entries.
llvm-svn: 200572
|
| |
|
|
| |
llvm-svn: 200323
|
| |
|
|
|
|
|
|
| |
in order to fix the cygwin/mingw bots.
This reverts commit r199990.
llvm-svn: 199991
|
| |
|
|
|
|
|
|
| |
compile unit. Make these relocations on the platforms that need
relocations and add a routine to ensure that we don't put the
addresses in an offset table for split dwarf.
llvm-svn: 199990
|
| |
|
|
|
|
|
|
| |
void.
Patch by Scott Talbot.
llvm-svn: 199924
|
| |
|
|
|
|
|
|
|
| |
getOrCreateSubprogramDIE to avoid attributes being added twice when DIEs
are merged.
rdar://problem/15842330.
llvm-svn: 199536
|
| |
|
|
|
|
|
|
|
| |
This reverts commit r198865 which reverts r198851.
ASan identified a use-of-uninitialized of the DwarfTypeUnit::Ty variable
in skeleton type units.
llvm-svn: 198908
|
| |
|
|
|
|
| |
It caused undefined behavior. DwarfTypeUnit::Ty might not be initialized properly, I guess.
llvm-svn: 198865
|
| |
|
|
| |
llvm-svn: 198851
|
| |
|
|
|
|
|
|
|
|
| |
as well.
Since we'll now also need the split dwarf file name along with the
language in DwarfTypeUnits, just use the whole DICompileUnit rather than
explicitly handling each field needed.
llvm-svn: 198842
|
| |
|
|
|
|
|
|
| |
This reverts commit r198830.
Decided to go a different way with this...
llvm-svn: 198841
|
| |
|
|
|
|
| |
It's unused in DwarfTypeUnit, as is expected.
llvm-svn: 198830
|
| |
|
|
|
|
| |
This makes it available to tools that don't link with target (like llvm-ar).
llvm-svn: 198708
|
| |
|
|
|
|
|
|
|
|
| |
subsequent changes are easier to review. About to fix some layering
issues, and wanted to separate out the necessary churn.
Also comment and sink the include of "Windows.h" in three .inc files to
match the usage in Memory.inc.
llvm-svn: 198685
|