aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis/DIBuilder.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Actually support DW_TAG_rvalue_reference_type that we were tryingEric Christopher2012-05-191-3/+4
| | | | | | | | to generate out of the front end. rdar://11479676 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157094 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify comment.Eric Christopher2012-05-181-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157033 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow forward declarations to take a context. This helps the debuggerEric Christopher2012-04-231-7/+8
| | | | | | | | | find forward declarations in the context that the actual definition will occur. rdar://11291658 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155380 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a line number for the scope of the function (starting at the firstEric Christopher2012-04-031-2/+7
| | | | | | | | | | brace) so that we get more accurate line number information about the declaration of a given function and the line where the function first starts. Part of rdar://11026482 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153916 91177308-0d34-0410-b5e6-96231b3b80d8
* Lowercase the tag name to match the rest of dwarf.Eric Christopher2012-03-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153691 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for objc property decls according to the page at:Eric Christopher2012-03-291-3/+8
| | | | | | | | | | http://llvm.org/docs/SourceLevelDebugging.html#objcproperty including type and DECL. Expand the metadata needed accordingly. rdar://11144023 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153639 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for runtime languages on our forward declarations.Eric Christopher2012-02-201-2/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150973 91177308-0d34-0410-b5e6-96231b3b80d8
* Typo in variable name.Eric Christopher2012-02-171-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150796 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for a temporary forward decl type. We want this so weEric Christopher2012-02-081-0/+22
| | | | | | | | can rauw forward declarations if we decide to emit the full type. Part of rdar://10809898 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150024 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove tabs.Devang Patel2012-02-081-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150022 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugInfo: Provide a new hook to encode relationship between a property and ↵Devang Patel2012-02-061-0/+24
| | | | | | an ivar. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149874 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce DIObjCProperty. This will be used to encode objective-c property.Devang Patel2012-02-041-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149732 91177308-0d34-0410-b5e6-96231b3b80d8
* Cleanup these asserts to follow common LLVM style and codingChandler Carruth2012-01-101-5/+5
| | | | | | | conventions. Also, clarify the grouping of one of the asserts to silence -Wparentheses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147863 91177308-0d34-0410-b5e6-96231b3b80d8
* Update language check. Do not ignore DW_LANG_Python.Devang Patel2012-01-091-1/+2
| | | | | | | Patch by Joe Groff! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147781 91177308-0d34-0410-b5e6-96231b3b80d8
* In DICompositeType, referenced to derived type is either metadata or null.Devang Patel2011-12-161-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146744 91177308-0d34-0410-b5e6-96231b3b80d8
* Virtual table holder field is either metadata or null. Devang Patel2011-12-151-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146665 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo in comment.Nick Lewycky2011-11-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144236 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new wrapper node for a DILexicalBlock that encapsulates it and aEric Christopher2011-10-111-0/+12
| | | | | | | | | | | | | file. Since it should only be used when necessary propagate it through the backend code generation and tweak testcases accordingly. This helps with code like in clang's test/CodeGen/debug-info-line.c where we have multiple #line directives within a single lexical block and want to generate only a single block that contains each file change. Part of rdar://10246360 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141729 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to emit debug info for C++0x nullptr type.Devang Patel2011-09-141-0/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139751 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo.Eric Christopher2011-09-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139530 91177308-0d34-0410-b5e6-96231b3b80d8
* Add asserts to keep front-ends honest while encoding debug info into LLVM IR ↵Devang Patel2011-09-121-0/+9
| | | | | | using DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139515 91177308-0d34-0410-b5e6-96231b3b80d8
* Whitespace and 80-col.Eric Christopher2011-08-261-40/+43
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138654 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not use named md nodes to track variables that are completely optimized. ↵Devang Patel2011-08-191-8/+28
| | | | | | This does not scale while doing LTO with debug info. New approach is to include list of variables in the subprogram info directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138145 91177308-0d34-0410-b5e6-96231b3b80d8
* There is no need to add file as context for subroutine type. The subroutine ↵Devang Patel2011-08-181-2/+2
| | | | | | type does not need any context. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138010 91177308-0d34-0410-b5e6-96231b3b80d8
* Until now all debug info MDNodes referred to a root MDNode, a compile unit. ↵Devang Patel2011-08-161-46/+76
| | | | | | | | | | This simplified handling of these needs in dwarf writer. However, one side effect of this is that during link time optimization all these MDNodes are _not_ uniqued. In other words there will be N number of MDNodes describing "int", "char" and all other types, which would suddenly grow when each object file starts using libraries like STL. MDNodes graph structure such that compiler unit keeps track of important MDNodes and update dwarf writer to process mdnodes top-down instead of bottom up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137778 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a finalize() hook, that'll let DIBuilder construct compile unit lazily.Devang Patel2011-08-151-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137673 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply r135457. This needs llvm-gcc change, that I forgot to check-in ↵Devang Patel2011-07-191-1/+3
| | | | | | yesterday. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135504 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert "Make a provision to encode inline location in a variable. This will ↵Bob Wilson2011-07-191-3/+1
| | | | | | | | enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block." This reverts commit 9fec5e346efdf744b151ae6604f912908315fa7a. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135486 91177308-0d34-0410-b5e6-96231b3b80d8
* Make a provision to encode inline location in a variable. This will enable ↵Devang Patel2011-07-191-1/+3
| | | | | | dwarf writer to easily distinguish between two instances of a inlined variable in one basic block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135457 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert CallInst and InvokeInst APIs to use ArrayRef.Jay Foad2011-07-151-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135265 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix struct member's scope. Patch by Xi Wang.Devang Patel2011-06-241-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133828 91177308-0d34-0410-b5e6-96231b3b80d8
* A typedef's context is not the same as type's context. It is the context of ↵Devang Patel2011-06-031-2/+2
| | | | | | typedef decl itself. Use extra parameter to communicate this to DIBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132556 91177308-0d34-0410-b5e6-96231b3b80d8
* Use llvm.dbg.cu named metadata to collect compile units.Devang Patel2011-05-031-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130756 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix an off by one error while accessing complex address element of a DIVariable.Devang Patel2011-04-261-0/+1
| | | | | | | This worked untill now because stars are aligned (i.e. num of complex address elments are always 0 or 2+ and when it is 2+ at least two elements are access together) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130225 91177308-0d34-0410-b5e6-96231b3b80d8
* PR9214: Convert the DIBuilder API to use ArrayRef.Jay Foad2011-04-241-8/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130086 91177308-0d34-0410-b5e6-96231b3b80d8
* Let front-end tie subprogram declaration with subprogram definition directly.Devang Patel2011-04-221-2/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130028 91177308-0d34-0410-b5e6-96231b3b80d8
* PR9214: Convert Metadata API to use ArrayRef.Jay Foad2011-04-211-9/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129932 91177308-0d34-0410-b5e6-96231b3b80d8
* Use ArrayRef variants.Devang Patel2011-04-181-35/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129735 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce support to encode Objective-C property information in debugging ↵Devang Patel2011-04-161-0/+29
| | | | | | information generated for an interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129624 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to encode function's template parameters.Devang Patel2011-04-051-4/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128947 91177308-0d34-0410-b5e6-96231b3b80d8
* Today, the language front ends produces llvm.dbg.* intrinsics, used to ↵Devang Patel2011-03-011-5/+5
| | | | | | | | | encode arguments' debug info, in order any way, most of the times. However, if a front end mix-n-matches llvm.dbg.declare and llvm.dbg.value intrinsics to encode debug info for arguments then code generator needs a way to find argument order. Use 8 bits from line number field to keep track of argument ordering while encoding debug info for an argument. That leaves 24 bit for line no, DebugLoc also allocates 24 bit for line numbers. If a function has more than 255 arguments then rest of the arguments will be ordered by llvm.dbg.* intrinsics' ordering in IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126793 91177308-0d34-0410-b5e6-96231b3b80d8
* Follow LLVM coding style. Devang Patel2011-02-221-77/+77
| | | | | | | clang uses DBuilder, so it requries corresponding change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126231 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to describe template value parameter in debug info.Devang Patel2011-02-021-0/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124755 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to describe template parameter type in debug info.Devang Patel2011-02-021-2/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124752 91177308-0d34-0410-b5e6-96231b3b80d8
* Use type's file info while describing inheritance relationship.Devang Patel2010-12-081-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121289 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to create debug info for functions and methods.Devang Patel2010-12-081-0/+77
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121281 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to create class type.Devang Patel2010-12-081-0/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121279 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to create vector, array, enums etc...Devang Patel2010-12-081-6/+167
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121224 91177308-0d34-0410-b5e6-96231b3b80d8
* Global variable does not need linkage name.Devang Patel2010-12-081-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121212 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to create local variable's debug info.Devang Patel2010-12-071-0/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121211 91177308-0d34-0410-b5e6-96231b3b80d8