Nick Lewycky 
							
						 
					 
					
						
						
							
						
						ffab7d0c4f 
					 
					
						
						
							
							Fix typo in comment.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144236  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-11-09 22:45:04 +00:00 
						 
				 
			
				
					
						
							
							
								Eric Christopher 
							
						 
					 
					
						
						
							
						
						6618a241f7 
					 
					
						
						
							
							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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141729  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-10-11 22:59:11 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						734a67cda5 
					 
					
						
						
							
							Add support to emit debug info for C++0x nullptr type.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139751  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-09-14 23:13:28 +00:00 
						 
				 
			
				
					
						
							
							
								Eric Christopher 
							
						 
					 
					
						
						
							
						
						c27c7342aa 
					 
					
						
						
							
							Fix typo.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139530  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-09-12 19:58:22 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						811ae5b09c 
					 
					
						
						
							
							Add asserts to keep front-ends honest while encoding debug info into LLVM IR using DIBuilder.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139515  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-09-12 18:26:08 +00:00 
						 
				 
			
				
					
						
							
							
								Eric Christopher 
							
						 
					 
					
						
						
							
						
						6c0046f5d4 
					 
					
						
						
							
							Whitespace and 80-col.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138654  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-08-26 21:02:40 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						93d39be530 
					 
					
						
						
							
							Do not use named md nodes to track variables that are completely optimized. This does not scale while doing LTO with debug info. New approach is to include list of variables in the subprogram info directly.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138145  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-08-19 23:28:12 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						2bd6269417 
					 
					
						
						
							
							There is no need to add file as context for subroutine type. The subroutine type does not need any context.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138010  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-08-18 23:50:57 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						94c7ddb6f5 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137778  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-08-16 22:09:43 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						6326a4238d 
					 
					
						
						
							
							Add a finalize() hook, that'll let DIBuilder construct compile unit lazily.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137673  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-08-15 23:00:00 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						23336b449e 
					 
					
						
						
							
							Reapply r135457. This needs llvm-gcc change, that I forgot to check-in yesterday.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135504  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-07-19 19:41:54 +00:00 
						 
				 
			
				
					
						
							
							
								Bob Wilson 
							
						 
					 
					
						
						
							
						
						f51bb7cef8 
					 
					
						
						
							
							Revert "Make a provision to encode inline location in a variable. This will enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block."  
						
						... 
						
						
						
						This reverts commit 9fec5e346ehttps://llvm.org/svn/llvm-project/llvm/trunk@135486  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-07-19 16:32:50 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						9fec5e346e 
					 
					
						
						
							
							Make a provision to encode inline location in a variable. This will enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135457  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-07-19 01:03:32 +00:00 
						 
				 
			
				
					
						
							
							
								Jay Foad 
							
						 
					 
					
						
						
							
						
						a3efbb15dd 
					 
					
						
						
							
							Convert CallInst and InvokeInst APIs to use ArrayRef.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135265  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-07-15 08:37:34 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						fa3f9c001f 
					 
					
						
						
							
							Fix struct member's scope. Patch by Xi Wang.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133828  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-06-24 22:00:39 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						da174c1d3b 
					 
					
						
						
							
							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.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132556  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-06-03 17:04:51 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						464f4ef2bd 
					 
					
						
						
							
							Use llvm.dbg.cu  named metadata to collect compile units.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130756  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-05-03 16:18:28 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						7b5bd37241 
					 
					
						
						
							
							Fix an off by one error while accessing complex address element of a DIVariable.  
						
						... 
						
						
						
						This worked untill now because stars are aligned (i.e. num of complex address elments are always 0 or 2+ and when it is 2+ at least two elements are access together)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130225  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-26 18:24:39 +00:00 
						 
				 
			
				
					
						
							
							
								Jay Foad 
							
						 
					 
					
						
						
							
						
						685501836b 
					 
					
						
						
							
							PR9214: Convert the DIBuilder API to use ArrayRef.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130086  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-24 10:11:03 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						5e06bb83f4 
					 
					
						
						
							
							Let front-end tie subprogram declaration with subprogram definition directly.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130028  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-22 23:10:17 +00:00 
						 
				 
			
				
					
						
							
							
								Jay Foad 
							
						 
					 
					
						
						
							
						
						ec9186bcf9 
					 
					
						
						
							
							PR9214: Convert Metadata API to use ArrayRef.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129932  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-21 19:59:31 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						1f48a95ccb 
					 
					
						
						
							
							Use ArrayRef variants.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129735  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-18 23:51:03 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						e9db5e29e3 
					 
					
						
						
							
							Introduce support to encode Objective-C property information in debugging information generated for an interface.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129624  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-16 00:11:51 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						da19475328 
					 
					
						
						
							
							Add support to encode function's template parameters.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128947  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-04-05 22:52:06 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						e9e16c5f52 
					 
					
						
						
							
							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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126793  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-03-01 22:58:13 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						50d280c14e 
					 
					
						
						
							
							Follow LLVM coding style.  
						
						... 
						
						
						
						clang uses DBuilder, so it requries corresponding change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@126231  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-02-22 18:56:12 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						e7d93877c6 
					 
					
						
						
							
							Add support to describe template value parameter in debug info.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124755  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-02-02 22:35:53 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						7e2cb11655 
					 
					
						
						
							
							Add support to describe template parameter type in debug info.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124752  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2011-02-02 21:38:25 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						b351ebf7fc 
					 
					
						
						
							
							Use type's file info while describing inheritance relationship.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121289  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-08 21:46:37 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						44498a640d 
					 
					
						
						
							
							Add support to create debug info for functions and methods.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121281  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-08 20:42:44 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						0a2551de2c 
					 
					
						
						
							
							Add support to create class type.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121279  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-08 20:18:20 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						43c249cf1e 
					 
					
						
						
							
							Add support to create vector, array, enums etc...  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121224  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-08 01:50:15 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						94541efd92 
					 
					
						
						
							
							Global variable does not need linkage name.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121212  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-08 00:06:22 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						48f17ba2a6 
					 
					
						
						
							
							Add support to create local variable's debug info.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121211  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-07 23:58:00 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						fe58f95f36 
					 
					
						
						
							
							Add support to create variables, structs etc.. using DIBuilder.  
						
						... 
						
						
						
						This is still work in progress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121205  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-12-07 23:25:47 +00:00 
						 
				 
			
				
					
						
							
							
								Benjamin Kramer 
							
						 
					 
					
						
						
							
						
						42c9b25554 
					 
					
						
						
							
							Use arrays instead of constant-sized SmallVectors.  
						
						... 
						
						
						
						git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118257  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-04 18:45:27 +00:00 
						 
				 
			
				
					
						
							
							
								Devang Patel 
							
						 
					 
					
						
						
							
						
						35fcd6557f 
					 
					
						
						
							
							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);
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118248  91177308-0d34-0410-b5e6-96231b3b80d8 
						
						
					 
					
						2010-11-04 15:01:38 +00:00