summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Debug Info: instead of calling addToContextOwner which constructs the contextManman Ren2013-10-291-3/+0
| | | | | | | | | | | | | | | 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
* Debug Info: add a helper function createAndAddDIE.Manman Ren2013-10-291-0/+4
| | | | | | | | | | | | | | 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
* Fix name of variable in comment.Eric Christopher2013-10-241-1/+1
| | | | llvm-svn: 193373
* Debug Info: code clean up.Manman Ren2013-10-231-9/+9
| | | | | | | | | | | 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
* Debug Info: code clean up.Manman Ren2013-10-231-2/+2
| | | | | | | Rename createMemberDIE to constructMemberDIE to match other construct functions in CompileUnit. llvm-svn: 193286
* Debug Info: code clean up.Manman Ren2013-10-231-4/+4
| | | | | | | Remove the unneeded return values from createMemberDIE, constructEnumTypeDIE, getOrCreateTemplateTypeParameterDIE, and getOrCreateTemplateValueParameterDIE. llvm-svn: 193285
* Debug Info: code clean up.Manman Ren2013-10-231-6/+6
| | | | | | | | | 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
* DebugInfo: Put each kind of constant (form, attribute, tag, etc) into its ↵David Blaikie2013-10-211-19/+27
| | | | | | | | | | | 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
* Debug Info: add a newly-created DIE to a parent in the same function.Manman Ren2013-10-181-10/+12
| | | | | | | | | | 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
* According to the dwarf standard pubnames and pubtypes for languagesEric Christopher2013-10-171-1/+5
| | | | | | | | | | | 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
* Debug Info: static member DIE creation.Manman Ren2013-10-141-2/+2
| | | | | | | | | | | | | 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
* Debug Info: remove form from function addDIEEntry.Manman Ren2013-10-111-1/+1
| | | | | | | | | 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
* Reorganize some member variables and update a comment.Eric Christopher2013-10-051-6/+6
| | | | llvm-svn: 192017
* Fix one comment and update another. Slightly reformat.Eric Christopher2013-10-051-1/+1
| | | | llvm-svn: 192016
* Add a resolve method on CompileUnit that forwards to DwarfDebug.Eric Christopher2013-10-051-2/+7
| | | | llvm-svn: 192014
* Make a bunch of CompileUnit member functions private.Eric Christopher2013-10-051-35/+37
| | | | llvm-svn: 192009
* Remove odd use of this.Eric Christopher2013-10-041-1/+1
| | | | llvm-svn: 192004
* Reformat some odd formattings.Eric Christopher2013-10-041-32/+19
| | | | llvm-svn: 192003
* Tighten up some type arguments to functions. Where we expect aEric Christopher2013-10-041-2/+2
| | | | | | scope, pass a scope. llvm-svn: 192002
* Temporarily revert r176882 as it needs to be implemented in a differentEric Christopher2013-10-041-5/+0
| | | | | | way for all platforms. llvm-svn: 191975
* Move emission of the debug string table to early in the debugEric Christopher2013-09-201-16/+10
| | | | | | | info finalization to greatly reduce the number of fixups that the assembler has to handle in order to improve compile time. llvm-svn: 191119
* Migrate addGlobalName to the .cpp file as an intermediate stepEric Christopher2013-09-201-2/+1
| | | | | | to further work. llvm-svn: 191113
* Revert "Give internal classes hidden visibility."Benjamin Kramer2013-09-111-1/+1
| | | | | | | 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
* Give internal classes hidden visibility.Benjamin Kramer2013-09-111-1/+1
| | | | | | Worth 100k on a linux/x86_64 Release+Asserts clang. llvm-svn: 190534
* Formatting.Eric Christopher2013-08-261-10/+10
| | | | llvm-svn: 189296
* Remove the language parameter and variable from the compile unit. WeEric Christopher2013-08-261-5/+5
| | | | | | can get it via the MDNode that's passed in. Save that instead. llvm-svn: 189291
* Be more rigorous about the sizes of forms and attributes.Eric Christopher2013-08-081-15/+15
| | | | llvm-svn: 187953
* Formatting.Eric Christopher2013-07-221-1/+1
| | | | llvm-svn: 186851
* Simplify code. No functionality change.Benjamin Kramer2013-07-051-7/+3
| | | | llvm-svn: 185689
* addConstantValue, addConstantFPValue never returned anything butEric Christopher2013-07-031-5/+5
| | | | | | true, so remove the return value and propagate accordingly. llvm-svn: 185490
* [DebugInfo] Introduce DIEExpr variant of DIEValue to hold MCExpr valuesUlrich Weigand2013-07-021-2/+5
| | | | | | | | | | | | 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
* DebugInfo: Pass MCSymbolRefExprs for labels instead of MCSymbolsDavid Blaikie2013-06-281-1/+5
| | | | | | | This is a precursor to adding debug info support for TLS which requires non-default relocations applied to TLS symbols. llvm-svn: 185202
* Use const references instead of pointers to references that areEric Christopher2013-06-241-4/+5
| | | | | | never modified. No functional change. llvm-svn: 184781
* DebugInfo: don't use location lists when the location covers the whole ↵David Blaikie2013-06-201-1/+1
| | | | | | | | | | | | | 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
* Pass the MDNode in and do the insertion at compile unit creation timeEric Christopher2013-05-081-2/+2
| | | | | | instead of relying upon an extra call to finish initializing. llvm-svn: 181383
* Typo.Eric Christopher2013-05-081-2/+2
| | | | llvm-svn: 181378
* DebugInfo: Support imported modules in lexical blocksDavid Blaikie2013-05-061-3/+3
| | | | llvm-svn: 181271
* Debug Info: use DW_FORM_ref_addr instead of DW_FORM_ref4 if the referenced DIEManman Ren2013-03-121-0/+5
| | | | | | | | | | | | | | | | 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
* Allow optionally generating pubnames section in DWARF info. IntroduceKrzysztof Parzyszek2013-02-121-0/+9
| | | | | | option "generate-dwarf-pubnames" to control it, set to "false" by default. llvm-svn: 174981
* The last of PR14471 - emission of constant floatsDavid Blaikie2013-01-201-0/+3
| | | | llvm-svn: 172941
* Split out DW_OP_addr for the split debug info DWARF5 proposal.Eric Christopher2013-01-181-0/+5
| | | | llvm-svn: 172857
* Define metadata interfaces for describing a static data memberEric Christopher2013-01-161-0/+6
| | | | | | | | | | | of a class. Emit static data member declarations and definitions through correctly. Part of PR14471. Patch by Paul Robinson! llvm-svn: 172590
* Split address information for DWARF5 split dwarf proposal. This involvesEric Christopher2013-01-151-0/+5
| | | | | | | | | | | | | | | 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
* Add support for separating strings for the split debug info DWARF5Eric Christopher2013-01-071-0/+4
| | | | | | | | | | | | | 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
* Whitespace and 80-column cleanup.Eric Christopher2012-12-201-8/+8
| | | | llvm-svn: 170771
* Start splitting out the debug string section handling by moving itEric Christopher2012-12-201-1/+5
| | | | | | into the DwarfUnits class. llvm-svn: 170770
* s/getLowerBoundDefault/getDefaultLowerBound/ for consistency. Also put the ↵Bill Wendling2012-12-061-1/+3
| | | | | | more natural check first in the if-then statement. llvm-svn: 169486
* Handle non-default array bounds.Bill Wendling2012-12-061-1/+2
| | | | | | | | | 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
* Sort includes for all of the .h files under the 'lib' tree. These wereChandler Carruth2012-12-041-2/+2
| | | | | | | | | | 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
* Fix PR12942: Allow two CUs to be generated from the same source file.Eli Bendersky2012-12-031-4/+4
| | | | | | Thanks Eric for the review. llvm-svn: 169142
OpenPOWER on IntegriCloud