4ee0d03274 
								
							 
						 
						
							
							
								
								MC: Add support for disabling "temporary label" behavior. Useful for debugging  
							
							... 
							
							
							
							on Darwin.
llvm-svn: 128430 
							
						 
						
							2011-03-28 22:49:15 +00:00  
				
					
						
							
							
								 
						
							
								aea4958ea6 
								
							 
						 
						
							
							
								
								Remove duplicated code.  
							
							... 
							
							
							
							llvm-svn: 124054 
							
						 
						
							2011-01-23 04:28:49 +00:00  
				
					
						
							
							
								 
						
							
								0a017a6db2 
								
							 
						 
						
							
							
								
								Fixed version of 121434 with no new memory leaks.  
							
							... 
							
							
							
							llvm-svn: 121471 
							
						 
						
							2010-12-10 07:39:47 +00:00  
				
					
						
							
							
								 
						
							
								a945a34c73 
								
							 
						 
						
							
							
								
								Revert my previous patch to make the valgrind bots happy.  
							
							... 
							
							
							
							llvm-svn: 121461 
							
						 
						
							2010-12-10 04:01:09 +00:00  
				
					
						
							
							
								 
						
							
								56eb741237 
								
							 
						 
						
							
							
								
								Initial support for the cfi directives. This is just enough to get  
							
							... 
							
							
							
							f:
        .cfi_startproc
        nop
        .cfi_endproc
assembled (on ELF).
llvm-svn: 121434 
							
						 
						
							2010-12-09 23:48:29 +00:00  
				
					
						
							
							
								 
						
							
								5fe5f45352 
								
							 
						 
						
							
							
								
								Rename temporary symbols if they conflict with artificial symbols created  
							
							... 
							
							
							
							by the assembler. This was blocking parsing any large .s produced by clang for
example.
Fixes PR8596.
llvm-svn: 120603 
							
						 
						
							2010-12-01 20:46:11 +00:00  
				
					
						
							
							
								 
						
							
								f13f442b1a 
								
							 
						 
						
							
							
								
								Fix Whitespace.  
							
							... 
							
							
							
							llvm-svn: 120166 
							
						 
						
							2010-11-26 04:16:08 +00:00  
				
					
						
							
							
								 
						
							
								c653a895c8 
								
							 
						 
						
							
							
								
								Add .loc methods to the streamer.  
							
							... 
							
							
							
							Next: Add support for the !HasDotLocAndDotFile case to the MCAsmStreamer
and then switch codegen to use it.
llvm-svn: 119384 
							
						 
						
							2010-11-16 21:20:32 +00:00  
				
					
						
							
							
								 
						
							
								f01b622902 
								
							 
						 
						
							
							
								
								Parse and remember discriminators in .loc line. I try to output them with  
							
							... 
							
							
							
							another patch.
This lets us parse a bit more of the gcc 4.5 output.
llvm-svn: 118975 
							
						 
						
							2010-11-13 03:18:27 +00:00  
				
					
						
							
							
								 
						
							
								a3e9a2298d 
								
							 
						 
						
							
							
								
								Initial comdat implementation.  
							
							... 
							
							
							
							llvm-svn: 118805 
							
						 
						
							2010-11-11 18:13:52 +00:00  
				
					
						
							
							
								 
						
							
								36ef57d2eb 
								
							 
						 
						
							
							
								
								Use MCSectionELF in places we know we have an ELF section.  
							
							... 
							
							
							
							llvm-svn: 118699 
							
						 
						
							2010-11-10 19:05:07 +00:00  
				
					
						
							
							
								 
						
							
								9bb44a5ce8 
								
							 
						 
						
							
							
								
								Fixed version of 118639 with an extra assert to catch similar problems  
							
							... 
							
							
							
							earlier. Implicit bool -> int conversions are evil!
llvm-svn: 118651 
							
						 
						
							2010-11-09 23:42:07 +00:00  
				
					
						
							
							
								 
						
							
								33048f069f 
								
							 
						 
						
							
							
								
								Revert previous patch. Missed a case.  
							
							... 
							
							
							
							llvm-svn: 118645 
							
						 
						
							2010-11-09 22:54:38 +00:00  
				
					
						
							
							
								 
						
							
								4bdd2724e3 
								
							 
						 
						
							
							
								
								Remove IsExplicit. It was always false.  
							
							... 
							
							
							
							llvm-svn: 118639 
							
						 
						
							2010-11-09 22:37:44 +00:00  
				
					
						
							
							
								 
						
							
								a68d004d88 
								
							 
						 
						
							
							
								
								Incorporate suggestions by Daniel Dunbar after his review.  Thanks Daniel!  
							
							... 
							
							
							
							1) Changed ValidateDwarfFileNumber() to isValidDwarfFileNumber() to be better
   named.  Since it is just a predicate and isn't actually changing any state.
