| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
accelarator insertion in preparation for a second use of this code from type units.
llvm-svn: 195164
|
|
|
|
| |
llvm-svn: 195122
|
|
|
|
| |
llvm-svn: 194979
|
|
|
|
|
|
| |
CompileUnit::createAndAddDIE.
llvm-svn: 194902
|
|
|
|
|
|
| |
DICompileUnit instead of a raw MDNode*.
llvm-svn: 194895
|
|
|
|
|
|
| |
MDNode* for the CU metadata node
llvm-svn: 194893
|
|
|
|
| |
llvm-svn: 194875
|
|
|
|
|
|
|
|
| |
DbgVariable.
No functional change.
llvm-svn: 194761
|
|
|
|
| |
llvm-svn: 194401
|
|
|
|
| |
llvm-svn: 194398
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We add a map in DwarfDebug to map MDNodes that are shareable across CUs to the
corresponding DIEs: MDTypeNodeToDieMap. These DIEs can be shared across CUs,
that is why we keep the maps in DwarfDebug instead of CompileUnit.
We make the assumption that if a DIE is not added to an owner yet, we assume
it belongs to the current CU. Since DIEs for the type system are added to
their owners immediately after creation, and other DIEs belong to the current
CU, the assumption should be true.
A testing case is added to show that we only create a single DIE for a type
MDNode and we use ref_addr to refer to the type DIE.
We also add a testing case to show ref_addr relocations for non-darwin
platforms.
llvm-svn: 193779
|
|
|
|
|
|
|
| |
This is a preliminary step to handling type units by abstracting over
all (type or compile) units.
llvm-svn: 193714
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To support ref_addr, we calculate the section offset of a DIE (i.e. offset
of a DIE from beginning of the debug info section). The Offset field in DIE
is currently CU-relative. To calculate the section offset, we add a
DebugInfoOffset field in CompileUnit to store the offset of a CU from beginning
of the debug info section. We set the value in DwarfUnits::computeSizeAndOffset
for each CompileUnit.
A helper function DIE::getCompileUnit is added to return the CU DIE that
the input DIE belongs to. We also add a map CUDieMap in DwarfDebug to help
finding the CU for a given CU DIE.
For a cross-referenced DIE, we first find the CU DIE it belongs to with
getCompileUnit, then we use CUDieMap to get the corresponding CU for the CU DIE.
Adding the section offset of the CU with the CU-relative offset of a DIE gives
us the seciton offset of the DIE.
We correctly emit ref_addr with relocation using EmitLabelPlusOffset when
doesDwarfUseRelocationsAcrossSections is true.
This commit handles the emission of DW_FORM_ref_addr when we have an attribute
with FORM_ref_addr. A follow-on patch will start using ref_addr when adding a
DIEEntry. This commit will be tested and verified in the follow-on patch.
Reviewed off-list by Eric, Thanks.
llvm-svn: 193658
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|