summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DebugInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp andBill Wendling2012-06-281-1182/+0
| | | | | | | | | include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h. The reasoning is because the DebugInfo module is simply an interface to the debug info MDNodes and has nothing to do with analysis. llvm-svn: 159312
* Reduce indentation in function. Rearrange some methods. No functionality change.Bill Wendling2012-06-261-223/+222
| | | | llvm-svn: 159239
* Revamp how debugging information is emitted for debug info objects.Bill Wendling2012-06-261-134/+84
| | | | | | | | | It's not necessary for each DI class to have its own copy of `print' and `dump'. Instead, just give DIDescriptor those methods and have it call the appropriate debugging printing routine based on the type of the debug information. llvm-svn: 159237
* Actually support DW_TAG_rvalue_reference_type that we were tryingEric Christopher2012-05-191-6/+10
| | | | | | | | to generate out of the front end. rdar://11479676 llvm-svn: 157094
* Add a line number for the scope of the function (starting at the firstEric Christopher2012-04-031-0/+3
| | | | | | | | | | 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 llvm-svn: 153916
* Lowercase the tag name to match the rest of dwarf.Eric Christopher2012-03-291-2/+2
| | | | llvm-svn: 153691
* Add support for objc property decls according to the page at:Eric Christopher2012-03-291-0/+13
| | | | | | | | | | http://llvm.org/docs/SourceLevelDebugging.html#objcproperty including type and DECL. Expand the metadata needed accordingly. rdar://11144023 llvm-svn: 153639
* Do the right thing on NULL uint64 fields.Eric Christopher2012-03-161-1/+1
| | | | | | | | Patch by Clemens Hammacher! Fixes PR12243 llvm-svn: 152880
* Make this a bit prettier and more obvious when a derived type isn'tEric Christopher2012-02-201-1/+3
| | | | | | derived from anything. llvm-svn: 150975
* If a derived type is also a composite type, print that informationEric Christopher2012-02-201-2/+7
| | | | | | too. llvm-svn: 150974
* Remove tabs.Devang Patel2012-02-081-16/+16
| | | | llvm-svn: 150022
* Convert assert(0) to llvm_unreachableCraig Topper2012-02-071-4/+2
| | | | llvm-svn: 149967
* DebugInfo: Provide a new hook to encode relationship between a property and ↵Devang Patel2012-02-061-0/+7
| | | | | | an ivar. llvm-svn: 149874
* Introduce DIObjCProperty. This will be used to encode objective-c property.Devang Patel2012-02-041-0/+4
| | | | llvm-svn: 149732
* Don't avoid recursing for pointer types, just reference types. Expand onEric Christopher2012-01-111-3/+4
| | | | | | | | the comment. Fixes constvars.exp on the gdb test builder. llvm-svn: 147897
* Unweaken vtables as per ↵David Blaikie2011-12-201-0/+26
| | | | | | http://llvm.org/docs/CodingStandards.html#ll_virtual_anch llvm-svn: 146960
* When recursing for the original size of a type, stop if we are at aEric Christopher2011-12-161-1/+7
| | | | | | | | | pointer or a reference type - we actually just want the size of the pointer then for that. Fixes rdar://10335756 llvm-svn: 146785
* Update DebugInfoFinder to match recent debug info encoding changes.Devang Patel2011-10-171-3/+24
| | | | llvm-svn: 142295
* Add a new wrapper node for a DILexicalBlock that encapsulates it and aEric Christopher2011-10-111-1/+31
| | | | | | | | | | | | | 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
* Add support to emit debug info for C++0x nullptr type.Devang Patel2011-09-141-1/+8
| | | | llvm-svn: 139751
* Now, named mdnode llvm.dbg.cu keeps track of all compile units in a module. ↵Devang Patel2011-09-061-6/+12
| | | | | | Update DebugInfoFinder to collect compile units from llvm.dbg.cu. llvm-svn: 139147
* After r138010, subroutine type does not have context info. Update type ↵Devang Patel2011-08-311-0/+1
| | | | | | | | verifier accordingly. This fixes ptype.exp gdb testsuite regressions. llvm-svn: 138869
* Do not use named md nodes to track variables that are completely optimized. ↵Devang Patel2011-08-191-6/+38
| | | | | | This does not scale while doing LTO with debug info. New approach is to include list of variables in the subprogram info directly. llvm-svn: 138145
* Until now all debug info MDNodes referred to a root MDNode, a compile unit. ↵Devang Patel2011-08-161-25/+46
| | | | | | | | 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
* Refactor. Global variables are part of compile unit so let CompileUnit ↵Devang Patel2011-08-151-0/+30
| | | | | | create new global variable. llvm-svn: 137621
* Distinguish between two copies of one inlined variable. Take 2.Devang Patel2011-08-101-0/+11
| | | | llvm-svn: 137253
* Provide method to print variable's extended name which includes inline location.Devang Patel2011-08-091-1/+37
| | | | llvm-svn: 137095
* Temporarily revert r135528 which distinguishes between two copies of oneChandler Carruth2011-08-051-11/+0
| | | | | | | | | | | | | | | | | | | inlined variable, based on the discussion in PR10542. This explodes the runtime of several passes down the pipeline due to a large number of "copies" remaining live across a large function. This only shows up with both debug and opt, but when it does it creates a many-minute compile when self-hosting LLVM+Clang. There are several other cases that show these types of regressions. All of this is tracked in PR10542, and progress is being made on fixing the issue. Once its addressed, the re-instated, but until then this restores the performance for self-hosting and other opt+debug builds. Devang, let me know if this causes any trouble, or impedes fixing it in any way, and thanks for working on this! llvm-svn: 136953
* There are two ways to map a variable to its lexical scope. Lexical scope ↵Devang Patel2011-07-201-0/+6
| | | | | | information is embedded in MDNode describing the variable. It is also available as a part of DebugLoc attached with DBG_VALUE instruction. DebugLoc attached with an instruction is less reliable in optimized code so use information embedded in the MDNode. llvm-svn: 135629
* Distinguish between two copies of one inlined variable.Devang Patel2011-07-191-0/+11
| | | | llvm-svn: 135528
* Reapply r135457. This needs llvm-gcc change, that I forgot to check-in ↵Devang Patel2011-07-191-1/+16
| | | | | | yesterday. llvm-svn: 135504
* Revert "Make a provision to encode inline location in a variable. This will ↵Bob Wilson2011-07-191-16/+1
| | | | | | | | enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block." This reverts commit 9fec5e346efdf744b151ae6604f912908315fa7a. llvm-svn: 135486
* Make a provision to encode inline location in a variable. This will enable ↵Devang Patel2011-07-191-1/+16
| | | | | | dwarf writer to easily distinguish between two instances of a inlined variable in one basic block. llvm-svn: 135457
* Simplify code. No functionality change.Benjamin Kramer2011-06-181-18/+18
| | | | llvm-svn: 133351
* Remove DIFactory. Patch by Devang.Duncan Sands2011-03-021-663/+12
| | | | llvm-svn: 126871
* Move DbgInfoPrinter specific utlities inside DbgInfoPrinter.cppDevang Patel2011-02-151-111/+0
| | | | llvm-svn: 125571
* Print function info. Patch by Minjang Kim.Devang Patel2011-02-151-0/+28
| | | | llvm-svn: 125567
* Fix typo in comment.Devang Patel2011-02-031-1/+1
| | | | llvm-svn: 124759
* Add support to describe template value parameter in debug info.Devang Patel2011-02-021-0/+6
| | | | llvm-svn: 124755
* Add support to describe template parameter type in debug info.Devang Patel2011-02-021-0/+6
| | | | llvm-svn: 124752
* Add support to create class type.Devang Patel2010-12-081-0/+20
| | | | llvm-svn: 121279
* Add support to create vector, array, enums etc...Devang Patel2010-12-081-0/+2
| | | | llvm-svn: 121224
* Add support to create variables, structs etc.. using DIBuilder.Devang Patel2010-12-071-2/+15
| | | | | | This is still work in progress. llvm-svn: 121205
* Also inore '()' while creating mdnode name from ObjC symbol name.Jakob Stoklund Olesen2010-12-031-1/+2
| | | | llvm-svn: 120856
* Ignore '+' while creating mdnode name from ObjC symbol name.Devang Patel2010-12-031-1/+1
| | | | llvm-svn: 120853
* Take care of special characters while creating named MDNode name to hold ↵Devang Patel2010-11-101-3/+35
| | | | | | | | function specific local variable's info. This fixes radar 8653152. I am checking in testcase as a separate check-in. llvm-svn: 118726
* Fix DIType verifier. The element 3 is DIFile now.Devang Patel2010-11-021-3/+4
| | | | llvm-svn: 118054
* Add support for DW_TAG_unspecified_parameters.Devang Patel2010-10-061-1/+14
| | | | llvm-svn: 115833
* Let FE mark a variable as artificial variable.Devang Patel2010-09-291-3/+7
| | | | llvm-svn: 115102
* Generalize DISubprogram element to encode various flags instead of just one ↵Devang Patel2010-09-291-3/+3
| | | | | | | | boolean for isArtificial. This is a backword compatible change. llvm-svn: 115084
OpenPOWER on IntegriCloud