2) Added a missing return in the comments for setCurrentDwarfLoc() in 
   include/llvm/MC/MCContext.h for fix formatting.
3) Changed clearDwarfLocSeen() to ClearDwarfLocSeen() since it does change
   state.
4) Simplified the last test in isValidDwarfFileNumber() to just a one line
   boolean test of MCDwarfFiles[FileNumber] != 0 for the final return statement.
llvm-svn: 115551 
							
						 
						
							2010-10-04 20:17:24 +00:00  
				
					
						
							
							
								 
						
							
								efbdbe5565 
								
							 
						 
						
							
							
								
								Move logic of determining ELF entsize from the .s printer to initialization  
							
							... 
							
							
							
							time. That way, the EntrySize field is initialized for other code paths, 
namely, the .ll -> .o code path.
llvm-svn: 115141 
							
						 
						
							2010-09-30 05:59:22 +00:00  
				
					
						
							
							
								 
						
							
								d94dacf829 
								
							 
						 
						
							
							
								
								This is the second of three patches to implement support for the .loc directive  
							
							... 
							
							
							
							and output the dwarf line number tables.  This takes the current loc info after
an instruction is assembled and saves the needed info into an object that has
vector and for each section.  These objects will be used for the final patch to 
build and emit the encoded dwarf line number tables.  Again for now this is only
in the Mach-O streamer but at some point will move to a more generic place.
llvm-svn: 112668 
							
						 
						
							2010-08-31 22:55:11 +00:00  
				
					
						
							
							
								 
						
							
								1264b7cab8 
								
							 
						 
						
							
							
								
								First bit of support for the dwarf .loc directive.  This patch updates the  
							
							... 
							
							
							
							needed parsing for the .loc directive and saves the current info from that
into the context.  The next patch will take the current loc info after an
instruction is assembled and save that info into a vector for each section for
use to build the line number tables.  The patch after that will encode the info
from those vectors into the output file as the dwarf line tables.
llvm-svn: 111956 
							
						 
						
							2010-08-24 20:32:42 +00:00  
				
					
						
							
							
								 
						
							
								d83b927897 
								
							 
						 
						
							
							
								
								Add ELF ObjectWriter and Streamer support.  
							
							... 
							
							
							
							llvm-svn: 111172 
							
						 
						
							2010-08-16 18:35:43 +00:00  
				
					
						
							
							
								 
						
							
								7221b76c32 
								
							 
						 
						
							
							
								
								Next bit of support for the dwarf .file directive.  This patch takes the  
							
							... 
							
							
							
							previously collected info from the .file directives and outputs the encoded
bytes for it.  For now this is only in the Mach-O streamer but at some point
will move to a more generic place.
llvm-svn: 110617 
							
						 
						
							2010-08-09 22:52:14 +00:00  
				
					
						
							
							
								 
						
							
								bccfec653d 
								
							 
						 
						
							
							
								
								Stop leaking std::strings in GetDwarfFile.  
							
							... 
							
							
							
							llvm-svn: 109746 
							
						 
						
							2010-07-29 13:53:19 +00:00  
				
					
						
							
							
								 
						
							
								e5930f142a 
								
							 
						 
						
							
							
								
								Added first bit of support for the dwarf .file directive.  This patch collects  
							
							... 
							
							
							
							the info from the .file directive and makes file and directory tables that
will eventually be put out as part of the dwarf info in the output file.
llvm-svn: 109651 
							
						 
						
							2010-07-28 20:55:35 +00:00  
				
					
						
							
							
								 
						
							
								41b4a6b36a 
								
							 
						 
						
							
							
								
								Convert some tab stops into spaces.  
							
							... 
							
							
							
							llvm-svn: 108130 
							
						 
						
							2010-07-12 08:16:59 +00:00  
				
					
						
							
							
								 
						
							
								e233dda2e2 
								
							 
						 
						
							
							
								
								Added the darwin .secure_log_unique and .secure_log_reset directives.  
							
							... 
							
							
							
							llvm-svn: 107077 
							
						 
						
							2010-06-28 21:45:58 +00:00  
				
					
						
							
							
								 
						
							
								ab7be75e3f 
								
							 
						 
						
							
							
								
								Simplify MCContext::(Next|Get)Instance  
							
							... 
							
							
							
							- Allocate MCLabels in the context so they don't leak.
