1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
Commit Graph

87 Commits

Author SHA1 Message Date
Devang Patel
5c983cb2ab Implement support to debug inlined functions.
llvm-svn: 86748
2009-11-10 23:06:00 +00:00
Devang Patel
e70bec27b0 Process InlinedAt location info.
Update InsertDeclare to return newly inserted llvm.dbg.declare intrinsic.

llvm-svn: 86727
2009-11-10 22:05:35 +00:00
Devang Patel
9eb437047b Add support to encode type info using llvm::Constant.
Patch by Talin!

llvm-svn: 85126
2009-10-26 16:54:35 +00:00
Devang Patel
21a7babc56 Enable "debug info attached to an instruction" mode.
llvm-svn: 83925
2009-10-12 23:22:09 +00:00
Devang Patel
a7456a1335 Extract subprogram and compile unit information from the debug info attached to an instruction.
llvm-svn: 83491
2009-10-07 22:04:08 +00:00
Mike Stump
532ed49e39 Expand api out in the usual inserter way, though, I do have a
question, can we get rid of the BasicBlock versions of all inserters
and use Head == 0 to indicate the old case when GetInsertBlock == 0?

llvm-svn: 83216
2009-10-01 22:08:58 +00:00
Devang Patel
cb516787d0 Add isFOO() helpers. Fix getDirectory() and getFilename() for DIScope.
llvm-svn: 83180
2009-09-30 22:34:41 +00:00
Mike Stump
a3bce35a07 Add a way for a frontend to generate more complex dwarf location
information.  This allows arbitrary code involving DW_OP_plus_uconst
and DW_OP_deref.  The scheme allows for easy extention to include,
any, or all of the DW_OP_ opcodes.  I thought about just exposing all
of them, but, wasn't sure if people wanted the dwarf opcodes exposed
in the api.  Is that a layering violation?

With this scheme, the entire existing block scheme used by llvm-gcc
can be switched over to the new scheme.  I think that would be
cleaner, as then the compiler specific bits are not present in llvm
proper.  Before the old code can be yanked however, similar code in
clang would have to be removed.

Next up, more testing.

llvm-svn: 83120
2009-09-30 00:08:22 +00:00
Devang Patel
e5be8e79df Remove std::string uses from DebugInfo interface.
llvm-svn: 83083
2009-09-29 18:40:58 +00:00
Daniel Dunbar
14c9a4d355 Switch DIDescriptor to use a TrackingVH. - This makes it much safer to work with debug info, since it was extraordinarily easy to have dangling pointers thanks to MDNode uniquing.
llvm-svn: 82507
2009-09-22 02:03:18 +00:00
Daniel Dunbar
8ca643da7e Prefer super class constructor to explicit initialization.
llvm-svn: 82335
2009-09-19 20:40:28 +00:00
Daniel Dunbar
8f197cee58 Tabs -> spaces (really?)
llvm-svn: 82334
2009-09-19 20:40:21 +00:00
Daniel Dunbar
39c0d90339 Strip trailing whitespace.
llvm-svn: 82332
2009-09-19 20:40:05 +00:00
Devang Patel
371df479d4 Provide a way to extract location info from DILocation.
llvm-svn: 82064
2009-09-16 18:20:05 +00:00
Devang Patel
5674e1177b Add virtual destructor.
llvm-svn: 80660
2009-09-01 05:04:28 +00:00
Devang Patel
9d22015258 Introduce DILocation.
llvm-svn: 80648
2009-09-01 01:14:15 +00:00
Devang Patel
3d94f40541 Add getDirectory() and getFilename() interface to DIScope.
llvm-svn: 80647
2009-09-01 00:53:21 +00:00
Devang Patel
fb8892d0e1 Subprogram is a scope. Derive DISubprogram from DIScope.
llvm-svn: 80637
2009-08-31 22:47:13 +00:00
Devang Patel
4a89fae1fe Rename DIBlock as DILexicalBlock.
llvm-svn: 80633
2009-08-31 22:00:15 +00:00
Devang Patel
a123ee96f4 Derive DICompileUnit from DIScope.
llvm-svn: 80627
2009-08-31 21:34:44 +00:00
Caroline Tice
e49e2d352c Add flag to mark structs for Apple Block "byref" variables; also add code to
modify the type and location debug information for these variables to match the
programmer's expectations.

llvm-svn: 80625
2009-08-31 21:19:37 +00:00
Devang Patel
b31cfda0f8 Introduce DIScope.
llvm-svn: 80620
2009-08-31 20:44:45 +00:00
Devang Patel
29f14e754f Simplify isDerivedType() and other predicate interface.
llvm-svn: 80602
2009-08-31 18:49:10 +00:00
Devang Patel
fbaeda732e Reapply 79977.
Use MDNodes to encode debug info in llvm IR.

