Devang Patel
5b37f2548b
Remove tabs.
...
llvm-svn: 150022
2012-02-08 00:17:07 +00:00
Devang Patel
864da4b549
DebugInfo: Provide a new hook to encode relationship between a property and an ivar.
...
llvm-svn: 149874
2012-02-06 17:49:43 +00:00
Devang Patel
7280b69925
Introduce DIObjCProperty. This will be used to encode objective-c property.
...
llvm-svn: 149732
2012-02-04 00:59:25 +00:00
Eric Christopher
57c57a3260
Add a new wrapper node for a DILexicalBlock that encapsulates it and a
...
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
llvm-svn: 141729
2011-10-11 22:59:11 +00:00
Devang Patel
e5dc3a1f1e
Add support to emit debug info for C++0x nullptr type.
...
llvm-svn: 139751
2011-09-14 23:13:28 +00:00
Devang Patel
630d8ce36b
Until now all debug info MDNodes referred to a root MDNode, a compile unit. 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.
llvm-svn: 137778
2011-08-16 22:09:43 +00:00
Devang Patel
f1b61abc8c
Add a finalize() hook, that'll let DIBuilder construct compile unit lazily.
...
llvm-svn: 137673
2011-08-15 23:00:00 +00:00
Devang Patel
10271bcdad
Fix struct member's scope. Patch by Xi Wang.
...
llvm-svn: 133828
2011-06-24 22:00:39 +00:00
Devang Patel
e3190a1377
A typedef's context is not the same as type's context. It is the context of typedef decl itself. Use extra parameter to communicate this to DIBuilder.
...
llvm-svn: 132556
2011-06-03 17:04:51 +00:00
Jay Foad
bda0742eef
PR9214: Convert the DIBuilder API to use ArrayRef.
...
llvm-svn: 130086
2011-04-24 10:11:03 +00:00
Devang Patel
929bbb6bf9
Let front-end tie subprogram declaration with subprogram definition directly.
...
llvm-svn: 130028
2011-04-22 23:10:17 +00:00
Devang Patel
eddab1d186
Introduce support to encode Objective-C property information in debugging information generated for an interface.
...
llvm-svn: 129624
2011-04-16 00:11:51 +00:00
Devang Patel
03d0891c10
Add support to encode function's template parameters.
...
llvm-svn: 128947
2011-04-05 22:52:06 +00:00
Jay Foad
008631e572
Fix typo in comment.
...
llvm-svn: 128216
2011-03-24 16:18:19 +00:00
Devang Patel
5c7b3c4228
Today, the language front ends produces llvm.dbg.* intrinsics, used to 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.
llvm-svn: 126793
2011-03-01 22:58:13 +00:00
Devang Patel
74d085657f
Follow LLVM coding style.
...
clang uses DBuilder, so it requries corresponding change.
llvm-svn: 126231
2011-02-22 18:56:12 +00:00
Devang Patel
777de97e8b
Provide enums to build complex address calucation expressions.
...
(This is infact direct copy from DIFactory, which is disappearing soon.)
llvm-svn: 125989
2011-02-18 23:28:53 +00:00
Devang Patel
71b1fadf20
Add support to describe template value parameter in debug info.
...
llvm-svn: 124755
2011-02-02 22:35:53 +00:00
Devang Patel
89455dc7cd
Add support to describe template parameter type in debug info.
...
llvm-svn: 124752
2011-02-02 21:38:25 +00:00
Devang Patel
90fd70aa09
Add support to create debug info for functions and methods.
...
llvm-svn: 121281
2010-12-08 20:42:44 +00:00
Devang Patel
53f05af4c1
Add support to create class type.
...
llvm-svn: 121279
2010-12-08 20:18:20 +00:00
Devang Patel
b7a7988b6b
Add support to create vector, array, enums etc...
...
llvm-svn: 121224
2010-12-08 01:50:15 +00:00
Devang Patel
0c0accf6bc
Global variable does not need linkage name.
...
llvm-svn: 121212
2010-12-08 00:06:22 +00:00
Devang Patel
bdbff5f106
Add support to create local variable's debug info.
...
llvm-svn: 121211
2010-12-07 23:58:00 +00:00
Devang Patel
cef2982b39
Add support to create variables, structs etc.. using DIBuilder.
...
This is still work in progress.
llvm-svn: 121205
2010-12-07 23:25:47 +00:00
Michael J. Spencer
d5ec932c3a
Merge System into Support.
...
llvm-svn: 120298
2010-11-29 18:16:10 +00:00
Devang Patel
af569979a6
Document parameters. Fix typos.
...
llvm-svn: 118424
2010-11-08 18:28:34 +00:00
Devang Patel
6c1b802673
Introduce DIBuilder. It is intended to be a front-end friendly interface to emit debuggging information entries in LLVM IR.
...
To create debugging information for a pointer, using DIBUilder front-end just needs
DBuilder.CreatePointerType(Ty, Size);
instead of
DebugFactory.CreateDerivedType(llvm::dwarf::DW_TAG_pointer_type,
TheCU, "", getOrCreateMainFile(),
0, Size, 0, 0, 0, OCTy);
llvm-svn: 118248
2010-11-04 15:01:38 +00:00