summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DebugInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Provide an interface to let FEs anchor debug info for types.Devang Patel2010-09-281-0/+8
| | | | llvm-svn: 114969
* Simplify code.Benjamin Kramer2010-09-211-8/+6
| | | | llvm-svn: 114444
* Make CreateComplexVariable independent of SmallVector.Benjamin Kramer2010-09-211-7/+6
| | | | llvm-svn: 114439
* Let FE use derived types for DW_TAG_friend.Devang Patel2010-08-231-0/+1
| | | | | | Patch by Alexander Herz! llvm-svn: 111861
* Handle qualified constants that are directly folded by FE.Devang Patel2010-08-231-0/+10
| | | | | | PR 7920. llvm-svn: 111820
* CreateTemporaryType doesn't needs its Context argument.Dan Gohman2010-08-201-1/+1
| | | | llvm-svn: 111687
* Introduce a new temporary MDNode concept. Temporary MDNodes areDan Gohman2010-08-201-1/+15
| | | | | | | | not part of the IR, are not uniqued, and may be safely RAUW'd. This replaces a variety of alternate mechanisms for achieving the same effect. llvm-svn: 111681
* Even if a variable has constant value all the time, it is still a variable ↵Devang Patel2010-08-111-1/+1
| | | | | | | | in gdb's eyes. Tested by scope.exp in gdb testsuite. llvm-svn: 110876
* Add missing argument. CreateCompositeTypeEx() users, please verify.Devang Patel2010-08-101-4/+5
| | | | llvm-svn: 110717
* Do not forget debug info for enums. Use named mdnode to keep track of these ↵Devang Patel2010-08-101-2/+15
| | | | | | types. llvm-svn: 110712
* Handle TAG_constant for integers.Devang Patel2010-08-101-2/+3
| | | | llvm-svn: 110656
* Refactor.Devang Patel2010-08-091-1/+42
| | | | llvm-svn: 110607
* Add explicit constructors. Patch by Renato Golin.Devang Patel2010-08-021-0/+15
| | | | llvm-svn: 110072
* Make NamedMDNode not be a subclass of Value, and simplify the interfaceDan Gohman2010-07-211-5/+5
| | | | | | for creating and populating NamedMDNodes. llvm-svn: 109061
* tidy up.Jim Grosbach2010-07-211-26/+27
| | | | llvm-svn: 109038
* Disallow null as a named metadata operand.Dan Gohman2010-07-211-4/+2
| | | | | | | | | | | Make MDNode::destroy private. Fix the one thing that used MDNode::destroy, outside of MDNode itself. One should never delete or destroy an MDNode explicitly. MDNodes implicitly go away when there are no references to them (implementation details aside). llvm-svn: 109028
* Correct line info for declarations/definitions. Radar 8063111.Stuart Hastings2010-07-191-3/+8
| | | | llvm-svn: 108784
* Reverting r107918 and r107919. Radar 8063111.Stuart Hastings2010-07-081-8/+3
| | | | llvm-svn: 107930
OpenPOWER on IntegriCloud