llvm-svn: 80406
2009-08-28 23:24:31 +00:00
Devang Patel
c1fe40a1b3 Closure is a very generic name. Use AppleBlock instead.
llvm-svn: 80307
2009-08-27 23:51:51 +00:00
Devang Patel
10c075a316 Revert 79977. It causes llvm-gcc bootstrap failures on some platforms.
llvm-svn: 80073
2009-08-26 05:01:18 +00:00
Chris Lattner
52948143d2 fix some funky indentation
llvm-svn: 80068
2009-08-26 04:21:30 +00:00
Devang Patel
7bee319f4a Add isClosure() predicate. This is used to add DW_AT_APPLE_block attribute.
Patch by Caroline Tice.

llvm-svn: 80061
2009-08-26 00:39:50 +00:00
Devang Patel
7d42bfab6c Update DebugInfo interface to use metadata, instead of special named llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)

llvm-svn: 79977
2009-08-25 05:24:07 +00:00
Benjamin Kramer
9a590500ea Make LLVMContext and LLVMContextImpl classes instead of structs.
llvm-svn: 78690
2009-08-11 17:45:13 +00:00
Devang Patel
86894d4e56 Keep track of DIType.
llvm-svn: 78602
2009-08-10 22:09:58 +00:00
Devang Patel
86c0c7abf1 Remove dead code.
llvm-svn: 78335
2009-08-06 20:57:44 +00:00
Devang Patel
d0c245bd84 Fix comment.
llvm-svn: 78313
2009-08-06 15:39:34 +00:00
Owen Anderson
cf2c39dc30 Factor some of the constants+context related code out into a separate header, to make LLVMContextImpl.h
not hideous.  Also, fix some MSVC compile errors.

llvm-svn: 78115
2009-08-04 22:41:48 +00:00
Devang Patel
34cec19943 Process DbgDeclareInst.
llvm-svn: 77694
2009-07-31 18:18:52 +00:00
Devang Patel
ab56b759af s/DebugInfoEnumerator/DebugInfoFinder/g
llvm-svn: 77615
2009-07-30 18:25:15 +00:00
Devang Patel
751490b934 walk DbgRegionStartInst and DbgRegionEndInst
llvm-svn: 77604
2009-07-30 17:30:23 +00:00
Devang Patel
5aba07663b Add DebugInfoEnumerator to collect debug info.
llvm-svn: 77360
2009-07-28 19:55:13 +00:00
Devang Patel
1706411e39 80 columns!
llvm-svn: 77243
2009-07-27 20:30:05 +00:00
Devang Patel
a047636be2 Add replaceAllUsesWith() to FE replace debug info constructs while building complex types.
llvm-svn: 76765
2009-07-22 18:23:44 +00:00
Daniel Dunbar
e79e475000 Match declaration to definition.
llvm-svn: 75438
2009-07-12 22:46:08 +00:00
Owen Anderson
9647245825 Re-LLVMContext-ize DebugInfo, now with less breakage.
llvm-svn: 74920
2009-07-07 17:12:53 +00:00
Devang Patel
5f93a737f6 Simplify debug info intrisinc lowering.
llvm-svn: 74733
2009-07-02 22:43:26 +00:00
Devang Patel
5a12c3ba50 Fix typo.
Thanks Duncan!

llvm-svn: 74706
2009-07-02 17:17:03 +00:00
Devang Patel
8726708137 Add debug info utility routines.
llvm-svn: 74680
2009-07-02 01:15:24 +00:00
Devang Patel
5c74055e00 Remove unnecessary includes.
llvm-svn: 74254
2009-06-26 02:25:46 +00:00
Devang Patel
84a8914a4a Remove debug info anchors - llvm.dbg.compile_units, llvm.dbg.subprograms
and llvm.dbg.global_variables.

llvm-svn: 74251
2009-06-26 01:49:18 +00:00
Devang Patel
5fe5a578c7 It is not a good idea to have data member's name match argument's name. In fact, it is a simple receipe to waste an hour or so.
llvm-svn: 74018
2009-06-23 22:25:41 +00:00
Devang Patel
46160f96fb Add DISubprogram::getReturnTypeName()
llvm-svn: 74015
2009-06-23 22:07:48 +00:00
Bill Wendling
78f6980946 Non-functionality changes:
- Reformatting.
- Use while() instead of do-while().
- Move simple constructors into .h file.

llvm-svn: 71782
2009-05-14 18:26:15 +00:00