a876b8243e 
								
							 
						 
						
							
							
								
								Typo.  
							
							... 
							
							
							
							llvm-svn: 162438 
							
						 
						
							2012-08-23 07:32:06 +00:00  
				
					
						
							
							
								 
						
							
								3a47c3e3cd 
								
							 
						 
						
							
							
								
								Only emit the __debug_inlined section if we're trying to be compatible  
							
							... 
							
							
							
							with older gdbs on darwin.
rdar://10975874
llvm-svn: 162436 
							
						 
						
							2012-08-23 07:32:02 +00:00  
				
					
						
							
							
								 
						
							
								7782618271 
								
							 
						 
						
							
							
								
								Emit pubtypes only when going for darwin gdb compatibility.  
							
							... 
							
							
							
							rdar://10393214
llvm-svn: 162434 
							
						 
						
							2012-08-23 07:10:56 +00:00  
				
					
						
							
							
								 
						
							
								978fbff11b 
								
							 
						 
						
							
							
								
								Add an option for darwin gdb compatibility.  
							
							... 
							
							
							
							llvm-svn: 162432 
							
						 
						
							2012-08-23 07:10:46 +00:00  
				
					
						
							
							
								 
						
							
								b1b9451337 
								
							 
						 
						
							
							
								
								Temporarily revert c23b933d5f8be9b51a1d22e717c0311f65f87dcd. It's causing  
							
							... 
							
							
							
							failures in the debug testsuite and possibly PR13486.
llvm-svn: 161121 
							
						 
						
							2012-08-01 18:19:01 +00:00  
				
					
						
							
							
								 
						
							
								86ca9f9e11 
								
							 
						 
						
							
							
								
								Add a DW_AT_high_pc for CUs that are a single address range. Update  
							
							... 
							
							
							
							all tests accordingly.
Fixes PR13351.
Patch by shinichiro hamaji!
llvm-svn: 160899 
							
						 
						
							2012-07-27 22:00:05 +00:00  
				
					
						
							
							
								 
						
							
								bf57091f8b 
								
							 
						 
						
							
							
								
								The end of the prologue should be marked with is_stmt.  
							
							... 
							
							
							
							Fixes PR13303.
Patch by Paul Robinson!
llvm-svn: 160148 
							
						 
						
							2012-07-12 23:30:25 +00:00  
				
					
						
							
							
								 
						
							
								39602781f6 
								
							 
						 
						
							
							
								
								Fix PR13202 and a regtest.  
							
							... 
							
							
							
							DwarfDebug class could generate the same (inlined) DIVariable twice:
1) when trying to find abstract debug variable for a concrete inlined instance.
2) when explicitly collecting info for variables that were optimized out.
This change makes sure that this duplication won't happen and makes
Clang pass "gdb.opt/inline-locals" test from gdb testsuite.
Reviewed by Eric Christopher.
llvm-svn: 159811 
							
						 
						
							2012-07-06 08:45:08 +00:00  
				
					
						
							
							
								 
						
							
								f799efdedc 
								
							 
						 
						
							
							
								
								The DIBuilder class is just a wrapper around debug info creation  
							
							... 
							
							
							
							(a.k.a. MDNodes). The module doesn't belong in Analysis. Move it to the VMCore
instead.
llvm-svn: 159414 
							
						 
						
							2012-06-29 08:32:07 +00:00  
				
					
						
							
							
								 
						
							
								e38859dc8e 
								
							 
						 
						
							
							
								
								Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and  
							
							... 
							
							
							
							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 
							
						 
						
							2012-06-28 00:05:13 +00:00  
				
					
						
							
							
								 
						
							
								d7bdaf5795 
								
							 
						 
						
							
							
								
								Fix a FIXME: DwarfRequiresRelocationForSectionOffset is the same as  
							
							... 
							
							
							
							DwarfUsesRelocationsAcrossSections.
llvm-svn: 158992 
							
						 
						
							2012-06-22 13:24:07 +00:00  
				
					
						
							
							
								 
						
							
								33da33676f 
								
							 
						 
						
							
							
								
								Emit relocations for DW_AT_location entries on systems which need it. This is  
							
							... 
							
							
							
							a recommit of r127757. Fixes PR9493. Patch by Paul Robinson!
llvm-svn: 158957 
							
						 
						
							2012-06-22 01:25:12 +00:00  
				
					
						
							
							
								 
						
							
								0748008df5 
								
							 
						 
						
							
							
								
								Allocate the contents of DwarfDebug's StringMaps in a single big BumpPtrAllocator.  
							
							... 
							
							
							
							llvm-svn: 158265 
							
						 
						
							2012-06-09 10:34:15 +00:00  
				
					
						
							
							
								 
						
							
								54038d796c 
								
							 
						 
						
							
							
								
								Switch all register list clients to the new MC*Iterator interface.  
							
							... 
							
							
							
							No functional change intended.
Sorry for the churn. The iterator classes are supposed to help avoid
giant commits like this one in the future. The TableGen-produced
register lists are getting quite large, and it may be necessary to
change the table representation.
This makes it possible to do so without changing all clients (again).
llvm-svn: 157854 
							
						 
						
							2012-06-01 23:28:30 +00:00  
				
					
						
							
							
								 
						
							
								e2b36ce24a 
								
							 
						 
						
							
							
								
								Remove duplicate code that we could just fallthrough to.  
							
							... 
							
							
							
							llvm-svn: 157060 
							
						 
						
							2012-05-18 18:24:15 +00:00  
				
					
						
							
							
								 
						
							
								8d2a77de63 
								
							 
						 
						
							
							
								
								Fix thinko in conditional.  
							
							... 
							
							
							
							Part of rdar://11352000 and should bring the buildbots back.
llvm-svn: 156421 
							
						 
						
							2012-05-08 21:24:39 +00:00  
				
					
						
							
							
								 
						
							
								4d25052a9a 
								
							 
						 
						
							
							
								
								Handle OpDeref in case it comes in as a register operand.  
							
							... 
							
							
							
							Part of rdar://11352000
llvm-svn: 156405 
							
						 
						
							2012-05-08 18:56:00 +00:00  
				
					
						
							
							
								 
						
							
								aec8a82694 
								
							 
						 
						
							
							
								
								Patch to set is_stmt a little better for prologue lines in a function.  
							
							... 
							
							
							
							This enables debuggers to see what are interesting lines for a
breakpoint rather than any line that starts a function.
rdar://9852092
llvm-svn: 154120 
							
						 
						
							2012-04-05 20:39:05 +00:00  
				
					
						
							
							
								 
						
							
								b81e2b403c 
								
							 
						 
						
							
							
								
								Fix thinko check for number of operands to be the one that actually  
							
							... 
							
							
							
							might have more than 19 operands. Add a testcase to make sure I
