| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
after the DIE creation, we construct the context first.
Ensure that we create the context before we create a type so that we can add
the newly created type to the parent. Remove last use of addToContextOwner
now that it's not needed.
We use createAndAddDIE to wrap around "new DIE(". Now all shareable DIEs
should be added to their parents right after the creation.
Reviewed off-list by Eric, Thanks.
llvm-svn: 193657
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It wraps around "new DIE(" and handles the bookkeeping part of the newly-created
DIE. It adds the DIE to its parent, and calls insertDIE if necessary. It makes
sure that bookkeeping is done at the earliest time and we should not see
parentless DIEs if all constructions of DIEs go through this helper function.
Later on, we can use an allocator for DIE allocation, and will only need to
change createAndAddDIE instead of modifying all the "new DIE(".
Reviewed off-list by Eric.
llvm-svn: 193566
|
|
|
|
| |
llvm-svn: 193373
|
|
|
|
|
|
|
|
|
|
|
| |
Since we never insert DIE for DITemplateTypeParameter to a map, there is no need
to call getDIE in getOrCreateTemplateTypeParameterDIE. It is also renamed to
constructTemplateTypeParameterDIE to match with other construct functions
in CompileUnit.
Same applies to getOrCreateTemplateValueParameterDIE.
llvm-svn: 193287
|
|
|
|
|
|
|
| |
Rename createMemberDIE to constructMemberDIE to match other construct functions
in CompileUnit.
llvm-svn: 193286
|
|
|
|
|
|
|
| |
Remove the unneeded return values from createMemberDIE, constructEnumTypeDIE,
getOrCreateTemplateTypeParameterDIE, and getOrCreateTemplateValueParameterDIE.
llvm-svn: 193285
|
|
|
|
|
|
|
|
|
| |
Unifying the argument ordering of private construct functions in CompileUnit to
follow constructTypeDIE(DIE &, DIBasicType),
constructTypeDIE(DIE &, DIDerivedType), constructTypeDIE(DIE &, DICompositeType),
constructSubrangeDIE and constructArrayTypeDIE.
llvm-svn: 193284
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
With this commit, all DIEs created in CompileUnit will be added to parents
inside the same function. Also make getOrCreateTemplateType|Value functions
private.
No functionality change.
llvm-svn: 193002
|
|
|
|
|
|
|
|
|
|
|
| |
like C++ should be the fully qualified names for the type.
Add a routine that does a language specific context walk to build
up the qualified name and use it when we add types/names to the
tables. Expand the gnu pubnames testcase as it's the most complex
to make sure that qualified types are also being added.
llvm-svn: 192865
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Clean up creation of static member DIEs. We can create static member DIEs from
two places, so we call getOrCreateStaticMemberDIE from the two places.
getOrCreateStaticMemberDIE will get or create the context DIE first, then it
will check if the DIE already exists, if not, we create the static member DIE
and add it to the context.
Creation of static member DIEs are handled in a similar way as subprogram DIEs.
llvm-svn: 192618
|
|
|
|
|
|
|
|
|
| |
The form must be a reference form in addDIEEntry. Which reference form to
use will be decided by the callee.
No functionality change.
llvm-svn: 192517
|
|
|
|
| |
llvm-svn: 192017
|
|
|
|
| |
llvm-svn: 192016
|
|
|
|
| |
llvm-svn: 192014
|
|
|
|
| |
llvm-svn: 192009
|
|
|
|
| |
llvm-svn: 192004
|
|
|
|
| |
llvm-svn: 192003
|
|
|
|
|
|
| |
scope, pass a scope.
llvm-svn: 192002
|
|
|
|
|
|
| |
way for all platforms.
llvm-svn: 191975
|
|
|
|
|
|
|
| |
info finalization to greatly reduce the number of fixups that the
assembler has to handle in order to improve compile time.
llvm-svn: 191119
|
|
|
|
|
|
| |
to further work.
llvm-svn: 191113
|
|
|
|
|
|
|
| |
It works with clang, but GCC has different rules so we can't make all of those
hidden. This reverts commit r190534.
llvm-svn: 190536
|
|
|
|
|
|
| |
Worth 100k on a linux/x86_64 Release+Asserts clang.
llvm-svn: 190534
|
|
|
|
| |
llvm-svn: 189296
|
|
|
|
|
|
| |
can get it via the MDNode that's passed in. Save that instead.
llvm-svn: 189291
|
|
|
|
| |
llvm-svn: 187953
|
|
|
|
| |
llvm-svn: 186851
|
|
|
|
| |
llvm-svn: 185689
|
|
|
|
|
|
| |
true, so remove the return value and propagate accordingly.
llvm-svn: 185490
|
|
|
|
|
|
|
|
|
|
|
|
| |
This partially reverts r185202 and restores DIELabel to hold plain
MCSymbol references. Instead, we add a new subclass DIEExpr of
DIEValue that can hold generic MCExpr references.
This is in preparation for supporting debug info for TLS variables
on PowerPC, where we need to describe the variable location using
a more complex expression than just MCSymbolRefExpr.
llvm-svn: 185458
|
|
|
|
|
|
|
| |
This is a precursor to adding debug info support for TLS which requires
non-default relocations applied to TLS symbols.
llvm-svn: 185202
|
|
|
|
|
|
| |
never modified. No functional change.
llvm-svn: 184781
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
function anyway
Fix up three tests - one that was relying on abbreviation number,
another relying on a location list in this case (& testing raw asm,
changed that to use dwarfdump on the debug_info now that that's where
the location is), and another which was added in r184368 - exposing a
bug in that fix that is exposed when we emit the location inline rather
than through a location list. Fix that bug while I'm here.
llvm-svn: 184387
|
|
|
|
|
|
| |
instead of relying upon an extra call to finish initializing.
llvm-svn: 181383
|
|
|
|
| |
llvm-svn: 181378
|
|
|
|
| |
llvm-svn: 181271
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
belongs to a different compile unit.
DW_FORM_ref_addr should be used for cross compile-unit reference.
When compiling a large application, we got a dwarfdump verification error where
abstract_origin points to nowhere.
This error can't be reproduced on any testing case in MultiSource.
We may have other cases where we use DW_FORM_ref4 unconditionally.
rdar://problem/13370501
llvm-svn: 176882
|
|
|
|
|
|
| |
option "generate-dwarf-pubnames" to control it, set to "false" by default.
llvm-svn: 174981
|
|
|
|
| |
llvm-svn: 172941
|
|
|
|
| |
llvm-svn: 172857
|
|
|
|
|
|
|
|
|
|
|
| |
of a class. Emit static data member declarations and definitions
through correctly.
Part of PR14471.
Patch by Paul Robinson!
llvm-svn: 172590
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
using the DW_FORM_GNU_addr_index and a separate .debug_addr section which
stays in the executable and is fully linked.
Sneak in two other small changes:
a) Print out the debug_str_offsets.dwo section.
b) Change form we're expecting the entries in the debug_str_offsets.dwo
section to take from ULEB128 to U32.
Add tests for all of this in the fission-cu.ll test.
llvm-svn: 172578
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
proposal. This leaves the strings in the skeleton die as strp,
but in all dwo files they're accessed now via DW_FORM_GNU_str_index.
Add support for dumping these sections and modify the fission-cu.ll
testcase to have the correct strings and form. Fix a small bug
in the fixed form sizes routine that involved out of array accesses
for the table and add a FIXME in the extractFast routine to fix
this up.
llvm-svn: 171779
|
|
|
|
| |
llvm-svn: 170771
|
|
|
|
|
|
| |
into the DwarfUnits class.
llvm-svn: 170770
|
|
|
|
|
|
| |
more natural check first in the if-then statement.
llvm-svn: 169486
|
|
|
|
|
|
|
|
|
| |
Some languages, e.g. Ada and Pascal, allow you to specify that the array bounds
are different from the default (1 in these cases). If we have a lower bound
that's non-default, then we emit the lower bound. We also calculate the correct
upper bound in those cases.
llvm-svn: 169484
|
|
|
|
|
|
|
|
|
|
| |
missed in the first pass because the script didn't yet handle include
guards.
Note that the script is now able to handle all of these headers without
manual edits. =]
llvm-svn: 169224
|
|
|
|
|
|
| |
Thanks Eric for the review.
llvm-svn: 169142
|