358d056c14 
								
							 
						 
						
							
							
								
								We were emitting construction v-tables with internal linkage all the time.  
							
							... 
							
							
							
							Emit them instead with the linkage of the VTT.
I'm actually really ambivalent about this;  it's what GCC does, but outside
of improving code size (if the linkage is coalescing), I'm not sure it's
at all relevant.  Construction vtables are naturally referenced only by the
VTT, which is itself only referenced by complete-object constructors and
destructors;  giving the construction vtables possibly-external linkage is
important if you have an optimization that drills through the VTT to a
reference to a particular construction vtable which it cannot just emit
itself.
llvm-svn: 128374 
							
						 
						
							2011-03-27 09:00:25 +00:00  
				
					
						
							
							
								 
						
							
								16ffcac1a2 
								
							 
						 
						
							
							
								
								Convert the BaseOffset member of BaseSubobject to CharUnits from bits. No  
							
							... 
							
							
							
							change in functionality intended.
llvm-svn: 128190 
							
						 
						
							2011-03-24 01:21:01 +00:00  
				
					
						
							
							
								 
						
							
								3968cd0f7b 
								
							 
						 
						
							
							
								
								For consistency, use llvm::raw_ostream in the rest of the mangle api.  
							
							... 
							
							
							
							llvm-svn: 125360 
							
						 
						
							2011-02-11 02:52:17 +00:00  
				
					
						
							
							
								 
						
							
								265aa7c070 
								
							 
						 
						
							
							
								
								Change CodeGenModule::setTypeVisibility to take a TypeVisibilityKind enum instead of an "IsForRTTI" flag.  
							
							... 
							
							
							
							llvm-svn: 124546 
							
						 
						
							2011-01-29 20:24:48 +00:00  
				
					
						
							
							
								 
						
							
								5963024ff6 
								
							 
						 
						
							
							
								
								Give VTTs the right visibility.  
							
							... 
							
							
							
							llvm-svn: 124540 
							
						 
						
							2011-01-29 19:34:19 +00:00  
				
					
						
							
							
								 
						
							
								883fc72c3c 
								
							 
						 
						
							
							
								
								Make emitting a VTT a two-step process, much like emitting a VTable. You first get the address of the VTT, and then pass it to EmitVTTDefinition.  
							
							... 
							
							
							
							llvm-svn: 124539 
							
						 
						
							2011-01-29 19:16:51 +00:00  
				
					
						
							
							
								 
						
							
								facb7d0ade 
								
							 
						 
						
							
							
								
								Also set unnamed_addr on declarations.  
							
							... 
							
							
							
							llvm-svn: 123531 
							
						 
						
							2011-01-15 08:23:14 +00:00  
				
					
						
							
							
								 
						
							
								d09776b945 
								
							 
						 
						
							
							
								
								Only add unnamed_addr to definitions.  
							
							... 
							
							
							
							llvm-svn: 123354 
							
						 
						
							2011-01-13 01:12:55 +00:00  
				
					
						
							
							
								 
						
							
								bb7f7686c5 
								
							 
						 
						
							
							
								
								Set unnamed_addr in VTTs.  
							
							... 
							
							
							
							llvm-svn: 123280 
							
						 
						
							2011-01-11 22:29:55 +00:00  
				
					
						
							
							
								 
						
							
								7f95cd1817 
								
							 
						 
						
							
							
								
								Rename RecordLayout::getPrimaryBaseWasVirtual to isPrimaryBaseVirtual.  
							
							... 
							
							
							
							llvm-svn: 120133 
							
						 
						
							2010-11-24 23:12:57 +00:00  
				
					
						
							
							
								 
						
							
								fd88a6160d 
								
							 
						 
						
							
							
								
								Rename getBaseClassOffset to getBaseClassOffsetInBits and introduce a getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset.  
							
							... 
							
							
							
							llvm-svn: 117881 
							
						 
						
							2010-10-31 23:22:37 +00:00  
				
					
						
							
							
								 
						
							
								c273f24196 
								
							 
						 
						
							
							
								
								Better solution:  calculate the visibility of functions and variables  
							
							... 
							
							
							
							independently of whether they're definitions, then teach IR generation to
ignore non-explicit visibility when emitting declarations.  Use this to
make sure that RTTI, vtables, and VTTs get the right visibility.
More of rdar://problem/8613093
llvm-svn: 117781 
							
						 
						
							2010-10-30 11:50:40 +00:00  
				
					
						
							
							
								 
						
							
								5d865c3292 
								
							 
						 
						
							
							
								
								Teach IR generation to return 'this' from constructors and destructors  
							
							... 
							
							
							
							under the ARM ABI.
llvm-svn: 112588 
							
						 
						
							2010-08-31 07:33:07 +00:00  
				
					
						
							
							
								 
						
							
								ae498b3211 
								
							 
						 
						
							
							
								
								The global variable for the VTT might not have external linkage; allow  
							
							... 
							
							
							
							us to find local variables, too. Fixes the last remaining