- Avoid duplicated densemap lookup.
llvm-svn: 104020 
							
						 
						
							2010-05-18 12:15:34 +00:00  
				
					
						
							
							
								 
						
							
								0510b48fd9 
								
							 
						 
						
							
							
								
								Added support in MC for Directional Local Labels.  
							
							... 
							
							
							
							llvm-svn: 103989 
							
						 
						
							2010-05-17 23:08:19 +00:00  
				
					
						
							
							
								 
						
							
								028449325b 
								
							 
						 
						
							
							
								
								add COFF support for COMDAT sections, patch by Nathan Jeffords!  
							
							... 
							
							
							
							llvm-svn: 103304 
							
						 
						
							2010-05-07 21:49:09 +00:00  
				
					
						
							
							
								 
						
							
								87cffa9498 
								
							 
						 
						
							
							
								
								switch MCSectionCOFF from a syntactic to semantic representation,  
							
							... 
							
							
							
							patch by Peter Housel!
llvm-svn: 103267 
							
						 
						
							2010-05-07 17:17:41 +00:00  
				
					
						
							
							
								 
						
							
								5418dd5fda 
								
							 
						 
						
							
							
								
								move elf section uniquing to MCContext.  Along the way  
							
							... 
							
							
							
							merge XCore's section into MCSectionELF
llvm-svn: 100812 
							
						 
						
							2010-04-08 21:26:26 +00:00  
				
					
						
							
							
								 
						
							
								2073112fc0 
								
							 
						 
						
							
							
								
								move macho section uniquing from MCParser and TLOF to MCContext where  
							
							... 
							
							
							
							the compiler and asmparser now unique to the same sections.  This fixes
rdar://7835021.
llvm-svn: 100807 
							
						 
						
							2010-04-08 20:30:37 +00:00  
				
					
						
							
							
								 
						
							
								9897043928 
								
							 
						 
						
							
							
								
								Rip out the 'is temporary' nonsense from the MCContext interface to  
							
							... 
							
							
							
							create symbols.  It is extremely error prone and a source of a lot
of the remaining integrated assembler bugs on x86-64.
This fixes rdar://7807601.
llvm-svn: 99902 
							
						 
						
							2010-03-30 18:10:53 +00:00  
				
					
						
							
							
								 
						
							
								aed00fa039 
								
							 
						 
						
							
							
								
								fix GetOrCreateTemporarySymbol to require a name, clients  
							
							... 
							
							
							
							should use CreateTempSymbol() if they don't care about the
name.
llvm-svn: 98712 
							
						 
						
							2010-03-17 05:41:18 +00:00  
				
					
						
							
							
								 
						
							
								133487696a 
								
							 
						 
						
							
							
								
								fix a memory leak yjasskin pointed out: MCSymbol is bump pointer  
							
							... 
							
							
							
							allocated and thus not freed.  This is cool except that it contains
and std::string so the string data didn't get freed.  In any case
there is no reason to redundantly store the string data in the 
MCSymbol anyway, just make the MCSymbol ref the string data in the
MCContext StringMap.
llvm-svn: 98536 
							
						 
						
							2010-03-15 06:15:35 +00:00  
				
					
						
							
							
								 
						
							
								073d817958 
								
							 
						 
						
							
							
								
								add a new CreateTempSymbol method, the use case for  
							
							... 
							
							
							
							CreateTempSymbol vs GetOrCreateTemporarySymbol are
completely different.
llvm-svn: 98486 
							
						 
						
							2010-03-14 08:23:30 +00:00  
				
					
						
							
							
								 
						
							
								d3691dd04b 
								
							 
						 
						
							
							
								
								enhance MCContext::GetOrCreateTemporarySymbol() to create a new symbol  
							
							... 
							
							
							
							with an arbitrary unique name.
llvm-svn: 98294 
							
						 
						
							2010-03-11 22:56:10 +00:00  
				
					
						
							
							
								 
						
							
								768ea2add2 
								
							 
						 
						
							
							
								
								change MCContext to always have an MCAsmInfo.  
							
							... 
							
							
							
							llvm-svn: 98293 
							
						 
						
							2010-03-11 22:53:35 +00:00  
				
					
						
							
							
								 
						
							
								216e7299d7 
								
							 
						 
						
							
							
								
								empty symbols aren't possible, the mcsymbol ctor aborts on them.  
							
							... 
							
							
							
							llvm-svn: 98288 
							
						 
						
							2010-03-11 21:38:58 +00:00  
				
					
						
							
							
								 
						
							
								7e3283c055 
								
							 
						 
						
							
							
								
								Remove unneeded includes.  
							
							... 
							
							
							
							llvm-svn: 98167 
							
						 
						
							2010-03-10 17:56:05 +00:00  
				
					
						
							
							
								 
						
							
								b973ea88b5 
								
							 
						 
						
							
							
								
								eliminate MCContext::CreateSymbol and CreateTemporarySymbol.  
							
							... 
							
							
							
							Add a new GetOrCreateTemporarySymbol method and a version that
