summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DebugInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* microoptimize this hot method, also making it more Chris Lattner2010-03-311-3/+2
| | | | | | consistent with other similar ones. llvm-svn: 99997
* Start using DIFile. See updated SourceLevelDebugging.html for more information.Devang Patel2010-03-091-24/+25
| | | | | | | | | This patch updates LLVMDebugVersion to 8. Debug info descriptors encoded using LLVMDebugVersion 7 is supported. Corresponding llvmgcc and clang FE commits are required. llvm-svn: 98020
* Introduce DIFile. This will be used to represent header files and source ↵Devang Patel2010-03-081-0/+23
| | | | | | file(s) in debug info. llvm-svn: 97994
* Derive DIType from DIScope. This simplifies getContext() where for members ↵Devang Patel2010-03-081-1/+9
| | | | | | the context is a type. This also eliminates need of CompileUnitMaps maintained by dwarf writer. llvm-svn: 97990
* Remove DbgNode checks in constructor. Debug descriptors are intended to be ↵Devang Patel2010-03-081-9/+0
| | | | | | light weight wrappers. llvm-svn: 97988
* Avoid using DIDescriptor.isNull(). Devang Patel2010-03-081-81/+64
| | | | | | This is a first step towards eliminating checks in Descriptor constructors. llvm-svn: 97975
* Revert r97947.Devang Patel2010-03-081-64/+81
| | | | llvm-svn: 97963
* Avoid using DIDescriptor.isNull().Devang Patel2010-03-081-81/+64
| | | | | | This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers. llvm-svn: 97947
* Use line and column number to distinguish two lexical blocks at the same level.Devang Patel2010-02-161-3/+6
| | | | llvm-svn: 96395
* Set DW_AT_artificial only if argument is marked as artificial.Devang Patel2010-02-061-0/+23
| | | | llvm-svn: 95461
* Provide interface to identifiy artificial methods.Devang Patel2010-02-031-5/+8
| | | | llvm-svn: 95240
* Before inserting llvm.dbg.declare intrinsic at the end of a basic block, ↵Devang Patel2010-01-291-2/+7
| | | | | | | | check whether the basic block has a terminator or not. This API is used by clang and the test case is test/CodeGen/debug-info-crash.c in clang module. llvm-svn: 94820
* Add extra element to composite type. This new element will be used to record ↵Devang Patel2010-01-261-3/+5
| | | | | | c++ class that holds current class's vtable. llvm-svn: 94586
* Assert when debug intrinsic insert functions are passed empty argumentsVictor Hernandez2010-01-261-0/+6
| | | | llvm-svn: 94491
* Avoid using "Type" as the variable name.Devang Patel2010-01-231-11/+12
| | | | llvm-svn: 94262
* Make sure ValueFn starts off emptyVictor Hernandez2010-01-231-1/+1
| | | | llvm-svn: 94256
* Avoid unnecessary Elts arrayVictor Hernandez2010-01-201-4/+2
| | | | llvm-svn: 93978
* Make findDbgDeclare/findDbgGlobalDeclare local static functions; avoid Elts ↵Victor Hernandez2010-01-181-6/+7
| | | | | | array llvm-svn: 93764
* Replace DebugLocTuple with DILocation.Devang Patel2010-01-161-12/+4
| | | | llvm-svn: 93630
* Improve llvm.dbg.declare intrinsic by referring directly to the storage in ↵Victor Hernandez2010-01-151-29/+22
| | | | | | | | | its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument. llvm-svn: 93531
* Revert r93504 because older uses of llvm.dbg.declare intrinsics need to be ↵Victor Hernandez2010-01-151-22/+29
| | | | | | auto-upgraded llvm-svn: 93515
* Improve llvm.dbg.declare intrinsic by referring directly to the storage in ↵Victor Hernandez2010-01-151-29/+22
| | | | | | | | its first argument, via function-local metadata (instead of via a bitcast). This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare. llvm-svn: 93504
* Respond to Chris' review:Victor Hernandez2010-01-111-8/+8
| | | | | | | Make InsertDbgValueIntrinsic() and get Offset take and recieve a uint64_t. Get constness correct for getVariable() and getValue(). llvm-svn: 93149
* Convert a ton of simple integer type equality tests to the new predicate.Benjamin Kramer2010-01-051-4/+2
| | | | llvm-svn: 92760
* Remove dead debug info intrinsics.Devang Patel2010-01-051-95/+0
| | | | | | | | | | Intrinsic::dbg_stoppoint Intrinsic::dbg_region_start Intrinsic::dbg_region_end Intrinsic::dbg_func_start AutoUpgrade simply ignores these intrinsics now. llvm-svn: 92557
* fix Analysis/DebugInfo.h to not include Metadata.h. Do thisChris Lattner2009-12-311-0/+5
| | | | | | | by moving one method out of line and eliminating redundant checks from other methods. llvm-svn: 92337
* rename "elements" of metadata to "operands". "Elements" areChris Lattner2009-12-311-25/+25
| | | | | | | things that occur in types. "operands" are things that occur in values. llvm-svn: 92322
* Optimize MDNode to coallocate the operand list immediatelyChris Lattner2009-12-311-1/+1
| | | | | | | | | | | | | after the MDNode in memory. This eliminates the operands pointer and saves a new[] per node. Note that the code in DIDerivedType::replaceAllUsesWith is wrong and quite scary. A MDNode should not be RAUW'd with something else: this changes all uses of the mdnode, which may not be debug info related! Debug info should use something non-mdnode for declarations. llvm-svn: 92321
* remove a bunch of unneeded functions.Chris Lattner2009-12-291-30/+0
| | | | llvm-svn: 92263
* major cleanups, much of this file was incorrectly indented.Chris Lattner2009-12-291-303/+273
| | | | llvm-svn: 92262
* one pass of cleanup over DebugInfo.h. Much more is still needed.Chris Lattner2009-12-291-12/+8
| | | | llvm-svn: 92261
* Final step in the metadata API restructuring: move the Chris Lattner2009-12-291-2/+1
| | | | | | | | getMDKindID/getMDKindNames methods to LLVMContext (and add convenience methods to Module), eliminating MetadataContext. Move the state that it maintains out to LLVMContext. llvm-svn: 92259
* This is a major cleanup of the instruction metadata interfaces thatChris Lattner2009-12-281-4/+2
| | | | | | | | | | | | | | | | | | | | | | I asked Devang to do back on Sep 27. Instead of going through the MetadataContext class with methods like getMD() and getMDs(), just ask the instruction directly for its metadata with getMetadata() and getAllMetadata(). This includes a variety of other fixes and improvements: previously all Value*'s were bloated because the HasMetadata bit was thrown into value, adding a 9th bit to a byte. Now this is properly sunk down to the Instruction class (the only place where it makes sense) and it will be folded away somewhere soon. This also fixes some confusion in getMDs and its clients about whether the returned list is indexed by the MDID or densely packed. This is now returned sorted and densely packed and the comments make this clear. This introduces a number of fixme's which I'll follow up on. llvm-svn: 92235
* rename getMDKind -> getMDKindID, make it autoinsert if an MD KindChris Lattner2009-12-281-4/+3
| | | | | | | doesn't exist already, eliminate registerMDKind. Tidy up a bunch of random stuff. llvm-svn: 92225
* Convert debug messages to use dbgs(). Generally this meansDavid Greene2009-12-231-32/+33
| | | | | | s/errs/dbgs/g except for certain special cases. llvm-svn: 92032
* Add support to emit debug info for C++ namespaces.Devang Patel2009-12-151-0/+28
| | | | llvm-svn: 91440
* Revert 90858 90875 and 90805 for now.Devang Patel2009-12-081-28/+0
| | | | llvm-svn: 90898
* Rename DIFactory::InsertValue() as DIFactory::InsertDbgValueIntrinsic()Victor Hernandez2009-12-071-6/+8
| | | | llvm-svn: 90807
* Add support to emit debug info for c++ style namespaces.Devang Patel2009-12-071-0/+28
| | | | llvm-svn: 90805
* Introduce the "@llvm.dbg.value" debug intrinsic.Victor Hernandez2009-12-071-0/+29
| | | | | | | | | | | The semantics of llvm.dbg.value are that starting from where it is executed, an offset into the specified user source variable is specified to get a new value. An example: call void @llvm.dbg.value(metadata !{ i32 7 }, i64 0, metadata !2) Here the user source variable associated with metadata #2 gets the value "i32 7" at offset 0. llvm-svn: 90788
* Add support to emit debug info for virtual functions and virtual base classes.Devang Patel2009-12-031-5/+13
| | | | llvm-svn: 90474
* Add utility routine to create subprogram definition entry from subprogram ↵Devang Patel2009-12-011-0/+23
| | | | | | declaration entry. llvm-svn: 90282
* Use StringRef (again) in DebugInfo interface.Devang Patel2009-11-251-45/+51
| | | | llvm-svn: 89866
* Emit pubtypes.Devang Patel2009-11-241-0/+32
| | | | llvm-svn: 89725
* Add CreateLocation varinat that accepts MDNode (with a default value).Devang Patel2009-11-231-0/+11
| | | | llvm-svn: 89689
* Remove dead code.Devang Patel2009-11-171-55/+1
| | | | llvm-svn: 89156
* Revert r87059 for now. It is failing clang tests.Devang Patel2009-11-131-3/+11
| | | | llvm-svn: 87070
* Remove unnecessary llvm.dbg.declare bitcastVictor Hernandez2009-11-131-11/+3
| | | | llvm-svn: 87059
* "Attach debug info with llvm instructions" mode was enabled a month ago. Now ↵Devang Patel2009-11-121-37/+2
| | | | | | make it permanent and remove old way of inserting intrinsics to encode debug info for line number and scopes. llvm-svn: 87014
* Do not use StringRef in DebugInfo interface. Devang Patel2009-11-121-17/+17
| | | | | | | This allows StringRef to skip controversial if(str) check in constructor. Buildbots, wait for corresponding clang and llvm-gcc FE check-ins! llvm-svn: 86914
OpenPOWER on IntegriCloud