summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Reapply r198196 with a fix to zero initialize the skeleton pointer.Eric Christopher2013-12-301-26/+20
| | | | llvm-svn: 198199
* Temporarily revert "Use a pointer to keep track of the skeleton unit forEric Christopher2013-12-301-20/+26
| | | | | | each normal unit" as it seems to be causing problems in the asan tests. llvm-svn: 198197
* Use a pointer to keep track of the skeleton unit for each normal unitEric Christopher2013-12-301-26/+20
| | | | | | | | | | | and construct it up front. Add address ranges at the end and a helper routine so that we're not needlessly using an indirction in the case of split dwarf. Update testcases according to the new ordering of attributes on the compile unit. llvm-svn: 198196
* Ranges in the .debug_range section need to have begin and end labels,Eric Christopher2013-12-201-13/+8
| | | | | | assert that this is so. llvm-svn: 197780
* Add support for a CU to output a set of ranges for the CU. This is usefulEric Christopher2013-12-201-20/+64
| | | | | | | | when you want to have the full list of addresses for a particular CU or when you have multiple modules linked together and can't depend upon the ordering of a single CU for begin/end ranges. llvm-svn: 197776
* DebugInfo: Introduce new DIValue, DIETypeSignature to encode references to ↵David Blaikie2013-12-171-29/+4
| | | | | | | | | type units via their signatures This simplifies type unit and type unit reference creation as well as setting the stage for inter-type hashing across type unit boundaries. llvm-svn: 197539
* DebugInfo: Move type units into the debug_types section with appropriate ↵David Blaikie2013-12-131-7/+5
| | | | | | | | | | | | | | | | | | | | | | | | comdat grouping and type unit headers This commit does not complete the type units feature - there are issues around fission support (skeletal type units, pubtypes/pubnames) and hashing of some types including those containing references to types in other type units. Originally committed as r197073 and reverted in r197079. Recommitted as r197197 to reproduce the failure and reverted as r197199 Turns out there was unstable ordering in the type unit dumping code. Fixed by using MapVector in DWARFContext to store the debug_types comdat sections. Recommitted as r197210 with a fix to dumping and reverted as r197211 because I was a bit gun shy and thought I saw a failure that turned out to be unrelated. So here we go - once more with feeling! \o/ llvm-svn: 197275
* Revert "DebugInfo: Move type units into the debug_types section with ↵David Blaikie2013-12-131-5/+7
| | | | | | | | appropriate comdat grouping and type unit headers" This reverts commit r197210. llvm-svn: 197211
* DebugInfo: Move type units into the debug_types section with appropriate ↵David Blaikie2013-12-131-7/+5
| | | | | | | | | | | | | | | | | | comdat grouping and type unit headers This commit does not complete the type units feature - there are issues around fission support (skeletal type units, pubtypes/pubnames) and hashing of some types including those containing references to types in other type units. Originally committed as r197073 and reverted in r197079. Recommitted as r197197 to reproduce the failure and reverted as r197199 Turns out there was unstable ordering in the type unit dumping code. Fixed by using MapVector in DWARFContext to store the debug_types comdat sections. llvm-svn: 197210
* Revert "DebugInfo: Move type units into the debug_types section with ↵David Blaikie2013-12-131-5/+7
| | | | | | | | appropriate comdat grouping and type unit headers" This reverts commit r197197. llvm-svn: 197199
* DebugInfo: Move type units into the debug_types section with appropriate ↵David Blaikie2013-12-131-7/+5
| | | | | | | | | | | | | | | | | | | comdat grouping and type unit headers This commit does not complete the type units feature - there are issues around fission support (skeletal type units, pubtypes/pubnames) and hashing of some types including those containing references to types in other type units. Originally committed as r197073 and reverted in r197079. This commit originally got jumbled up with another build-breaking commit and I can't find the failures I thought this caused anymore. Recommitting to hopefully get some clean buildbot results to work from. I have a sneaking suspicion there's unstable output in the comdat group output of MCStreamer... llvm-svn: 197197
* Revert "DebugInfo: Move type units into the debug_types section with ↵David Blaikie2013-12-111-5/+7
| | | | | | | | | | | | appropriate comdat grouping and type unit headers" This reverts commit r197073. The test seems to be failing on some buildbots for unknown reasons. Reverting until I can figure that out. If anyone's got a reproduction (.s and .o together would be great) - I'd really appreciate it. llvm-svn: 197079
* DebugInfo: Move type units into the debug_types section with appropriate ↵David Blaikie2013-12-111-7/+5
| | | | | | | | | | | comdat grouping and type unit headers This commit does not complete the type units feature - there are issues around fission support (skeletal type units, pubtypes/pubnames) and hashing of some types including those containing references to types in other type units. llvm-svn: 197073
* Disable emitting DW_AT_GNU_ranges_base until we actually use it.Eric Christopher2013-12-101-6/+1
| | | | llvm-svn: 196851
* We never emit info into the macro info section, stop emitting anEric Christopher2013-12-101-12/+0
| | | | | | empty one. llvm-svn: 196849
* Rename CompileUnit->DwarfCompileUnit and TypeUnit->DwarfTypeUnit forEric Christopher2013-12-091-44/+52
| | | | | | clarity. No functional change. llvm-svn: 196844
* Rename Unit->DwarfUnit to match the file name and make it a bit lessEric Christopher2013-12-091-48/+44
| | | | | | ambiguous. Reformat to match. llvm-svn: 196838
* DwarfDebug/Unit: Remove another case of label recreation by storing the ↵David Blaikie2013-12-091-6/+4
| | | | | | gnu_ranges label in the unit. llvm-svn: 196793
* DebugInfo: Move unit begin/end labels into the unitDavid Blaikie2013-12-061-21/+7
| | | | | | | | This removes another case of spooky action at a distance (building the same label names in multiple places creating an implicit dependency between those places) and helps pave the way for type units. llvm-svn: 196617
* DebugInfo: Include the section and start-of-section label in the unitDavid Blaikie2013-12-061-13/+32
| | | | | | | This is a precursor to moving type units into the correct (debug_types) section with comdat groups and full type unit headers. llvm-svn: 196615
* DwarfDebug: Walk skeletons during fission pubtypes/pubnames emissionDavid Blaikie2013-12-061-10/+10
| | | | | | | | | | | This more accurately represents the actual walk - pubnames/pubtypes are emitted into the .o, not the .dwo, and reference the skeletons not the full units. Use the newly established ID->index invariant to lookup the underlying full unit to retrieve its public names and types. llvm-svn: 196601
* DebugInfo: Ensure unit IDs (for non-skeletal units) match thein index in the ↵David Blaikie2013-12-061-9/+9
| | | | | | | | | | | | | | | | | | | list This simplifies reasoning about the code and enables simple navigation from a skeleton to its full unit. (currently there are no type unit skeletons, so the skeleton list doesn't have the same ID == index property) Eventually we should get rid of this ID and just store the labels we need as the IDs are allowing this code to create difficult to manage/understand associations (loops over non-skeletal units are implicitly referencing their skeletal units during pub* emission, for example). It may be necessary to have some kind of skeleton->full unit association and a more direct pointer or similar device would be preferable than an index. llvm-svn: 196600
* Rename DwarfUnits to DwarfFile to help avoid some naming confusion.Eric Christopher2013-12-051-16/+16
| | | | llvm-svn: 196519
* DwarfDebug/DwarfUnit: Push abbreviation structures down into DwarfUnits to ↵David Blaikie2013-12-051-26/+13
| | | | | | reduce duplication llvm-svn: 196479
* DwarfDebug: Avoid unnecessary abbreviation lookup when emitting DIEsDavid Blaikie2013-12-051-17/+15
| | | | | | | DIEs already contain references directly to their DIEAbbrev, use that instead of looking it up based on index. llvm-svn: 196446
* DwarfDebug: Remove trivial function wrapperDavid Blaikie2013-12-051-6/+2
| | | | llvm-svn: 196445
* 80-column.Eric Christopher2013-12-051-1/+2
| | | | llvm-svn: 196442
* Remove special handling for DW_AT_ranges support by constructing theEric Christopher2013-12-051-20/+12
| | | | | | values with the correct behavior. llvm-svn: 196441
* Update comment.Eric Christopher2013-12-041-1/+2
| | | | llvm-svn: 196431
* Update comment.Eric Christopher2013-12-041-1/+1
| | | | llvm-svn: 196430
* Make RangeSpanList take a symbol for the beginning of the rangeEric Christopher2013-12-041-6/+5
| | | | | | rather than magically making the names match. llvm-svn: 196419
* DwarfDebug: Unconditionalize trivial asm commentsDavid Blaikie2013-12-041-10/+5
| | | | | | | | While we still have a few (~4) non-trivial comments with string concatenation, etc that should remain conditionalized, these trivial literal comments can be simplified. llvm-svn: 196416
* DwarfDebug: Reduce code duplication for sec offset emissionDavid Blaikie2013-12-041-56/+28
| | | | llvm-svn: 196414
* Couple of small logical cleanups to use !empty rather than otherEric Christopher2013-12-041-2/+2
| | | | | | checks. No functional change. llvm-svn: 196412
* Use move and stack allocation for RangeSpanLists. As a result makeEric Christopher2013-12-041-11/+11
| | | | | | | a few things more const as well because we're now using const references to refer to iterators. llvm-svn: 196398
* DebugInfo: Remove unused start/end labels for the debug_abbrevs sectionDavid Blaikie2013-12-041-6/+0
| | | | | | | | | | Since we always emit only one abbrevation section (shared by all the compilation units in this module) there's no need for a separate label at the start of each one (and we weren't using the CU ID anyway, so there really was only one label). Use the section label instead and drop the wholely unused debug_abbrev_end label. llvm-svn: 196394
* DebugInfo: Avoid recreating matching labels in disparate places.David Blaikie2013-12-041-20/+16
| | | | | | | | Instead, reuse the same MCSymbol - this should make the code easier to follow by avoiding hard to trace dependencies between different bits of code. llvm-svn: 196392
* Reland 196270 "Generalize debug info / EH emission in AsmPrinter"Timur Iskhodzhanov2013-12-031-16/+34
| | | | | | Addressing the existense AMDGPUAsmPrinter and other subclasses of AsmPrinter llvm-svn: 196288
* Revert r196270, "Generalize debug info / EH emission in AsmPrinter"NAKAMURA Takumi2013-12-031-27/+17
| | | | | | It broke CodeGen/R600 tests with +Asserts. llvm-svn: 196272
* Generalize debug info / EH emission in AsmPrinterTimur Iskhodzhanov2013-12-031-17/+27
| | | | llvm-svn: 196270
* Refactor the handling of lexical block and inline scope rangesEric Christopher2013-12-031-36/+25
| | | | | | into a single function. No functional change. llvm-svn: 196181
* Make ranges and range lists be a discrete entity that can be locatedEric Christopher2013-12-031-50/+90
| | | | | | | and emitted per function and CU. Begins coalescing ranges as a first class entity through debug info. No functional change. llvm-svn: 196178
* DebugInfo: Rename generic unit references to "TheU" instead of TheCU now ↵David Blaikie2013-12-021-50/+50
| | | | | | | | that they might be type units instead of compile units. CR feedback from Eric Christopher on r196139. llvm-svn: 196159
* DebugInfo: Rename DwarfCompileUnit.* to DwarfUnit.* to match their contents.David Blaikie2013-12-021-1/+1
| | | | llvm-svn: 196140
* DebugInfo: Refactor CompileUnit into a Unit baseclass and ↵David Blaikie2013-12-021-44/+43
| | | | | | | | | | CompileUnit/TypeUnit derived classes. Header/cpp file rename to follow immediately - just splitting out the commits for ease of review/reading to demonstrate that the renaming changes are entirely mechanical. llvm-svn: 196139
* DebugInfo: Type Units: Propagate the correct DW_AT_language into type units.David Blaikie2013-12-021-5/+5
| | | | llvm-svn: 196130
* 80-column fixups.Eric Christopher2013-11-261-1/+3
| | | | llvm-svn: 195790
* DwarfDebug: Include type units in accelerator tables.David Blaikie2013-11-261-23/+25
| | | | | | | Since type units aren't in the CUMap, use the DwarfUnits list to iterate over units for tasks such as accelerator table building. llvm-svn: 195776
* DebugInfo: Pubtypes: Coelesce pubtype registration with accelerator type ↵David Blaikie2013-11-261-3/+0
| | | | | | | | | | registration. It might be possible to eventually use one data structure, but I haven't looked at the exact criteria used for accelerator tables and pubtypes to see if there's good reason for the differences between the two or not. llvm-svn: 195696
* DwarfDebug: Move ownership of CompileUnits into DwarfUnitsDavid Blaikie2013-11-231-10/+6
| | | | | | | | | | This avoids the need for an extra list of SkeletonCUs and associated cleanup while staging things to be cleaner for further type unit improvements. Also hopefully fixes a memory leak introduced in r195166. llvm-svn: 195536
OpenPOWER on IntegriCloud