takes a twine.
llvm-svn: 98118 
							
						 
						
							2010-03-10 01:29:27 +00:00  
				
					
						
							
							
								 
						
							
								ad36e8aceb 
								
							 
						 
						
							
							
								
								Pass StringRef by value.  
							
							... 
							
							
							
							llvm-svn: 86251 
							
						 
						
							2009-11-06 10:58:06 +00:00  
				
					
						
							
							
								 
						
							
								86dfd73c38 
								
							 
						 
						
							
							
								
								add a twine version of MCContext::GetOrCreateSymbol.  
							
							... 
							
							
							
							llvm-svn: 84561 
							
						 
						
							2009-10-19 22:49:00 +00:00  
				
					
						
							
							
								 
						
							
								584a1b25ef 
								
							 
						 
						
							
							
								
								MC: Switch MCContext value table to storing MCExprs.  
							
							... 
							
							
							
							llvm-svn: 84228 
							
						 
						
							2009-10-16 01:33:11 +00:00  
				
					
						
							
							
								 
						
							
								e73b267301 
								
							 
						 
						
							
							
								
								llvm-mc/Mach-O: Don't put assembler temporary labels in the symbol table.  
							
							... 
							
							
							
							- I moved section creation back into AsmParser. I think policy decisions like
   this should be pushed higher, not lower, when possible (in addition the
   assembler has flags which change this behavior, for example).
llvm-svn: 80162 
							
						 
						
							2009-08-26 22:13:22 +00:00  
				
					
						
							
							
								 
						
							
								ffda9eb31a 
								
							 
						 
						
							
							
								
								llvm-mc: Change MCContext value table to take const MCSymbol*s.  
							
							... 
							
							
							
							llvm-svn: 80079 
							
						 
						
							2009-08-26 09:16:57 +00:00  
				
					
						
							
							
								 
						
							
								04b4700ebc 
								
							 
						 
						
							
							
								
								sink uniquing of sections out of MCContext into the ELF and PECOFF TLOF implementations.  
							
							... 
							
							
							
							MCContext no longer maintains a string -> section map.
llvm-svn: 78874 
							
						 
						
							2009-08-13 00:37:15 +00:00  
				
					
						
							
							
								 
						
							
								b691316838 
								
							 
						 
						
							
							
								
								add some comments: MCContext owns the MCSections, but it bump pointer allocates  
							
							... 
							
							
							
							them, so it doesn't have to explicitly free them.
llvm-svn: 78870 
							
						 
						
							2009-08-13 00:21:53 +00:00  
				
					
						
							
							
								 
						
							
								c10132aa79 
								
							 
						 
						
							
							
								
								split MCSection stuff out to its own .cpp file, add a new  
							
							... 
							
							
							
							MCSectionWithKind subclass of MCSection.
llvm-svn: 77684 
							
						 
						
							2009-07-31 17:02:00 +00:00  
				
					
						
							
							
								 
						
							
								b37f29b6f3 
								
							 
						 
						
							
							
								
								create sections with MCSection::Create instead of Context->getOrCreateSection.  
							
							... 
							
							
							
							This is needed to allow polymorphic sections.
llvm-svn: 77680 
							
						 
						
							2009-07-31 16:43:49 +00:00  
				
					
						
							
							
								 
						
							
								a87555aaa8 
								
							 
						 
						
							
							
								
								Move MCContext and friends to StringRef based APIs.  
							
							... 
							
							
							
							llvm-svn: 77251 
							
						 
						
							2009-07-27 21:22:30 +00:00  
				
					
						
							
							
								 
						
							
								f782ebc0cb 
								
							 
						 
						
							
							
								
								We decided to not worry about Atoms for now, it should be straightforward to  
							
							... 
							
							
							
							reintroduce them later.
Also, don't require MCSection* when creating a symbol.
llvm-svn: 74081 
							
						 
						
							2009-06-24 17:00:42 +00:00