summaryrefslogtreecommitdiffstats
path: root/llvm/lib/IR/DIBuilder.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Solidify the assumption that a DW_TAG_subprogram's type is a ↵David Blaikie2013-05-221-2/+6
| | | | | | | | | | | | | DW_TAG_subroutine_type There were bits & pieces of code lying around that may've given the impression that debug info metadata supported the possibility that a subprogram's type could be specified by a non-subroutine type describing the return type of a void function. This support was incomplete & unnecessary. Asserts & API have been changed to make the desired usage more clear. llvm-svn: 182532
* PR14606: Debug Info for namespace aliases/DW_TAG_imported_moduleDavid Blaikie2013-05-201-10/+39
| | | | | | | | | This resolves the last of the PR14606 failures in the GDB 7.5 test suite by implementing an optional name field for DW_TAG_imported_modules/DIImportedEntities and using that to implement C++ namespace aliases (eg: "namespace X = Y;"). llvm-svn: 182328
* PR14492: Debug Info: Support for values of non-integer non-type template ↵David Blaikie2013-05-101-2/+2
| | | | | | | | | | parameters. This is only tested for global variables at the moment (& includes tests for the unnamed parameter case, since apparently this entire function was completely untested previously) llvm-svn: 181632
* Rename DIImportedModule to DIImportedEntity and allow imported declarationsDavid Blaikie2013-05-071-2/+17
| | | | | | | | | 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
* Revert "Revert "PR14606: debug info imported_module support""David Blaikie2013-04-221-0/+21
| | | | | | | | | | 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
* 80-col fixup.Eric Christopher2013-04-191-1/+2
| | | | llvm-svn: 179881
* Rename ClassType to the more accurate UnderlyingType and document its purpose.Adrian Prantl2013-04-191-3/+3
| | | | | | rdar://problem/13463793 llvm-svn: 179877
* Revert "PR14606: debug info imported_module support"Eric Christopher2013-04-191-21/+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/+21
| | | | | | | | | | 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
* Support and test template arguments for unions.Eric Christopher2013-04-021-1/+2
| | | | llvm-svn: 178586
* Reformat arguments.Eric Christopher2013-04-021-4/+6
| | | | llvm-svn: 178585
* Revert "Adding DIImportedModules to DIScopes."David Blaikie2013-03-281-109/+29
| | | | | | | | | This reverts commit 342d92c7a0adeabc9ab00f3f0d88d739fe7da4c7. Turns out we're going with a different schema design to represent DW_TAG_imported_modules so we won't need this extra field. llvm-svn: 178215
* Adding DIImportedModules to DIScopes.David Blaikie2013-03-271-29/+109
| | | | | | | | | | | | This is just the basic groundwork for supporting DW_TAG_imported_module but I wanted to commit this before pushing support further into Clang or LLVM so that this rather churny change is isolated from the rest of the work. The major churn here is obviously adding another field (within the common DIScope prefix) to all DIScopes (files, classes, namespaces, lexical scopes, etc). This should be the last big churny change needed for DW_TAG_imported_module/using directive support/PR14606. llvm-svn: 178099
* Make DIBuilder::createClassType more type safe by returning DICompositeType ↵David Blaikie2013-03-261-8/+10
| | | | | | rather than DIType llvm-svn: 178091
* Swap the DIFile in DILexicalBlockFile out for the raw name/directory pairDavid Blaikie2013-03-221-1/+1
| | | | | | This is the last change in transitioning all DIScopes to have a common prefix. llvm-svn: 177756
* reorder the fields in DILexicalBlockFile to match the common prefix for DIScopesDavid Blaikie2013-03-221-2/+2
| | | | llvm-svn: 177754
* Refactor out the DIFile parameter to DILexicalBlock to refer to the raw ↵David Blaikie2013-03-221-1/+1
| | | | | | file/directory pair llvm-svn: 177742
* Reorder the DIFile field in DILexicalBlock to become a prefix common with ↵David Blaikie2013-03-221-1/+1
| | | | | | other DIScopes llvm-svn: 177703
* Refactor the filename/directory information in DISubprogram to refer ↵David Blaikie2013-03-211-2/+2
| | | | | | directly to the pair rather than the DIFile. llvm-svn: 177677
* Move the DIFile in DISubprogram to the beginning to be a common prefix along ↵David Blaikie2013-03-211-2/+2
| | | | | | with other DIScopes llvm-svn: 177674
* Remove unused field in DISubprogramDavid Blaikie2013-03-211-4/+6
| | | | llvm-svn: 177661
* Debug info: refactor the first field of DICompileUnit to be a raw ↵David Blaikie2013-03-201-7/+12
| | | | | | | | file/directory pair This removes the DICompileUnit special case from DIScope. llvm-svn: 177610
* Debug Info: Swap the 2nd and 3rd parameters to DICompileUnit to match the ↵David Blaikie2013-03-201-1/+1
| | | | | | common DIScope prefix llvm-svn: 177595
* Remove unused field in DICompileUnitDavid Blaikie2013-03-201-1/+0
| | | | llvm-svn: 177590
* Refactor file/directory path in namespace debug info to refer directly to ↵David Blaikie2013-03-201-1/+1
| | | | | | | | the pair rather than the DIFile (paired to a Clang test - excuse the buildbot skew/fallout) llvm-svn: 177566
* DIBuilder: allow linkage name to be specified for global variablesDavid Blaikie2013-03-201-4/+13
| | | | | | Patch by Kai Nacke (kai@redstar.de) llvm-svn: 177547
* Reorder the DIFile parameter in DINameSpaceDavid Blaikie2013-03-201-1/+1
| | | | | | | | Moving the DIFile parameter to immediately proceed the tag so that it will be a common prefix with other DIScopes (once the DIFile is replaced with the raw file/directory pair). llvm-svn: 177492
* Refactor the DIFile (2nd) parameter to DITypes to be an MDNode reference to ↵David Blaikie2013-03-201-10/+10
| | | | | | | | | a raw directory/file pair This makes DIType's first non-tag parameter the same as DIFile's, allowing them to both share the common implementation of getFilename/getDirectory in DIScope. llvm-svn: 177467
* Move the DIFile operand to DITypes from the 4th operand to the 2nd.David Blaikie2013-03-191-44/+21
| | | | | | | | This is another step along the way to making all DIScopes have a common prefix which can be added to in a general manner to support using directives (DW_TAG_imported_module). llvm-svn: 177462
* Fix the build broken in r177239David Blaikie2013-03-171-1/+1
| | | | | | Seems some accidental C++11 crept in there. Reported by the C++98 buildbots. llvm-svn: 177241
* Split out filename & directory from DIFile to start generalizing over DIScopesDavid Blaikie2013-03-171-2/+5
| | | | | | | | | | This is the first step to making all DIScopes have a common metadata prefix (so that things (using directives, for example) that can appear in any scope can be added to that common prefix). DIFile is itself a DIScope so the common prefix of all DIScopes cannot be a DIFile - instead it's the raw filename/directory name pair. llvm-svn: 177239
* Remove the unused 4th operand for DIFile debug info metadataDavid Blaikie2013-03-131-1/+0
| | | | llvm-svn: 176983
* Refactor filename/directory in DICompileUnit into a DIFileDavid Blaikie2013-03-131-3/+1
| | | | | | | This is the next step towards making the metadata for DIScopes have a common prefix rather than having to delegate based on their tag type. llvm-svn: 176913
* Remove unused "isMain" field from DICompileUnitDavid Blaikie2013-03-121-2/+0
| | | | llvm-svn: 176910
* Add asserts to DIBuilder & fix DINameSpace::Verify to allow unnamed namespaces.David Blaikie2013-03-111-6/+31
| | | | llvm-svn: 176837
* DIBuilder: support structs with vtable pointers in the same way as classesDavid Blaikie2013-02-251-8/+12
| | | | llvm-svn: 176004
* Add a field to the compile unit of where we plan on splitting outEric Christopher2013-02-221-2/+3
| | | | | | | the debug info for -gsplit-dwarf so we can encode that location in the skeleton cu. llvm-svn: 175933
* Add a TODO and explain when we can get rid of the isMain field.Eric Christopher2013-02-221-1/+1
| | | | llvm-svn: 175932
* DIBuilder: Correct the null/0 type of trailing fields in struct debug info.David Blaikie2013-02-181-2/+2
| | | | | | Paired with an Clang commit so this may cause temporary build failures. llvm-svn: 175426
* DIBuilder: Add function and method definitions to the list of all subprogramsDavid Blaikie2013-02-181-1/+4
| | | | | | | | Previously we seemed to be assuming that all functions were definitions and all methods were declarations. This may be consistent with how Clang uses DIBuilder but doesn't have to be true of all clients (such as DragonEgg). llvm-svn: 175423
* Narrow the return types of a few DIBuilder utility functions.David Blaikie2013-02-181-39/+37
| | | | llvm-svn: 175421
* DIBuilder: make the return type of createBasicType more specificDavid Blaikie2013-02-121-4/+4
| | | | llvm-svn: 174924
* [DebugInfo] remove more node indirection (this time from the subprogram's ↵David Blaikie2013-02-041-10/+2
| | | | | | variable lists) llvm-svn: 174305
* Remove the (apparently) unnecessary debug info metadata indirection.David Blaikie2013-02-021-12/+4
| | | | | | | | | | The main lists of debug info metadata attached to the compile_unit had an extra layer of metadata nodes they went through for no apparent reason. This patch removes that (& still passes just as much of the GDB 7.5 test suite). If anyone can show evidence as to why these extra metadata nodes are there I'm open to reverting this patch & documenting why they're there. llvm-svn: 174266
* Define metadata interfaces for describing a static data memberEric Christopher2013-01-161-3/+29
| | | | | | | | | | | of a class. Emit static data member declarations and definitions through correctly. Part of PR14471. Patch by Paul Robinson! llvm-svn: 172590
* Remove the llvm-local DW_TAG_vector_type tag and add a test toEric Christopher2013-01-081-3/+4
| | | | | | make sure that vector types do work. llvm-svn: 171833
* Fix comment.Eric Christopher2013-01-081-1/+2
| | | | llvm-svn: 171832
* PR14759: Debug info support for C++ member pointers.David Blaikie2013-01-071-0/+18
| | | | | | | | This works fine with GDB for member variable pointers, but GDB's support for member function pointers seems to be quite unrelated to DW_TAG_ptr_to_member_type. (see GDB bug 14998 for details) llvm-svn: 171698
* Move all of the header files which are involved in modelling the LLVM IRChandler Carruth2013-01-021-3/+3
| | | | | | | | | | | | | | | | | | | | | into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. llvm-svn: 171366
* Rename VMCore directory to IR.Chandler Carruth2013-01-021-0/+1045
Aside from moving the actual files, this patch only updates the build system and the source file comments under lib/... that are relevant. I'll be updating other docs and other files in smaller subsequnet commits. While I've tried to test this, but it is entirely possible that there will still be some build system fallout. Also, note that I've not changed the library name itself: libLLVMCore.a is still the library name. I'd be interested in others' opinions about whether we should rename this as well (I think we should, just not sure what it might break) llvm-svn: 171359
OpenPOWER on IntegriCloud