summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
Commit message (Collapse)AuthorAgeFilesLines
...
* LTO+Debug Info: correctly emit inlined_subroutine when the inlined callee isManman Ren2013-05-281-0/+9
| | | | | | | | | | | | from a different CU. We used to print out an error message and fail to generate inlined_subroutine. If we use ref_addr in the generated DWARF, the DWARF version should be 3 or above. rdar://13926659 llvm-svn: 182791
* Remove more dead code.Rafael Espindola2013-05-111-10/+0
| | | | llvm-svn: 181656
* Finish renaming constructImportedModuleDIE to constructImportedEntityDIEDavid Blaikie2013-05-081-2/+2
| | | | llvm-svn: 181391
* Rename DIImportedModule to DIImportedEntity and allow imported declarationsDavid Blaikie2013-05-071-3/+3
| | | | | | | | | DIBuilder::createImportedDeclaration isn't fully plumbed through (note, lacking in AsmPrinter/DwarfDebug support) but this seemed like a sufficiently useful division of code to make the subsequent patch(es) easier to follow. llvm-svn: 181364
* DebugInfo: Support imported modules in lexical blocksDavid Blaikie2013-05-061-0/+13
| | | | llvm-svn: 181271
* Revert "Revert "PR14606: debug info imported_module support""David Blaikie2013-04-221-0/+3
| | | | | | | | | | This reverts commit r179840 with a fix to test/DebugInfo/two-cus-from-same-file.ll I'm not sure why that test only failed on ARM & MIPS and not X86 Linux, even though the debug info was clearly invalid on all of them, but this ought to fix it. llvm-svn: 179996
* Revert "PR14606: debug info imported_module support"Eric Christopher2013-04-191-3/+0
| | | | | | This reverts commit r179836 as it seems to have caused test failures. llvm-svn: 179840
* PR14606: debug info imported_module supportDavid Blaikie2013-04-191-0/+3
| | | | | | | | | | Adding another CU-wide list, in this case of imported_modules (since they should be relatively rare, it seemed better to add a list where each element had a "context" value, rather than add a (usually empty) list to every scope). This takes care of DW_TAG_imported_module, but to fully address PR14606 we'll need to expand this to cover DW_TAG_imported_declaration too. llvm-svn: 179836
* DW_FORM_sec_offset should be a relocation on platforms that useEric Christopher2013-04-071-1/+1
| | | | | | | | | a relocation across sections. Do this for DW_AT_stmt list in the skeleton CU and check the relocations in the debug_info section. Add a FIXME for multiple CUs. llvm-svn: 178969
* Debug Info: use DW_FORM_ref_addr instead of DW_FORM_ref4 if the referenced DIEManman Ren2013-03-121-0/+4
| | | | | | | | | | | | | | | | 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
* Remove support for versioned debug info.David Blaikie2013-03-111-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | Versioned debug info support has been a burden to maintain & also compromised current debug info verification by causing test cases testing old debug info to remain rather than being updated to the latest. It also makes it hard to add or change the metadata schema by requiring various backwards-compatibility in the DI* hierarchy. So it's being removed in preparation for new changes to the schema to tidy up old/unnecessary fields and add new fields needed for new debug info (well, new to LLVM at least). The more surprising part of this is the changes to DI*::Verify - this became necessary due to the changes to AsmWriter. AsmWriter was relying on the version test to decide which bits of metadata were actually debug info when printing the comment annotations. Without the version information the tag numbers were too common & it would print debug info on random metadata that happened to start with an integer that matched a tag number. Instead this change makes the Verify functions more precise (just adding "number of operands" checks - not type checking those operands yet) & relies on that to decide which metadata is debug info metadata. llvm-svn: 176838
* Debug Info: store the files and directories for each compile unit.Manman Ren2013-03-071-2/+5
| | | | | | | | | | | | | | We now emit a line table for each compile unit. To reduce the prologue size of each line table, the files and directories used by each compile unit are stored in std::map<unsigned, std::vector< > > instead of std::vector< >. The prologue for a lto'ed image can be as big as 93K. Duplicating 93K for each compile unit causes a huge increase of debug info. With this patch, each prologue will only emit the files required by the compile unit. rdar://problem/13342023 llvm-svn: 176605
* Allow optionally generating pubnames section in DWARF info. IntroduceKrzysztof Parzyszek2013-02-121-0/+3
| | | | | | option "generate-dwarf-pubnames" to control it, set to "false" by default. llvm-svn: 174981
* "Clean up" line section symbol emission by emitting the sectionEric Christopher2013-02-071-1/+1
| | | | | | | syms before constructing the compile units so we're not emitting section references to sections not there already. llvm-svn: 174663
* Clean up multiple skeleton compile units if we have multiple compileEric Christopher2013-02-061-2/+2
| | | | | | units coming in. llvm-svn: 174548
* Remove some dead code.Eric Christopher2013-02-061-3/+0
| | | | llvm-svn: 174547
* Split address information for DWARF5 split dwarf proposal. This involvesEric Christopher2013-01-151-3/+22
| | | | | | | | | | | | | | | 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
* Move the string pools down into the units. No functional change.Eric Christopher2013-01-081-12/+5
| | | | llvm-svn: 171905
* Add support for separating strings for the split debug info DWARF5Eric Christopher2013-01-071-1/+5
| | | | | | | | | | | | | 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
* For the dwarf5 split debug info code split out the string sectionEric Christopher2012-12-271-5/+17
| | | | | | per compile unit/skeleton compile unit. Update tests accordingly. llvm-svn: 171133
* Whitespace and 80-column cleanup.Eric Christopher2012-12-201-1/+2
| | | | llvm-svn: 170771
* Start splitting out the debug string section handling by moving itEric Christopher2012-12-201-11/+24
| | | | | | into the DwarfUnits class. llvm-svn: 170770
* Split out abbreviations for the skeleton info from the rest ofEric Christopher2012-12-191-1/+18
| | | | | | the abbreviations. Part of implementing split dwarf. llvm-svn: 170589
* Rename the 'Attributes' class to 'Attribute'. It's going to represent a ↵Bill Wendling2012-12-191-1/+1
| | | | | | single attribute in the future. llvm-svn: 170502
* Declare class DwarfDebug before use instead of relying on a forward declarationDmitri Gribenko2012-12-161-0/+1
| | | | | | | | from some other unrelated header. Patch by Kai. llvm-svn: 170284
* To simplify some code move the unit emission into the holders.Eric Christopher2012-12-151-6/+8
| | | | | | Make emitDIE public accordingly. No functional change. llvm-svn: 170258
* Update some comments.Eric Christopher2012-12-111-2/+2
| | | | llvm-svn: 169907
* Refactor out the abbreviation handling into a separate class thatEric Christopher2012-12-101-3/+37
| | | | | | | | | | | | controls each of the abbreviation sets (only a single one at the moment) and computes offsets separately as well for each set of DIEs. No real function change, ordering of abbreviations for the skeleton CU changed but only because we're computing in a separate order. Fix the testcase not to care. llvm-svn: 169793
* Rearrange vars and make comments more obvious.Eric Christopher2012-12-101-3/+5
| | | | llvm-svn: 169780
* Use the somewhat semantic term "split dwarf" it more matches what'sEric Christopher2012-12-101-9/+10
| | | | | | going on and makes a lot of the terminology in comments make more sense. llvm-svn: 169758
* Reorder fission variables.Eric Christopher2012-12-101-3/+9
| | | | llvm-svn: 169756
* Sort includes for all of the .h files under the 'lib' tree. These wereChandler Carruth2012-12-041-4/+4
| | | | | | | | | | 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-0/+3
| | | | | | Thanks Eric for the review. llvm-svn: 169142
* Add some first skeleton work for the DWARF5 Fission proposal. EmitEric Christopher2012-11-301-0/+17
| | | | | | | | | part of the compile unit CU and start separating out information into the various sections that will be pulled out later. WIP. llvm-svn: 169061
* More comment.Eric Christopher2012-11-291-0/+2
| | | | llvm-svn: 168952
* Attempt to make the comments for dwarf debug look more likeEric Christopher2012-11-271-158/+111
| | | | | | the coding standard would like. llvm-svn: 168737
* Make comment names match function names.Eric Christopher2012-11-271-3/+3
| | | | llvm-svn: 168644
* Pull some code out into functions to make rearranging them a bit easier.Eric Christopher2012-11-221-0/+15
| | | | llvm-svn: 168481
* Update for some of the coding standard before rearranging functionsEric Christopher2012-11-211-10/+10
| | | | | | around. llvm-svn: 168401
* Update some comments.Eric Christopher2012-11-211-1/+2
| | | | llvm-svn: 168400
* Update and add some comments.Eric Christopher2012-11-211-0/+8
| | | | llvm-svn: 168399
* Whitespace.Eric Christopher2012-11-211-26/+26
| | | | llvm-svn: 168398
* Remove constness from this, it modifies the output stream as doesEric Christopher2012-11-201-1/+1
| | | | | | everything else underneath. llvm-svn: 168395
* Remove unused function argument, add a bit to the comment.Eric Christopher2012-11-201-2/+3
| | | | llvm-svn: 168387
* Remove a function argument and propagate const around accordingly.Eric Christopher2012-11-191-3/+3
| | | | llvm-svn: 168338
* Add an option to enable prototype "fission" capabilities and debug changes.Eric Christopher2012-11-121-0/+2
| | | | llvm-svn: 167765
* Replace some instances of UniqueVector with SetVector, which is slightly ↵Benjamin Kramer2012-10-311-2/+2
| | | | | | | | cheaper. No functionality change. llvm-svn: 167116
* Have the DbgVariable "isArtificial" and "isObjectPointer" notEric Christopher2012-09-211-4/+2
| | | | | | | | | | | | care about it being an argument variable so that we can decide that captured block and lambda vars that don't happen to be arguments could be an argument pointer. Add the object pointer for one case onto the subprogram die. rdar://12001329 llvm-svn: 164419
* Recommit, with fixes:Eric Christopher2012-09-121-0/+10
| | | | | | | | | | | Add some support for dealing with an object pointer on arguments. Part of rdar://9797999 which now supports adding the object pointer attribute to the subprogram as it should. llvm-svn: 163754
* Revert "Add some support for dealing with an object pointer on arguments."Eric Christopher2012-09-121-10/+0
| | | | | | This should be done on the subprogram, not the variable itself. llvm-svn: 163734
OpenPOWER on IntegriCloud