summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* 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
* Refactor DW_AT_ranges handling to use labels for ranges rather thanEric Christopher2013-11-231-23/+24
| | | | | | | | | a non-relocatable number offset. One fixme to make the ranges as discrete data structures and have range lists explicitly represented rather than as a list of symbols. llvm-svn: 195523
* In Dwarf 3 (and Dwarf 2) attributes whose value are offsets into aEric Christopher2013-11-211-40/+51
| | | | | | | | | | | | | | | | | | | | | section use the form DW_FORM_data4 whilst in Dwarf 4 and later they use the form DW_FORM_sec_offset. This patch updates the places where such attributes are generated to use the appropriate form depending on the Dwarf version. The DIE entries affected have the following tags: DW_AT_stmt_list, DW_AT_ranges, DW_AT_location, DW_AT_GNU_pubnames, DW_AT_GNU_pubtypes, DW_AT_GNU_addr_base, DW_AT_GNU_ranges_base It also adds a hidden command line option "--dwarf-version=<uint>" to llc which allows the version of Dwarf to be generated to override what is specified in the metadata; this makes it possible to update existing tests to check the debugging information generated for both Dwarf 4 (the default) and Dwarf 3 using the same metadata. Patch (slightly modified) by Keith Walker! llvm-svn: 195391
* Constify the DIEs used for pubname and pubtype tables. PropagateEric Christopher2013-11-211-9/+9
| | | | | | through findAttribute etc. llvm-svn: 195290
* DebugInfo: Partial implementation of DWARF type units.David Blaikie2013-11-191-18/+56
| | | | | | | | | | | | | | Emit DW_TAG_type_units into the debug_info section using compile unit headers. This is bogus/unusable by debuggers, but testable and provides more isolated review. Subsequent patches will include support for type unit headers and emission into the debug_types section, as well as comdat grouping the types based on their hash. Also the CompileUnit type will be renamed 'Unit' and relevant portions pulled out into respective CompileUnit and TypeUnit types. llvm-svn: 195166
* DebugInfo: Constify accelerator table handling, and separate type ↵David Blaikie2013-11-191-26/+32
| | | | | | accelarator insertion in preparation for a second use of this code from type units. llvm-svn: 195164
* Fix comment.Eric Christopher2013-11-191-1/+2
| | | | llvm-svn: 195121
* Refactor the section emission code to remove duplicates now thatEric Christopher2013-11-191-39/+15
| | | | | | | we can emit various sections in any order. No functional change. llvm-svn: 195120
* Reformat file.Eric Christopher2013-11-191-249/+283
| | | | llvm-svn: 195119
* DwarfDebug: Move trailing else to the same line as prior closing braceDavid Blaikie2013-11-181-4/+2
| | | | llvm-svn: 195060
* DwarfDebug: Remove some more redundant explicit constructions.David Blaikie2013-11-181-4/+3
| | | | llvm-svn: 195059
* DwarfCompileUnit: Add type safety to createGlobalVariableDIEDavid Blaikie2013-11-171-1/+1
| | | | llvm-svn: 194979
* For dwarf4 use the correct form for referencing debug_loc locations,Eric Christopher2013-11-161-1/+1
| | | | | | | | | and update test cases accordingly. This doesn't affect the output dumped using llvm-dwarfdump, but readelf does now dump the debug_loc section. llvm-svn: 194898
* DwarfCompileUnit: Add type safety to CompileUnit::getNode by returning ↵David Blaikie2013-11-151-4/+3
| | | | | | DICompileUnit instead of a raw MDNode*. llvm-svn: 194895
* DwarfCompileUnit: Add type safety by using DICompileUnit rather than raw ↵David Blaikie2013-11-151-7/+7
| | | | | | MDNode* for the CU metadata node llvm-svn: 194893
* DwarfDebug: Push DISubprogram through updateSubprogramScopeDIEDavid Blaikie2013-11-151-6/+4
| | | | llvm-svn: 194879
* DwarfCompileUnit: Push DIDescriptors through a getDIE/insertDIEDavid Blaikie2013-11-151-1/+1
| | | | llvm-svn: 194875
OpenPOWER on IntegriCloud