never screw that up again.
Part of rdar://11026482
llvm-svn: 153961 
							
						 
						
							2012-04-03 17:55:42 +00:00  
				
					
						
							
							
								 
						
							
								34164196af 
								
							 
						 
						
							
							
								
								Add a line number for the scope of the function (starting at the first  
							
							... 
							
							
							
							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 
							
						 
						
							2012-04-03 00:43:49 +00:00  
				
					
						
							
							
								 
						
							
								ad9fe8955a 
								
							 
						 
						
							
							
								
								Turn on the accelerator tables for Darwin.  
							
							... 
							
							
							
							llvm-svn: 153880 
							
						 
						
							2012-04-02 17:58:52 +00:00  
				
					
						
							
							
								 
						
							
								7ed2efca6a 
								
							 
						 
						
							
							
								
								Use DW_AT_low_pc for a single entry point into a routine.  
							
							... 
							
							
							
							Fixes PR10105
llvm-svn: 153524 
							
						 
						
							2012-03-27 18:35:54 +00:00  
				
					
						
							
							
								 
						
							
								0925c62c74 
								
							 
						 
						
							
							
								
								Use the file in the inlined die rather than the compile unit for  
							
							... 
							
							
							
							backtrace locations.
Testcase forthcoming, but I wanted to get some testing here.
Should fix:
PR12323
PR12314
rdar://11091100
llvm-svn: 153471 
							
						 
						
							2012-03-26 21:38:38 +00:00  
				
					
						
							
							
								 
						
							
								71b197306e 
								
							 
						 
						
							
							
								
								DwarfDebug: Store the filename/dirname pair as a zero-separated string in a stringmap, instead of using a highly inefficient std::map of a pair of std::strings.  
							
							... 
							
							
							
							llvm-svn: 152541 
							
						 
						
							2012-03-11 14:56:26 +00:00  
				
					
						
							
							
								 
						
							
								1d32658877 
								
							 
						 
						
							
							
								
								Use uint16_t to store register overlaps to reduce static data.  
							
							... 
							
							
							
							llvm-svn: 152001 
							
						 
						
							2012-03-04 10:43:23 +00:00  
				
					
						
							
							
								 
						
							
								1df94bfe8a 
								
							 
						 
						
							
							
								
								Grammar-o in function name.  
							
							... 
							
							
							
							llvm-svn: 151875 
							
						 
						
							2012-03-02 02:11:47 +00:00  
				
					
						
							
							
								 
						
							
								7772531567 
								
							 
						 
						
							
							
								
								If the linkage name doesn't exist we're supposed to emit a reference  
							
							... 
							
							
							
							to the string table for the function name, not the function name.
llvm-svn: 151873 
							
						 
						
							2012-03-02 01:57:52 +00:00  
				
					
						
							
							
								 
						
							
								7524fe4551 
								
							 
						 
						
							
							
								
								Revert "Reorder the sections being output to reduce the number of assembler"  
							
							... 
							
							
							
							The inline table needs to be constructed ahead of time so that it doesn't try to
create new strings while we're emitting everything.
This reverts commit a8ff9bccb399183cdd5f1c3cec2bda763664b4b0.
llvm-svn: 151864 
							
						 
						
							2012-03-02 00:30:24 +00:00  
				
					
						
							
							
								 
						
							
								66b0721014 
								
							 
						 
						
							
							
								
								Reorder the sections being output to reduce the number of assembler  
							
							... 
							
							
							
							fixups that are being used to determine section offsets. Reduces
the total number of fixups by 50% for a non-trivial testcase.
Part of rdar://10413936
llvm-svn: 151852 
							
						 
						
							2012-03-01 22:50:31 +00:00  
				
					
						
							
							
								 
						
							
								35145f830a 
								
							 
						 
						
							
							
								
								Minimal changes for LLVM to compile under VS11.  
							
							... 
							
							
							
							llvm-svn: 151849 
							
						 
						
							2012-03-01 22:42:52 +00:00  
				
					
						
							
							
								 
						
							
								3a2656b394 
								
							 
						 
						
							
							
								
								Add the source language into the compile unit.  
							
							... 
							
							
							
							llvm-svn: 151143 
							
						 
						
							2012-02-22 08:46:13 +00:00  
				
					
						
							
							
								 
						
							
								ee4dab5f1f 
								
							 
						 
						
							
							
								
								Convert assert(0) to llvm_unreachable  
							
							... 
							
							
							
							llvm-svn: 149816 
							
						 
						
							2012-02-05 08:31:47 +00:00  
				
					
						
							
							
								 
						
							
								3e8ccc2000 
								
							 
						 
						
							
							
								
								Remove generation of DW_AT_sibling. Nothing as far as I can tell uses it.  
							
							... 
							
							
							
							Saves about 1.5% on debug info size.
rdar://10278198
llvm-svn: 148794 
							
						 
						
							2012-01-24 09:43:28 +00:00  
				
					
						
							
							
								 
						
							
								090fcc1a10 
								
							 
						 
						
							
							
								
								Use const vector references instead of a vector copy. Spotted by Devang.  
							
							... 
							
							
							
							llvm-svn: 147694 
							
						 
						
							2012-01-06 23:03:34 +00:00  
				
					
						
							
							
								 
						
							
								21bde87bf3 
								
							 
						 
						
							
							
								
								As part of the ongoing work in finalizing the accelerator tables, extend  
							
							... 
							
							
							
							the debug type accelerator tables to contain the tag and a flag
stating whether or not a compound type is a complete type.
rdar://10652330
llvm-svn: 147651 
							
						 
						
							2012-01-06 04:35:23 +00:00  
				
					
						
							
							
								 
						
							
								365d083585 
								
							 
						 
						
							
							
								
								Extraneous whitespace and 80-col.  
							
							... 
							
							
							
							llvm-svn: 146780 
							
						 
						
							2011-12-16 23:42:31 +00:00  
				
					
						
							
							
								 
						
							
								8dda5d0f06 
								
							 
						 
						
							
							
								
								Add inline subprogram names to the name lookup table since they may  
							
							... 
							
							
							
							not get there any other way.
llvm-svn: 145789 
							
						 
						
							2011-12-04 06:02:38 +00:00  
				
					
						
							
							
								 
						
							
								50f02cb21b 
								
							 
						 
						
							
							
								
								Move global variables in TargetMachine into new TargetOptions class. As an API  
							
							... 
							
							
							
							change, now you need a TargetOptions object to create a TargetMachine. Clang
patch to follow.
One small functionality change in PTX. PTX had commented out the machine
verifier parts in their copy of printAndVerify. That now calls the version in
LLVMTargetMachine. Users of PTX who need verification disabled should rely on
not passing the command-line flag to enable it.
llvm-svn: 145714 
							
						 
						
							2011-12-02 22:16:29 +00:00  
				
					
						
							
							
								 
						
							
								e7cc8bff82 
								
							 
						 
						
							
							
								
								The dwarf standard says that the only differences between a out-of-line  
							
							... 
							
							
							
							instance and a concrete inlined instance are the use of DW_TAG_subprogram
instead of DW_TAG_inlined_subroutine and the who owns the tree.
We were also omitting DW_AT_inline from the abstract roots. To fix this,
make sure we mark abstract instance roots with DW_AT_inline even when
we have only out-of-line instances referring to them with DW_AT_abstract_origin.
FileCheck is not a very good tool for tests like this, maybe we should add
a -verify mode to llvm-dwarfdump.
llvm-svn: 144441 
							
						 
						
							2011-11-12 01:57:54 +00:00  
				
					
						
							
							
								 
						
							
								79278365d3 
								
							 
						 
						
							
							
								
								Check in getOrCreateSubprogramDIE if a declaration exists and if so output  
							
							... 
							
							
							
							it first.
This is a more general fix to pr11300.
llvm-svn: 144324 
							
						 
						
							2011-11-10 22:34:29 +00:00  
				
					
						
							
							
								 
						
							
								66b37db641 
								
							 
						 
						
							
							
								
								Make types and namespaces take multiple DIEs for the accelerator tables  
							
							... 
							
							
							
							as well.
llvm-svn: 144319 
							
						 
						
							2011-11-10 21:47:55 +00:00  
				
					
						
							
							
								 
						
							
								d9843b34e6 
								
							 
						 
						
							
							
								
								Rework adding function names to the dwarf accelerator tables, allow  
							
							... 
							
							
							
							multiple dies per function and support C++ basenames.
llvm-svn: 144304 
							
						 
						
							2011-11-10 19:25:34 +00:00  
				
					
						
							
							
								 
						
							
								966ed1b698 
								
							 
						 
						
							
							
								
								Add comments.  
							
							... 
							
							
							
							llvm-svn: 144194 
							
						 
						
							2011-11-09 18:16:11 +00:00  
				
					
						
							
							
								 
						
							
								148db36263 
								
							 
						 
						
							
							
								
								Take advantage of the zero byte in StringMap when emitting dwarf stringpool entries.  
							
							... 
							
							
							
							llvm-svn: 144184 
							
						 
						
							2011-11-09 12:12:04 +00:00  
				
					
						
							
							
								 
						
							
								5223a57533 
								
							 
						 
						
							
							
								
								Remove the pubnames section, no one consumes it.  
							
							... 
							
							
							
							llvm-svn: 144169 
							
						 
						
							2011-11-09 05:24:07 +00:00  
				
					
						
							
							
								 
						
							
								08a558eeef 
								
							 
						 
						
							
							
								
								Also add the linkage name to the name accelerator tables if it exists  
							
							... 
							
							
							
							and is different than the normal name.
llvm-svn: 144130 
							
						 
						
							2011-11-08 21:56:23 +00:00  
				
					
						
							
							
								 
						
							
								970771c0e8 
								
							 
						 
						
							
							
								
								Add the base ObjC method name to the names lookup table as well.  
							
							... 
							
							
							
							llvm-svn: 144105 
							
						 
						
							2011-11-08 19:16:01 +00:00  
				
					
						
							
							
								 
						
							
								5139dadd50 
								
							 
						 
						
							
							
								
								Add all completed and named types to the dwarf type accelerator tables.  
							
							... 
							
							
							
							llvm-svn: 144027 
							
						 
						
							2011-11-07 22:11:16 +00:00  
				
					
						
							
							
								 
						
							
								988ac00abd 
								
							 
						 
						
							
							
								
								Use StringRef::startswith to do some string comparisons.  
							
							... 
							
							
							
							llvm-svn: 143982 
							
						 
						
							2011-11-07 18:53:23 +00:00  
				
					
						
							
							
								 
						
							
								cc979f9ae6 
								
							 
						 
						
							
							
								
								Allow for the case where the name of the subprogram is "".  
							
							... 
							
							
							
							Fixes a self-host error.
llvm-svn: 143970 
							
						 
						
							2011-11-07 18:10:17 +00:00  
				
					
						
							
							
								 
						
							
								8c7505f258 
								
							 
						 
						
							
							
								
								Remove unnecessary addition to API. Replace with something much simpler.  
							
							... 
							
							
							
							llvm-svn: 143925 
							
						 
						
							2011-11-07 09:38:42 +00:00  
				
					
						
							
							
								 
						
							
								4996c70034 
								
							 
						 
						
							
							
								
								Add the support code to enable the dwarf accelerator tables. Upcoming patches  
							
							... 
							
							
							
							to fix the types section (all types, not just global types), and testcases.
The code to do the final emission is disabled by default.
llvm-svn: 143923 
							
						 
						
							2011-11-07 09:24:32 +00:00  
				
					
						
							
							
								 
						
							
								a7b6189071 
								
							 
						 
						
							
							
								
								Expose a way to get the beginning of the dwarf string section.  
							
							... 
							
							
							
							llvm-svn: 143920 
							
						 
						
							2011-11-07 09:18:38 +00:00  
				
					
						
							
							
								 
						
							
								6abc9c5aaa 
								
							 
						 
						
							
							
								
								Fix up comment.  
							
							... 
							
							
							
							llvm-svn: 143919 
							
						 
						
							2011-11-07 09:18:35 +00:00  
				
					
						
							
							
								 
						
							
								6cf4e830ce 
								
							 
						 
						
							
							
								
								Emit declarations before definitions if they are available. This causes DW_AT_specification to  
							
							... 
							
							
							
							point back in the file in the included testcase. Fixes PR11300.
llvm-svn: 143726 
							
						 
						
							2011-11-04 19:00:29 +00:00  
				
					
						
							
							
								 
						
							
								d1ee7f8cf1 
								
							 
						 
						
							
							
								
								Don't emit a directory entry for the value in DW_AT_comp_dir, that is always  
							
							... 
							
							
							
							implied by directory index zero.
llvm-svn: 143570 
							
						 
						
							2011-11-02 20:55:33 +00:00  
				
					
						
							
							
								 
						
							
								d59c0cac6c 
								
							 
						 
						
							
							
								
								Teach our Dwarf emission to use the string pool.  
							
							... 
							
							
							
							llvm-svn: 143097 
							
						 
						
							2011-10-27 06:44:11 +00:00  
				
					
						
							
							
								 
						
							
								654f5ce812 
								
							 
						 
						
							
							
								
								Reflow lines, fix comments for doxygen style, fix whitespace. No functionality  
							
							... 
							
							
							
							change.
llvm-svn: 143074 
							
						 
						
							2011-10-26 22:55:33 +00:00  
				
					
						
							
							
								 
						
							
								479a8fe75e 
								
							 
						 
						
							
							
								
								Minor style cleanup, no functionality change.  
							
							... 
							
							
							
							llvm-svn: 142307 
							
						 
						
							2011-10-17 23:27:36 +00:00  
				
					
						
							
							
								 
						
							
								40f8f2ff24 
								
							 
						 
						
							
							
								
								Add support for a new extension to the .file directive:  
							
							... 
							
							
							
							.file filenumber "directory" "filename"
This removes one join+split of the directory+filename in MC internals. Because
bitcode files have independent fields for directory and filenames in debug info,
this patch may change the .o files written by existing .bc files.
llvm-svn: 142300 
							
						 
						
							2011-10-17 23:05:28 +00:00  
				
					
						
							
							
								 
						
							
								6647b83087 
								
							 
						 
						
							
							
								
								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
llvm-svn: 141729 
							
						 
						
							2011-10-11 22:59:11 +00:00  
				
					
						
							
							
								 
						
							
								f84354bfb1 
								
							 
						 
						
							
							
								
								Typo.  
							
							... 
							
							
							
							llvm-svn: 141004 
							
						 
						
							2011-10-03 15:49:16 +00:00  
				
					
						
							
							
								 
						
							
								59e27c5f12 
								
							 
						 
						
							
							
								
								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.  
							
							... 
							
							
							
							llvm-svn: 138145 
							
						 
						
							2011-08-19 23:28:12 +00:00  
				
					
						
							
							
								 
						
							
								0ecbcbd12c 
								
							 
						 
						
							
							
								
								Eliminate unnecessary forwarding function.  
							
							... 
							
							
							
							llvm-svn: 138006 
							
						 
						
							2011-08-18 23:17:55 +00:00  
				
					
						
							
							
								 
						
							
								eb1bb4e419 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 137778 
							
						 
						
							2011-08-16 22:09:43 +00:00  
				
					
						
							
							
								 
						
							
								927840458e 
								
							 
						 
						
							
							
								
								Remove unnecessary version check.  
							
							... 
							
							
							
							llvm-svn: 137728 
							
						 
						
							2011-08-16 17:41:41 +00:00  
				
					
						
							
							
								 
						
							
								07bb9eea33 
								
							 
						 
						
							
							
								
								Refactor.  
							
							... 
							
							
							
							llvm-svn: 137689 
							
						 
						
							2011-08-15 23:47:24 +00:00  
				
					
						
							
							
								 
						
							
								1f4f98d664 
								
							 
						 
						
							
							
								
								Continue to hoist uses of getCompileUnit() up. The goal is to get rid of uses of getCompileUnit().  
							
							... 
							
							
							
							llvm-svn: 137683 
							
						 
						
							2011-08-15 23:36:40 +00:00  
				
					
						
							
							
								 
						
							
								d2dfc5ec02 
								
							 
						 
						
							
							
								
								This is somewhat déjà-vu, but avoid using getCompileUnit() as much as possible.  
							
							... 
							
							
							
							llvm-svn: 137668 
							
						 
						
							2011-08-15 22:24:32 +00:00  
				
					
						
							
							
								 
						
							
								3acc70e536 
								
							 
						 
						
							
							
								
								Refactor. Variables are part of compile unit so let CompileUnit create new variable.  
							
							... 
							
							
							
							llvm-svn: 137663 
							
						 
						
							2011-08-15 22:04:40 +00:00  
				
					
						
							
							
								 
						
							
								d899444347 
								
							 
						 
						
							
							
								
								There is no need to maintain a set to keep track of variables that use location expressions. In such cases, AT_location attribute's value will be a label.  
							
							... 
							
							
							
							llvm-svn: 137659 
							
						 
						
							2011-08-15 21:43:21 +00:00  
				
					
						
							
							
								 
						
							
								900d97719b 
								
							 
						 
						
							
							
								
								Fix warning.  
							
							... 
							
							
							
							llvm-svn: 137658 
							
						 
						
							2011-08-15 21:35:16 +00:00  
				
					
						
							
							
								 
						
							
								3e4a965519 
								
							 
						 
						
							
							
								
								Simplify. Let DbgVariable keep track of variable's DBG_VALUE machine instruction.  
							
							... 
							
							
							
							llvm-svn: 137656 
							
						 
						
							2011-08-15 21:24:36 +00:00  
				
					
						
							
							
								 
						
							
								99819b527d 
								
							 
						 
						
							
							
								
								Simplify mapping to variable from its abstract variable info.  
							
							... 
							
							
							
							When a variable is inlined multiple places, abstract variable keeps name, location, type etc.. info and all other concreate instances of the variable directly refers to abstract variable.
llvm-svn: 137637 
							
						 
						
							2011-08-15 19:01:20 +00:00  
				
					
						
							
							
								 
						
							
								d7d80aadd1 
								
							 
						 
						
							
							
								
								Refactor.  
							
							... 
							
							
							
							llvm-svn: 137632 
							
						 
						
							2011-08-15 18:40:16 +00:00  
				
					
						
							
							
								 
						
							
								6e4d2c9fb7 
								
							 
						 
						
							
							
								
								Refactor.  
							
							... 
							
							
							
							llvm-svn: 137631 
							
						 
						
							2011-08-15 18:35:42 +00:00  
				
					
						
							
							
								 
						
							
								dfd6ec3ce1 
								
							 
						 
						
							
							
								
								Refactor. Global variables are part of compile unit so let CompileUnit create new global variable.  
							
							... 
							
							
							
							llvm-svn: 137621 
							
						 
						
							2011-08-15 17:57:41 +00:00  
				
					
						
							
							
								 
						
							
								895437142a 
								
							 
						 
						
							
							
								
								Refactor. A subprogram is part of compile unit so let CompileUnit construct new subprogram.  
							
							... 
							
							
							
							llvm-svn: 137618 
							
						 
						
							2011-08-15 17:24:54 +00:00  
				
					
						
							
							
								 
						
							
								444034783e 
								
							 
						 
						
							
							
								
								Use ArrayRef.  
							
							... 
							
							
							
							llvm-svn: 137485 
							
						 
						
							2011-08-12 18:10:19 +00:00  
				
					
						
							
							
								 
						
							
								fa7e6a54b1 
								
							 
						 
						
							
							
								
								Plug a memory leak.  
							
							... 
							
							
							
							llvm-svn: 137321 
							
						 
						
							2011-08-11 18:39:28 +00:00  
				
					
						
							
							
								 
						
							
								784077eb57 
								
							 
						 
						
							
							
								
								Stay within 80 columns.  
							
							... 
							
							
							
							llvm-svn: 137283 
							
						 
						
							2011-08-10 23:58:09 +00:00  
				
					
						
							
							
								 
						
							
								bb23a4a9a5 
								
							 
						 
						
							
							
								
								Distinguish between two copies of one inlined variable. Take 2.  
							
							... 
							
							
							
							llvm-svn: 137253 
							
						 
						
							2011-08-10 21:50:54 +00:00  
				
					
						
							
							
								 
						
							
								e30746c844 
								
							 
						 
						
							
							
								
								Revert unintentional parts of previous check-in.  
							
							... 
							
							
							
							llvm-svn: 137249 
							
						 
						
							2011-08-10 21:16:49 +00:00  
				
					
						
							
							
								 
						
							
								7e62302fae 
								
							 
						 
						
							
							
								
								Start using LexicalScopes utility. No intetional functionality change.  
							
							... 
							
							
							
							llvm-svn: 137246 
							
						 
						
							2011-08-10 20:55:27 +00:00  
				
					
						
							
							
								 
						
							
								fee7cedbc9 
								
							 
						 
						
							
							
								
								Simplify by creating parent first.  
							
							... 
							
							
							
							llvm-svn: 137056 
							
						 
						
							2011-08-08 18:22:10 +00:00  
				
					
						
							
							
								 
						
							
								81b7e11c89 
								
							 
						 
						
							
							
								
								Temporarily revert r135528 which distinguishes between two copies of one  
							
							... 
							
							
							
							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 
							
						 
						
							2011-08-05 00:51:31 +00:00  
				
					
						
							
							
								 
						
							
								0a8d5c6047 
								
							 
						 
						
							
							
								
								Some revisions to Devang's change r136759 for merged global debug info.  
							
							... 
							
							
							
							llvm-svn: 136802 
							
						 
						
							2011-08-03 19:42:51 +00:00  
				
					
						
							
							
								 
						
							
								dc9cbaaf23 
								
							 
						 
						
							
							
								
								Use byte offset, instead of element number, to access merged global.  
							
							... 
							
							
							
							llvm-svn: 136759 
							
						 
						
							2011-08-03 01:25:46 +00:00  
				
					
						
							
							
								 
						
							
								019d255d3e 
								
							 
						 
						
							
							
								
								Fix a lot of typos, improve (but not necessarily fix) grammaros and reflow some  
							
							... 
							
							
							
							lines. No functionality change.
llvm-svn: 136458 
							
						 
						
							2011-07-29 03:49:23 +00:00  
				
					
						
							
							
								 
						
							
								53dc616170 
								
							 
						 
						
							
							
								
								Remove outdated FIXME comment.  
							
							... 
							
							
							
							llvm-svn: 136275 
							
						 
						
							2011-07-27 22:00:01 +00:00  
				
					
						
							
							
								 
						
							
								f098ce2757 
								
							 
						 
						
							
							
								
								It is quiet possible that inlined function body is split into multiple chunks of consequtive instructions. But, there is not any way to describe this in .debug_inline accelerator table used by gdb. However, describe non contiguous ranges of inlined function body appropriately using AT_range of DW_TAG_inlined_subroutine debug info entry.  
							
							... 
							
							
							
							llvm-svn: 136196 
							
						 
						
							2011-07-27 00:34:13 +00:00  
				
					
						
							
							
								 
						
							
								613958c82c 
								
							 
						 
						
							
							
								
								While extracting lexical scopes from machine instruction stream, work on one machine basic block at a time.  
							
							... 
							
							
							
							llvm-svn: 136106 
							
						 
						
							2011-07-26 18:09:53 +00:00  
				
					
						
							
							
								 
						
							
								ddfe66e948 
								
							 
						 
						
							
							
								
								Refactor.  
							
							... 
							
							
							
							llvm-svn: 135633 
							
						 
						
							2011-07-20 23:00:27 +00:00  
				
					
						
							
							
								 
						
							
								8fb9fd6769 
								
							 
						 
						
							
							
								
								There are two ways to map a variable to its lexical scope. Lexical scope 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 
							
						 
						
							2011-07-20 22:18:50 +00:00  
				
					
						
							
							
								 
						
							
								a59b24b090 
								
							 
						 
						
							
							
								
								Distinguish between two copies of one inlined variable.  
							
							... 
							
							
							
							llvm-svn: 135528 
							
						 
						
							2011-07-19 22:31:15 +00:00  
				
					
						
							
							
								 
						
							
								b7cc06366d 
								
							 
						 
						
							
							
								
								Use DebugLoc directly to map inlined functions' instructions to respective lexical scope.  
							
							... 
							
							
							
							llvm-svn: 135302 
							
						 
						
							2011-07-15 21:25:44 +00:00  
				
					
						
							
							
								 
						
							
								f5f352dda5 
								
							 
						 
						
							
							
								
								Eliminate redundant map.  
							
							... 
							
							
							
							llvm-svn: 135278 
							
						 
						
							2011-07-15 16:38:42 +00:00  
				
					
						
							
							
								 
						
							
								b46f3e24ba 
								
							 
						 
						
							
							
								
								Reverting r135232. It's causing infinite looping in DbgScope::openInsnRange.  
							
							... 
							
							
							
							llvm-svn: 135254 
							
						 
						
							2011-07-15 06:26:35 +00:00  
				
					
						
							
							
								 
						
							
								001c4f3ff0 
								
							 
						 
						
							
							
								
								Do not get confused by multiple empty lexical scopes inlined at one location.  
							
							... 
							
							
							
							llvm-svn: 135232 
							
						 
						
							2011-07-15 00:30:39 +00:00  
				
					
						
							
							
								 
						
							
								4771159f9f 
								
							 
						 
						
							
							
								
								Refactor.  
							
							... 
							
							
							
							llvm-svn: 135212 
							
						 
						
							2011-07-14 23:17:49 +00:00  
				
					
						
							
							
								 
						
							
								1f9913fdb2 
								
							 
						 
						
							
							
								
								Eliminate redundant LLVMContext argument.  
							
							... 
							
							
							
							Improve DbgScope->dump() output.
llvm-svn: 135207 
							
						 
						
							2011-07-14 22:30:56 +00:00  
				
					
						
							
							
								 
						
							
								d5234bbced 
								
							 
						 
						
							
							
								
								Simplify.  
							
							... 
							
							
							
							llvm-svn: 135127 
							
						 
						
							2011-07-14 01:52:45 +00:00  
				
					
						
							
							
								 
						
							
								07d61edc30 
								
							 
						 
						
							
							
								
								Simplify and delay extracting DebugLoc elements, scope and InlinedAt, as much as possible.  
							
							... 
							
							
							
							llvm-svn: 135124 
							
						 
						
							2011-07-14 01:14:57 +00:00  
				
					
						
							
							
								 
						
							
								e07ebe32bf 
								
							 
						 
						
							
							
								
								Simplify. Compile unit check inside hasValidLocation() did not add any value.  
							
							... 
							
							
							
							llvm-svn: 135118 
							
						 
						
							2011-07-14 00:20:24 +00:00  
				
					
						
							
							
								 
						
							
								a9195bcff0 
								
							 
						 
						
							
							
								
								Fix typo in DEBUG message.  
							
							... 
							
							
							
							llvm-svn: 135111 
							
						 
						
							2011-07-14 00:04:53 +00:00  
				
					
						
							
							
								 
						
							
								2cce0d103d 
								
							 
						 
						
							
							
								
								Add DEBUG messages.  
							
							... 
							
							
							
							llvm-svn: 135110 
							
						 
						
							2011-07-14 00:03:58 +00:00  
				
					
						
							
							
								 
						
							
								2442a89eb9 
								
							 
						 
						
							
							
								
								Refactor.  
							
							... 
							
							
							
							llvm-svn: 134703 
							
						 
						
							2011-07-08 17:09:57 +00:00  
				
					
						
							
							
								 
						
							
								ed9fd45740 
								
							 
						 
						
							
							
								
								Make provision to have floating point constants in .debug_loc expressions.  
							
							... 
							
							
							
							llvm-svn: 134702 
							
						 
						
							2011-07-08 16:49:43 +00:00  
				
					
						
							
							
								 
						
							
								53b050aec6 
								
							 
						 
						
							
							
								
								Add DEBUG message.  
							
							... 
							
							
							
							llvm-svn: 134643 
							
						 
						
							2011-07-07 21:44:42 +00:00  
				
					
						
							
							
								 
						
							
								b7a328ed27 
								
							 
						 
						
							
							
								
								Add DEBUG messages.  
							
							... 
							
							
							
							llvm-svn: 134572 
							
						 
						
							2011-07-07 00:14:27 +00:00  
				
					
						
							
							
								 
						
							
								92ca8fc927 
								
							 
						 
						
							
							
								
								Remove dead code.  
							
							... 
							
							
							
							llvm-svn: 134561 
							
						 
						
							2011-07-06 23:26:18 +00:00  
				
					
						
							
							
								 
						
							
								f071d72c44 
								
							 
						 
						
							
							
								
								Handle debug info for  i128 constants.  
							
							... 
							
							
							
							llvm-svn: 133821 
							
						 
						
							2011-06-24 20:46:11 +00:00  
				
					
						
							
							
								 
						
							
								440c3b7306 
								
							 
						 
						
							
							
								
								Use path API for path concatenation.  
							
							... 
							
							
							
							llvm-svn: 132668 
							
						 
						
							2011-06-05 14:36:47 +00:00  
				
					
						
							
							
								 
						
							
								e7181b5fdb 
								
							 
						 
						
							
							
								
								A DBG_VALUE that truncates a range does not start another dbg value range.  
							
							... 
							
							
							
							llvm-svn: 132433 
							
						 
						
							2011-06-01 23:00:17 +00:00  
				
					
						
							
							
								 
						
							
								324f843107 
								
							 
						 
						
							
							
								
								Do not drop constant values when a variable's content is described using .debug_loc entries.  
							
							... 
							
							
							
							llvm-svn: 132427 
							
						 
						
							2011-06-01 22:03:25 +00:00  
				
					
						
							
							
								 
						
							
								e9853f25ad 
								
							 
						 
						
							
							
								
								Include global types, that are referenced through local variables, in debug_pubtypes list.  
							
							... 
							
							
							
							llvm-svn: 132371 
							
						 
						
							2011-05-31 22:56:51 +00:00  
				
					
						
							
							
								 
						
							
								d23bfb8a7a 
								
							 
						 
						
							
							
								
								Make size computation less brittle.  
							
							... 
							
							
							
							llvm-svn: 132222 
							
						 
						
							2011-05-27 22:05:41 +00:00  
				
					
						
							
							
								 
						
							
								3c6aed2d98 
								
							 
						 
						
							
							
								
								Select DW_AT_const_value size based on variable size.  
							
							... 
							
							
							
							llvm-svn: 132193 
							
						 
						
							2011-05-27 16:45:18 +00:00  
				
					
						
							
							
								 
						
							
								354fa0798f 
								
							 
						 
						
							
							
								
								Fix debug info for blocks' variable.  
							
							... 
							
							
							
							llvm-svn: 131940 
							
						 
						
							2011-05-24 00:22:25 +00:00  
				
					
						
							
							
								 
						
							
								faaa16ea2c 
								
							 
						 
						
							
							
								
								Remove unnecessary comment.  
							
							... 
							
							
							
							llvm-svn: 131936 
							
						 
						
							2011-05-23 23:16:14 +00:00  
				
					
						
							
							
								 
						
							
								34a6620748 
								
							 
						 
						
							
							
								
								Identify end of prologue (and beginning of function body) using DW_LNS_set_prologue_end line table opcode.  
							
							... 
							
							
							
							llvm-svn: 131194 
							
						 
						
							2011-05-11 19:22:19 +00:00  
				
					
						
							
							
								 
						
							
								2fe0ee1ce2 
								
							 
						 
						
							
							
								
								Rename DwarfRequiresRelocationForStmtList to  
							
							... 
							
							
							
							DwarfRequiresRelocationForSectionOffset as this is not specific to StmtList.
llvm-svn: 131148 
							
						 
						
							2011-05-10 20:35:05 +00:00  
				
					
						
							
							
								 
						
							
								589845d887 
								
							 
						 
						
							
							
								
								Do not ignore InlinedAt while walking up scope chain to find subprogram node.  
							
							... 
							
							
							
							llvm-svn: 131106 
							
						 
						
							2011-05-09 22:14:49 +00:00  
				
					
						
							
							
								 
						
							
								17b532728b 
								
							 
						 
						
							
							
								
								Move CompileUnit::getOrCreateNameSpace() and CompileUnit::addPubType() from DwarfDebug.cpp to DwarfCompileUnit.cpp  
							
							... 
							
							
							
							llvm-svn: 130991 
							
						 
						
							2011-05-06 16:57:54 +00:00  
				
					
						
							
							
								 
						
							
								a716096677 
								
							 
						 
						
							
							
								
								Dead code elimination.  
							
							... 
							
							
							
							llvm-svn: 130984 
							
						 
						
							2011-05-06 14:56:22 +00:00  
				
					
						
							
							
								 
						
							
								d6141e1db2 
								
							 
						 
						
							
							
								
								Remove little used statistical counter.  
							
							... 
							
							
							
							llvm-svn: 130955 
							
						 
						
							2011-05-05 22:00:08 +00:00  
				
					
						
							
							
								 
						
							
								73bc172493 
								
							 
						 
						
							
							
								
								If debug info for inlined function is missing then handle it gracefully.  
							
							... 
							
							
							
							llvm-svn: 130933 
							
						 
						
							2011-05-05 17:54:26 +00:00  
				
					
						
							
							
								 
						
							
								a75589171a 
								
							 
						 
						
							
							
								
								Producing a DW_FORM_addr for DW_AT_stmt_list is probably correct, but  
							
							... 
							
							
							
							it is both inefficient and unexpected by dwarfdump. Change to
a DW_FORM_data4.
While in here, change the predicate name to reflect that the position
is not really absolute (it is an offset), just that the linker needs a
relocation.
llvm-svn: 130846 
							
						 
						
							2011-05-04 17:44:06 +00:00  
				
					
						
							
							
								 
						
							
								c981f6299e 
								
							 
						 
						
							
							
								
								Tighten up check for empty (i.e. no meaningful debug info) module. This fixes dwarf-die2.c test case from gcc test suite.  
							
							... 
							
							
							
							llvm-svn: 130842 
							
						 
						
							2011-05-04 16:34:02 +00:00  
				
					
						
							
							
								 
						
							
								543596d57b 
								
							 
						 
						
							
							
								
								Even if the subprogram is going to use AT_specification, emit DW_AT_MIPS_linkage_name. This helps gdb and fixes var-path-expr.exp regression reported by gdb testsuite.  
							
							... 
							
							
							
							llvm-svn: 130794 
							
						 
						
							2011-05-03 21:50:34 +00:00  
				
					
						
							
							
								 
						
							
								e02e58528a 
								
							 
						 
						
							
							
								
								If the front end has emitted llvm.dbg.cu and other debug info anchors (clang does it now) then use them directly. This saves one scan of entire module, to collect debug info, which in turns saves few machine cycles at compile time.  
							
							... 
							
							
							
							llvm-svn: 130759 
							
						 
						
							2011-05-03 16:45:22 +00:00  
				
					
						
							
							
								 
						
							
								420ab5f180 
								
							 
						 
						
							
							
								
								Emit debug info for global variables first.  
							
							... 
							
							
							
							This works around a limitation in gdb which is reported by following inherit.exp test failures from gdb testsuite.
gdb.cp/inherit.exp: print g_vB.vB::vb
gdb.cp/inherit.exp: print g_vB.vB::vx
gdb.cp/inherit.exp: print g_vC.vC::vc
gdb.cp/inherit.exp: print g_vC.vC::vx
gdb.cp/inherit.exp: print g_vD.vB::vb
...
llvm-svn: 130702 
							
						 
						
							2011-05-02 18:19:17 +00:00  
				
					
						
							
							
								 
						
							
								3e021533cd 
								
							 
						 
						
							
							
								
								Teach dwarf writer to handle complex address expression for .debug_loc entries.  
							
							... 
							
							
							
							This fixes clang generated blocks' variables' debug info.
Radar 9279956.
llvm-svn: 130373 
							
						 
						
							2011-04-28 02:22:40 +00:00  
				
					
						
							
							
								 
						
							
								77dc541b00 
								
							 
						 
						
							
							
								
								Simplify handling of variables with complex address (i.e. blocks variables)  
							
							... 
							
							
							
							llvm-svn: 130339 
							
						 
						
							2011-04-27 22:45:24 +00:00  
				
					
						
							
							
								 
						
							
								2606f4d6d2 
								
							 
						 
						
							
							
								
								Rename a local variable.  
							
							... 
							
							
							
							llvm-svn: 130171 
							
						 
						
							2011-04-25 23:05:21 +00:00  
				
					
						
							
							
								 
						
							
								8ce24133fd 
								
							 
						 
						
							
							
								
								Rename a method to match what it really does.  
							
							... 
							
							
							
							s/addVariableAddress/addFrameVariableAddress/g
llvm-svn: 130170 
							
						 
						
							2011-04-25 23:02:17 +00:00  
				
					
						
							
							
								 
						
							
								2688e4aba6 
								
							 
						 
						
							
							
								
								Do not drop a variable's complex address if it is not based on frame base.  
							
							... 
							
							
							
							Observed this while reading code, so I do not have a test case handy here.
llvm-svn: 130167 
							
						 
						
							2011-04-25 22:52:55 +00:00  
				
					
						
							
							
								 
						
							
								1d6bbd41aa 
								
							 
						 
						
							
							
								
								Let front-end tie subprogram declaration with subprogram definition directly.  
							
							... 
							
							
							
							llvm-svn: 130028 
							
						 
						
							2011-04-22 23:10:17 +00:00  
				
					
						
							
							
								 
						
							
								ad45d911bb 
								
							 
						 
						
							
							
								
								Do not leak argument's DbgVariables.  
							
							... 
							
							
							
							llvm-svn: 130004 
							
						 
						
							2011-04-22 18:09:57 +00:00  
				
					
						
							
							
								 
						
							
								2266aa84a1 
								
							 
						 
						
							
							
								
								Refactor.  
							
							... 
							
							
							
							llvm-svn: 129938 
							
						 
						
							2011-04-21 21:07:35 +00:00  
				
					
						
							
							
								 
						
							
								28f2719d83 
								
							 
						 
						
							
							
								
								Add comment in output stream.  
							
							... 
							
							
							
							llvm-svn: 129921 
							
						 
						
							2011-04-21 17:50:24 +00:00  
				
					
						
							
							
								 
						
							
								17740e70d5 
								
							 
						 
						
							
							
								
								Reduce clutter in asm output. Do not emit source location as comment for each instruction.  
							
							... 
							
							
							
							llvm-svn: 129715 
							
						 
						
							2011-04-18 20:26:49 +00:00  
				
					
						
							
							
								 
						
							
								0ab5e2cded 
								
							 
						 
						
							
							
								
								Fix a ton of comment typos found by codespell.  Patch by  
							
							... 
							
							
							
							Luis Felipe Strano Moraes!
llvm-svn: 129558 
							
						 
						
							2011-04-15 05:18:47 +00:00  
				
					
						
							
							
								 
						
							
								e141234940 
								
							 
						 
						
							
							
								
								Remove extra bytes that were added for gdb.  We do not have good poiner to understand actual reason behind this fixme. Spot checking suggest that newer gdb does not need this.  
							
							... 
							
							
							
							llvm-svn: 129461 
							
						 
						
							2011-04-13 19:41:17 +00:00  
				
					
						
							
							
								 
						
							
								28dce70364 
								
							 
						 
						
							
							
								
								Simplify. There is no need to use static variable.  
							
							... 
							
							
							
							llvm-svn: 129406 
							
						 
						
							2011-04-12 23:10:47 +00:00  
				
					
						
							
							
								 
						
							
								f20c4f715f 
								
							 
						 
						
							
							
								
								This mechanical patch moves type handling into CompileUnit from DwarfDebug. In case of multiple compile unit in one object file, each compile unit is responsible for its own set of type entries anyway. This refactoring makes this obvious.  
							
							... 
							
							
							
							llvm-svn: 129402 
							
						 
						
							2011-04-12 22:53:02 +00:00  
				
					
						
							
							
								 
						
							
								5eb4319dba 
								
							 
						 
						
							
							
								
								Refactor CompileUnit into a separate header.  
							
							... 
							
							
							
							llvm-svn: 129367 
							
						 
						
							2011-04-12 17:40:32 +00:00  
				
					
						
							
							
								 
						
							
								778947c203 
								
							 
						 
						
							
							
								
								Simplify array bound checks and clarify comments.  One element array can have same non-zero number as lower bound as well as upper bound.  
							
							... 
							
							
							
							llvm-svn: 129170 
							
						 
						
							2011-04-08 23:39:38 +00:00  
				
					
						
							
							
								 
						
							
								e39647951b 
								
							 
						 
						
							
							
								
								Do not emit DW_AT_upper_bound and DW_AT_lower_bound for unbouded array.  
							
							... 
							
							
							
							If lower bound is more then upper bound then consider it is an unbounded array.
An array is unbounded if non-zero lower bound is same as upper bound.
If lower bound and upper bound are zero than array has one element.
llvm-svn: 129156 
							
						 
						
							2011-04-08 21:55:10 +00:00  
				
					
						
							
							
								 
						
							
								9f738849ab 
								
							 
						 
						
							
							
								
								Add support to encode function's template parameters.  
							
							... 
							
							
							
							llvm-svn: 128947 
							
						 
						
							2011-04-05 22:52:06 +00:00  
				
					
						
							
							
								 
						
							
								d4e20eacf0 
								
							 
						 
						
							
							
								
								Refactor.  
							
							... 
							
							
							
							llvm-svn: 128929 
							
						 
						
							2011-04-05 21:08:24 +00:00  
				
					
						
							
							
								 
						
							
								651d06e036 
								
							 
						 
						
							
							
								
								Do not emit empty name.  
							
							... 
							
							
							
							llvm-svn: 128914 
							
						 
						
							2011-04-05 20:14:13 +00:00  
				
					
						
							
							
								 
						
							
								9a624fa993 
								
							 
						 
						
							
							
								
								Collect and coalesce DBG_VALUE instructions before emitting the function.  
							
							... 
							
							
							
							Correctly terminate the range of register DBG_VALUEs when the register is
clobbered or when the basic block ends.
The code is now ready to deal with variables that are sometimes in a register
and sometimes on the stack. We just need to teach emitDebugLoc to say 'stack
slot'.
llvm-svn: 128327 
							
						 
						
							2011-03-26 02:19:36 +00:00  
				
					
						
							
							
								 
						
							
								1886a4c823 
								
							 
						 
						
							
							
								
								Emit less labels for debug info and stop emitting .loc directives for DBG_VALUEs.  
							
							... 
							
							
							
							The .dot directives don't need labels, that is a leftover from when we created
line number info manually.
Instructions following a DBG_VALUE can share its label since the DBG_VALUE
doesn't produce any code.
llvm-svn: 128284 
							
						 
						
							2011-03-25 17:20:59 +00:00  
				
					
						
							
							
								 
						
							
								e01b75cb89 
								
							 
						 
						
							
							
								
								Keep track of directory namd and fIx regression caused by Rafael's patch r119613.  
							
							... 
							
							
							
							A better approach would be to move source id handling inside MC.
llvm-svn: 128233 
							
						 
						
							2011-03-24 20:30:50 +00:00  
				
					
						
							
							
								 
						
							
								a87d80cdca 
								
							 
						 
						
							
							
								
								Don't coalesce identical DBG_VALUE instructions prematurely.  
							
							... 
							
							
							
							Each of these instructions may have a RegsClobberInsn entry that can't be
ignored. Consecutive ranges are coalesced later when DwarfDebug::emitDebugLoc
merges entries.
llvm-svn: 128155 
							
						 
						
							2011-03-23 18:37:30 +00:00  
				
					
						
							
							
								 
						
							
								ec0ac3ca40 
								
							 
						 
						
							
							
								
								Reapply r128045 and r128051 with fixes.  
							
							... 
							
							
							
							This will extend the ranges of debug info variables in registers until they are
clobbered.
Fix 1: Don't mistake DBG_VALUE instructions referring to incoming arguments on
the stack with DBG_VALUE instructions referring to variables in the frame
pointer. This fixes the gdb test-suite failure.
Fix 2: Don't trace through copies to physical registers setting up call
arguments. These registers are call clobbered, and the source register is more
likely to be a callee-saved register that can be extended through the call
instruction.
llvm-svn: 128114 
							
						 
						
							2011-03-22 22:33:08 +00:00  
				
					
						
							
							
								 
						
							
								b0f98bb5e9 
								
							 
						 
						
							
							
								
								Revert r128045 and r128051, debug info enhancements.  
							
							... 
							
							
							
							Temporarily reverting these to see if we can get llvm-objdump to link. Hopefully this is not the problem.
llvm-svn: 128097 
							
						 
						
							2011-03-22 19:18:42 +00:00  
				
					
						
							
							
								 
						
							
								c6f4af028d 
								
							 
						 
						
							
							
								
								Clear map after use.  
							
							... 
							
							
							
							This is likely to fix the segfault in llvm-gcc-x86_64-darwin10-cross-mingw32.
llvm-svn: 128051 
							
						 
						
							2011-03-22 01:03:24 +00:00  
				
					
						
							
							
								 
						
							
								9c057ee440 
								
							 
						 
						
							
							
								
								Dont emit 'DBG_VALUE %noreg, ...' to terminate user variable ranges.  
							
							... 
							
							
							
							These ranges get completely jumbled by the post-ra scheduler, and it is not
really reasonable to expect it to make sense of them.
Instead, teach DwarfDebug to notice when user variables in registers are
clobbered, and terminate the ranges there.
llvm-svn: 128045 
							
						 
						
							2011-03-22 00:21:41 +00:00  
				
					
						
							
							
								 
						
							
								fd95b016fb 
								
							 
						 
						
							
							
								
								Revert r127757, "Patch to a fix dwarf relocation problem on ARM. One-line fix  
							
							... 
							
							
							
							plus the test where it used to break.", which broke Clang self-host of a
Debug+Asserts compiler, on OS X.
llvm-svn: 127763 
							
						 
						
							2011-03-16 22:16:39 +00:00  
				
					
						
							
							
								 
						
							
								a3aeafeb35 
								
							 
						 
						
							
							
								
								Patch to a fix dwarf relocation problem on ARM. One-line fix plus the test where it used to break.  
							
							... 
							
							
							
							llvm-svn: 127757 
							
						 
						
							2011-03-16 21:05:52 +00:00  
				
					
						
							
							
								 
						
							
								63b3e76370 
								
							 
						 
						
							
							
								
								Fix typo.  
							
							... 
							
							
							
							llvm-svn: 126962 
							
						 
						
							2011-03-03 21:49:41 +00:00  
				
					
						
							
							
								 
						
							
								34a7ab400e 
								
							 
						 
						
							
							
								
								Fix thinko in previous check-in.  
							
							... 
							
							
							
							Add comment.
llvm-svn: 126959 
							
						 
						
							2011-03-03 20:08:10 +00:00  
				
					
						
							
							
								 
						
							
								4ab660b077 
								
							 
						 
						
							
							
								
								llvm::Function argument count is not a good indicator of how many arugments does the function have at source level. If we need more space, just resize vector conservatively. This vector is only used once per function.  
							
							... 
							
							
							
							llvm-svn: 126957 
							
						 
						
							2011-03-03 20:02:02 +00:00  
				
					
						
							
							
								 
						
							
								6c622ef1bc 
								
							 
						 
						
							
							
								
								If argument numbering is encoded in metadata then emit arguments' debug info in that order.  
							
							... 
							
							
							
							llvm-svn: 126794 
							
						 
						
							2011-03-01 22:58:55 +00:00  
				
					
						
							
							
								 
						
							
								fcf51fd298 
								
							 
						 
						
							
							
								
								Roll out r126425 and r126450 to see if it fixes the failures on the buildbots.  
							
							... 
							
							
							
							llvm-svn: 126488 
							
						 
						
							2011-02-25 16:30:32 +00:00  
				
					
						
							
							
								 
						
							
								b037383a35 
								
							 
						 
						
							
							
								
								Enable DebugInfo support for COFF object files.  
							
							... 
							
							
							
							Patch by Nathan Jeffords!
llvm-svn: 126425 
							
						 
						
							2011-02-24 21:04:00 +00:00  
				
					
						
							
							
								 
						
							
								a5d93247c2 
								
							 
						 
						
							
							
								
								Do not use DIFactory.  
							
							... 
							
							
							
							llvm-svn: 126397 
							
						 
						
							2011-02-24 18:49:30 +00:00  
				
					
						
							
							
								 
						
							
								7b0f796c55 
								
							 
						 
						
							
							
								
								Use DW_FORM_data2 for DW_AT_language and let users use DW_LANG_lo_user=0x8000 to DW_LANG_hi_user=0xffff range.  
							
							... 
							
							
							
							llvm-svn: 126339 
							
						 
						
							2011-02-23 22:37:04 +00:00  
				
					
						
							
							
								 
						
							
								5f1b4cdda1 
								
							 
						 
						
							
							
								
								Do not emit empty DW_TAG_lexical_block DIEs.  In one test case, size of debug info reduced by almost 7%.  
							
							... 
							
							
							
							llvm-svn: 126009 
							
						 
						
							2011-02-19 01:31:27 +00:00  
				
					
						
							
							
								 
						
							
								d12c0a2764 
								
							 
						 
						
							
							
								
								Ignore DBG_VALUE machine instructions while constructing instruction ranges based on location info.  
							
							... 
							
							
							
							Machine instruction range consisting of only DBG_VALUE MIs only contributes consecutive labels in assembly output, which is harmless, and empty scope entry in DebugInfo, which confuses debugger tools.
llvm-svn: 125577 
							
						 
						
							2011-02-15 17:56:09 +00:00  
				
					
						
							
							
								 
						
							
								116a9d7c38 
								
							 
						 
						
							
							
								
								Merge .debug_loc entries whenever possible to reduce debug_loc size.  
							
							... 
							
							
							
							llvm-svn: 124904 
							
						 
						
							2011-02-04 22:57:18 +00:00  
				
					
						
							
							
								 
						
							
								be933b470a 
								
							 
						 
						
							
							
								
								Add support to describe template value parameter in debug info.  
							
							... 
							
							
							
							llvm-svn: 124755 
							
						 
						
							2011-02-02 22:35:53 +00:00  
				
					
						
							
							
								 
						
							
								3a9e65efb6 
								
							 
						 
						
							
							
								
								Add support to describe template parameter type in debug info.  
							
							... 
							
							
							
							llvm-svn: 124752 
							
						 
						
							2011-02-02 21:38:25 +00:00  
				
					
						
							
							
								 
						
							
								2d9e532a3a 
								
							 
						 
						
							
							
								
								Fix debug info for merged global.  
							
							... 
							
							
							
							llvm-svn: 123862 
							
						 
						
							2011-01-20 00:02:16 +00:00  
				
					
						
							
							
								 
						
							
								8698f09dbd 
								
							 
						 
						
							
							
								
								Fix register address expression. Patch by Ken Dyck.  
							
							... 
							
							
							
							llvm-svn: 123856 
							
						 
						
							2011-01-19 23:04:47 +00:00  
				
					
						
							
							
								 
						
							
								447cb38fbe 
								
							 
						 
						
							
							
								
								Appropriately truncate debug info range in dwarf output.  
							
							... 
							
							
							
							This is not yet completely enabled.
llvm-svn: 123274 
							
						 
						
							2011-01-11 21:42:10 +00:00  
				
					
						
							
							
								 
						
							
								2f93128109 
								
							 
						 
						
							
							
								
								Rename TargetFrameInfo into TargetFrameLowering. Also, put couple of FIXMEs and fixes here and there.  
							
							... 
							
							
							
							llvm-svn: 123170 
							
						 
						
							2011-01-10 12:39:04 +00:00  
				
					
						
							
							
								 
						
							
								acbee0b0d9 
								
							 
						 
						
							
							
								
								Speculatively revert r123032.  
							
							... 
							
							
							
							llvm-svn: 123039 
							
						 
						
							2011-01-07 22:33:41 +00:00  
				
					
						
							
							
								 
						
							
								6381e1584c 
								
							 
						 
						
							
							
								
								Appropriately truncate debug info range in dwarf output.  
							
							... 
							
							
							
							Enable live debug variables pass.
llvm-svn: 123032 
							
						 
						
							2011-01-07 21:30:41 +00:00  
				
					
						
							
							
								 
						
							
								70eb982843 
								
							 
						 
						
							
							
								
								Emit 128 bit constant.  
							
							... 
							
							
							
							This fixes PR 8913 crash.
llvm-svn: 122971 
							
						 
						
							2011-01-06 21:39:25 +00:00  
				
					
						
							
							
								 
						
							
								c26da9005b 
								
							 
						 
						
							
							
								
								DW_FORM_data1 may not provide sufficient room for vtable index, use _udata instead.  
							
							... 
							
							
							
							This fixes radar 8730409.
llvm-svn: 121323 
							
						 
						
							2010-12-09 00:10:40 +00:00  
				
					
						
							
							
								 
						
							
								bca5b25721 
								
							 
						 
						
							
							
								
								Undefined value in reg 0 may need a marker to identify end of source range.  
							
							... 
							
							
							
							This will be used to truncate live range of DBG_VALUE instruction by register allocator and friends.
llvm-svn: 121061 
							
						 
						
							2010-12-06 22:48:22 +00:00  
				
					
						
							
							
								 
						
							
								447762da85 
								
							 
						 
						
							
							
								
								Merge System into Support.  
							
							... 
							
							
							
							llvm-svn: 120298 
							
						 
						
							2010-11-29 18:16:10 +00:00  
				
					
						
							
							
								 
						
							
								4687778398 
								
							 
						 
						
							
							
								
								Move some more hooks to TargetFrameInfo  
							
							... 
							
							
							
							llvm-svn: 119904 
							
						 
						
							2010-11-20 15:59:32 +00:00  
				
					
						
							
							
								 
						
							
								14ee344944 
								
							 
						 
						
							
							
								
								Move getInitialFrameState() to TargetFrameInfo  
							
							... 
							
							
							
							llvm-svn: 119754 
							
						 
						
							2010-11-18 23:25:52 +00:00  
				
					
						
							
							
								 
						
							
								67c6ab8865 
								
							 
						 
						
							
							
								
								Change CodeGen to use .loc directives. This produces a lot more readable output  
							
							... 
							
							
							
							and testing is easier.  A good example is the unknown-location.ll test that
now can just look for ".loc 1 0 0".  We also don't use a DW_LNE_set_address for
every address change anymore.
llvm-svn: 119613 
							
						 
						
							2010-11-18 02:04:25 +00:00  
				
					
						
							
							
								 
						
							
								53a40df6ea 
								
							 
						 
						
							
							
								
								Remove DW_AT_start_scope support. It is incomplete and superseeded by location entries support.  
							
							... 
							
							
							
							llvm-svn: 118940 
							
						 
						
							2010-11-12 23:20:42 +00:00  
				
					
						
							
							
								 
						
							
								364bf04267 
								
							 
						 
						
							
							
								
								Take care of special characters while creating named MDNode name to hold function specific local variable's info.  
							
							... 
							
							
							
							This fixes radar 8653152. I am checking in testcase as a separate check-in.
llvm-svn: 118726 
							
						 
						
							2010-11-10 22:19:21 +00:00  
				
					
						
							
							
								 
						
							
								e755966913 
								
							 
						 
						
							
							
								
								Simplify.  
							
							... 
							
							
							
							llvm-svn: 118027 
							
						 
						
							2010-11-02 17:37:00 +00:00  
				
					
						
							
							
								 
						
							
								6e0d58968d 
								
							 
						 
						
							
							
								
								Ignore empty blocks.  
							
							... 
							
							
							
							llvm-svn: 117615 
							
						 
						
							2010-10-28 22:11:59 +00:00  
				
					
						
							
							
								 
						
							
								1c75865037 
								
							 
						 
						
							
							
								
								Do not work too hard to find type's file info. There is a special field to record file info.  
							
							... 
							
							
							
							llvm-svn: 117588 
							
						 
						
							2010-10-28 19:50:08 +00:00  
				
					
						
							
							
								 
						
							
								c4b69051b7 
								
							 
						 
						
							
							
								
								Technically DIFile scope should also be handled here.  
							
							... 
							
							
							
							llvm-svn: 117563 
							
						 
						
							2010-10-28 17:30:52 +00:00  
				
					
						
							
							
								 
						
							
								b5694e702c 
								
							 
						 
						
							
							
								
								s/beginScope/beginInstruction/g  
							
							... 
							
							
							
							s/endScope/endInstruction/g
llvm-svn: 117376 
							
						 
						
							2010-10-26 17:49:02 +00:00  
				
					
						
							
							
								 
						
							
								90b2ac2696 
								
							 
						 
						
							
							
								
								For statistics that are only used in functions declared in !NDEBUG, wrap the  
							
							... 
							
							
							
							declarations in !NDEBUG to avoid -Wunused-variable warnings. Patch by
Matt Beaumont-Gay!
llvm-svn: 117345 
							
						 
						
							2010-10-26 00:51:57 +00:00  
				
					
						
							
							
								 
						
							
								a86114b961 
								
							 
						 
						
							
							
								
								Add simple counter to count no. of basic blocks without any line number information. At -O0, these basic block coule cause less than optimial debugging experience.  
							
							... 
							
							
							
							llvm-svn: 117307 
							
						 
						
							2010-10-25 20:45:32 +00:00  
				
					
						
							
							
								 
						
							
								dd1c289a6a 
								
							 
						 
						
							
							
								
								Line number 0 indicates there is no source line/file name info available for this construct.  
							
							... 
							
							
							
							llvm-svn: 116061 
							
						 
						
							2010-10-08 17:18:54 +00:00  
				
					
						
							
							
								 
						
							
								3a24f9230a 
								
							 
						 
						
							
							
								
								Provie a clearner interface so that FE can decide whether a function has prototype or not.  
							
							... 
							
							
							
							llvm-svn: 115988 
							
						 
						
							2010-10-07 22:03:01 +00:00  
				
					
						
							
							
								 
						
							
								9a33ec24eb 
								
							 
						 
						
							
							
								
								Add support for DW_TAG_unspecified_parameters.  
							
							... 
							
							
							
							llvm-svn: 115833 
							
						 
						
							2010-10-06 20:50:40 +00:00