Boost.Rational failure.
llvm-svn: 103203 
							
						 
						
							2010-05-06 22:18:21 +00:00  
				
					
						
							
							
								 
						
							
								8bdbb5be19 
								
							 
						 
						
							
							
								
								Store the entire base subobject in SubVTTIndices.  
							
							... 
							
							
							
							llvm-svn: 102890 
							
						 
						
							2010-05-03 00:55:11 +00:00  
				
					
						
							
							
								 
						
							
								859b3064cb 
								
							 
						 
						
							
							
								
								Have getSubVTTIndex take a BaseSubobject instead of just a base.  
							
							... 
							
							
							
							llvm-svn: 102885 
							
						 
						
							2010-05-02 23:53:25 +00:00  
				
					
						
							
							
								 
						
							
								de0338abac 
								
							 
						 
						
							
							
								
								Clarify an assertion.  
							
							... 
							
							
							
							llvm-svn: 100986 
							
						 
						
							2010-04-11 20:23:06 +00:00  
				
					
						
							
							
								 
						
							
								f141dd1b95 
								
							 
						 
						
							
							
								
								Remove the old vtable layout code.  
							
							... 
							
							
							
							llvm-svn: 99869 
							
						 
						
							2010-03-30 03:43:47 +00:00  
				
					
						
							
							
								 
						
							
								2d016af623 
								
							 
						 
						
							
							
								
								Use the newly added function in the VTT builder.  
							
							... 
							
							
							
							llvm-svn: 99799 
							
						 
						
							2010-03-29 02:14:35 +00:00  
				
					
						
							
							
								 
						
							
								27d86bddfe 
								
							 
						 
						
							
							
								
								Fix thinko.  
							
							... 
							
							
							
							llvm-svn: 99788 
							
						 
						
							2010-03-29 01:12:13 +00:00  
				
					
						
							
							
								 
						
							
								8baeaf0a26 
								
							 
						 
						
							
							
								
								Two bug fixes, we weren't updating the thunk index when creating the vtable initializer and we weren't storing the secondary virtual pointer indices.  
							
							... 
							
							
							
							llvm-svn: 99786 
							
						 
						
							2010-03-29 01:04:16 +00:00  
				
					
						
							
							
								 
						
							
								f1a994ce33 
								
							 
						 
						
							
							
								
								Add and implement CodeGenVTables::getSecondaryVirtualPointerIndex (not used yet).  
							
							... 
							
							
							
							llvm-svn: 99608 
							
						 
						
							2010-03-26 04:23:58 +00:00  
				
					
						
							
							
								 
						
							
								5670d96524 
								
							 
						 
						
							
							
								
								More cleanup.  
							
							... 
							
							
							
							llvm-svn: 99605 
							
						 
						
							2010-03-26 04:10:39 +00:00  
				
					
						
							
							
								 
						
							
								a208b3997d 
								
							 
						 
						
							
							
								
								Way more VTT builder cleanup.  
							
							... 
							
							
							
							llvm-svn: 99604 
							
						 
						
							2010-03-26 03:56:54 +00:00  
				
					
						
							
							
								 
						
							
								45bd753b4a 
								
							 
						 
						
							
							
								
								More VTT builder cleanup.  
							
							... 
							
							
							
							llvm-svn: 99588 
							
						 
						
							2010-03-26 00:58:21 +00:00  
				
					
						
							
							
								 
						
							
								c1b4747d5a 
								
							 
						 
						
							
							
								
								More VTT cleanup.  
							
							... 
							
							
							
							llvm-svn: 99586 
							
						 
						
							2010-03-26 00:50:17 +00:00  
				
					
						
							
							
								 
						
							
								e67698bd73 
								
							 
						 
						
							
							
								
								Start cleaning up the VTT builder to make it work more like the VTable builder.  
							
							... 
							
							
							
							llvm-svn: 99581 
							
						 
						
							2010-03-26 00:35:45 +00:00  
				
					
						
							
							
								 
						
							
								382a96550b 
								
							 
						 
						
							
							
								
								Remove some VTT builder arguments that were always zero.  
							
							... 
							
							
							
							llvm-svn: 99576 
							
						 
						
							2010-03-26 00:11:51 +00:00  
				
					
						
							
							
								 
						
							
								d03325c54f 
								
							 
						 
						
							
							
								
								More address point map shuffling.  
							
							... 
							
							
							
							llvm-svn: 99462 
							
						 
						
							2010-03-25 00:51:13 +00:00  
				
					
						
							
							
								 
						
							
								0534b0201e 
								
							 
						 
						
							
							
								
								Shuffle some code around; this will make it easier to use the new layout code for address points.  
							
							... 
							
							
							
							llvm-svn: 99461 
							
						 
						
							2010-03-25 00:35:49 +00:00  
				
					
						
							
							
								 
						
							
								67fbf9853f 
								
							 
						 
						
							
							
								
								Use getNamedGlobal instead of getGlobalVariable. (Fixes self-host).  
							
							... 
							
							
							
							llvm-svn: 99385 
							
						 
						
							2010-03-24 05:32:05 +00:00  
				
					
						
							
							
								 
						
							
								b35ea55e2e 
								
							 
						 
						
							
							
								
								More vtable work; preparations for moving over to the new vtable layout code (finally).  
							
							... 
							
							
							
							llvm-svn: 99381 
							
						 
						
							2010-03-24 03:57:14 +00:00  
				
					
						
							
							
								 
						
							
								a864caff8c 
								
							 
						 
						
							
							
								
								Rename CGVtableInfo to CodeGenVTables in preparation of adding another VTableInfo class.  
							
							... 
							
							
							
							llvm-svn: 99250 
							
						 
						
							2010-03-23 04:11:45 +00:00  
				
					
						
							
							
								 
						
							
								62c6c72bab 
								
							 
						 
						
							
							
								
								Pass information about whether a base is virtual or not down to getCtorVtable, we need this information in the vtable builder.  
							
							... 
							
							
							
							llvm-svn: 97356 
							
						 
						
							2010-02-28 00:36:23 +00:00  
				
					
						
							
							
								 
						
							
								f768db7775 
								
							 
						 
						
							
							
								
								Move the VTT related code into its own file, CGVTT.cpp  
							
							... 
							
							
							
							llvm-svn: 94079 
							
						 
						
							2010-01-21 16:50:45 +00:00