8f80a61914 
								
							 
						 
						
							
							
								
								Remove the -fhidden-weak-vtables -cc1 option.  It was dead,  
							
							... 
							
							
							
							gross, and increasingly replaced through other mechanisms.
llvm-svn: 201011 
							
						 
						
							2014-02-08 00:41:16 +00:00  
				
					
						
							
							
								 
						
							
								b60a3d5bc1 
								
							 
						 
						
							
							
								
								Eliminate the ItaniumVTableContext object from CodeGenVTables  
							
							... 
							
							
							
							Now CodeGenVTables has only one VTableContext object, which is either
Itanium or Microsoft.
Fixes a FIXME with no functionality change intended.
Ideally we could avoid the downcasts by pushing the things that
reference the Itanium vtable context into ItaniumCXXABI.cpp, but we're
not there yet.
llvm-svn: 197845 
							
						 
						
							2013-12-20 23:58:52 +00:00  
				
					
						
							
							
								 
						
							
								5877663622 
								
							 
						 
						
							
							
								
								Fix vbtable indices when a class shares the vbptr with a non-virtual base  
							
							... 
							
							
							
							llvm-svn: 194082 
							
						 
						
							2013-11-05 15:54:58 +00:00  
				
					
						
							
							
								 
						
							
								6745522f89 
								
							 
						 
						
							
							
								
								Extract ABI-specific parts of MangleContext into separate classes  
							
							... 
							
							
							
							Reviewed at http://llvm-reviews.chandlerc.com/D1807 
llvm-svn: 191878 
							
						 
						
							2013-10-03 06:26:13 +00:00  
				
					
						
							
							
								 
						
							
								8b5987eba5 
								
							 
						 
						
							
							
								
								Abstract out the emission of vtables, add basic support for vtable emission when using -cxx-abi microsoft  
							
							... 
							
							
							
							Reviewed at http://llvm-reviews.chandlerc.com/D1532 
llvm-svn: 191523 
							
						 
						
							2013-09-27 14:48:01 +00:00  
				
					
						
							
							
								 
						
							
								66f82e68c3 
								
							 
						 
						
							
							
								
								[ms-cxxabi] Move CodeGenVTables::needsVTTParameter to ItaniumCXXABI.  
							
							... 
							
							
							
							This function only makes sense there.  Eventually it should no longer
be part of the CGCXXABI interface, as it is an Itanium-specific detail.
Differential Revision: http://llvm-reviews.chandlerc.com/D821 
llvm-svn: 185213 
							
						 
						
							2013-06-28 20:45:28 +00:00  
				
					
						
							
							
								 
						
							
								ece0409a1a 
								
							 
						 
						
							
							
								
								simplify a bunch of code to use the well-known LLVM IR types computed by CodeGenModule.  
							
							... 
							
							
							
							llvm-svn: 149943 
							
						 
						
							2012-02-07 00:39:47 +00:00  
				
					
						
							
							
								 
						
							
								2c1dd2716a 
								
							 
						 
						
							
							
								
								Basic: import SmallString<> into clang namespace  
							
							... 
							
							
							
							(I was going to fix the TODO about DenseMap too, but
that would break self-host right now. See PR11922.)
llvm-svn: 149799 
							
						 
						
							2012-02-05 02:13:05 +00:00  
				
					
						
							
							
								 
						
							
								e35328c878 
								
							 
						 
						
							
							
								
								Remove obsolete debugging macro, make helper static.  
							
							... 
							
							
							
							llvm-svn: 142730 
							
						 
						
							2011-10-22 19:16:39 +00:00  
				
					
						
							
							
								 
						
							
								affe111ba5 
								
							 
						 
						
							
							
								
								Move all vtable layout data into new VTableLayout class  
							
							... 
							
							
							
							llvm-svn: 140506 
							
						 
						
							2011-09-26 01:56:50 +00:00  
				
					
						
							
							
								 
						
							
								5ee9ee490e 
								
							 
						 
						
							
							
								
								Move vtable component accessors to VTableContext  
							
							... 
							
							
							
							llvm-svn: 140504 
							
						 
						
							2011-09-26 01:56:41 +00:00  
				
					
						
							
							
								 
						
							
								71c26936a0 
								
							 
						 
						
							
							
								
								Remove CodeGenVTables::ComputeVTableRelatedInformation dependency on CodeGen  
							
							... 
							
							
							
							llvm-svn: 140503 
							
						 
						
							2011-09-26 01:56:36 +00:00  
				
					
						
							
							
								 
						
							
								2d2595235d 
								
							 
						 
						
							
							
								
								Move VTT builder to AST  
							
							... 
							
							
							
							llvm-svn: 140501 
							
						 
						
							2011-09-26 01:56:24 +00:00  
				
					
						
							
							
								 
						
							
								2000e4ead5 
								
							 
						 
						
							
							
								
								Remove CodeGenModule field from VTTBuilder  
							
							... 
							
							
							
							llvm-svn: 140499 
							
						 
						
							2011-09-26 01:56:10 +00:00  
				
					
						
							
							
								 
						
							
								d9eb79ca73 
								
							 
						 
						
							
							
								
								Make the VTTBuilder class independent of LLVM core  
							
							... 
							
							
							
							llvm-svn: 140498 
							
						 
						
							2011-09-26 01:56:06 +00:00  
				
					
						
							
							
								 
						
							
								0e62c1cc0b 
								
							 
						 
						
							
							
								
								remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports  
							
							... 
							
							
							
							them into the clang namespace.
llvm-svn: 135852 
							
						 
						
							2011-07-23 10:55:15 +00:00  
				
					
						
							
							
								 
						
							
								ed8db7d9df 
								
							 
						 
						
							
							
								
								Convert ConstantExpr::getGetElementPtr and  
							
							... 
							
							
							
							ConstantExpr::getInBoundsGetElementPtr to use ArrayRef.
llvm-svn: 135673 
							
						 
						
							2011-07-21 14:31:17 +00:00  
				
					
						
							
							
								 
						
							
								2192fe50da 
								
							 
						 
						
							
							
								
								de-constify llvm::Type, patch by David Blaikie!  
							
							... 
							
							
							
							llvm-svn: 135370 
							
						 
						
							2011-07-18 04:24:23 +00:00  
				
					
						
							
							
								 
						
							
								83be361b8a 
								
							 
						 
						
							
							
								
								Replace the existing forms of ConstantArray::get() with a single form  
							
							... 
							
							
							
							that takes an ArrayRef.
llvm-svn: 133615 
							
						 
						
							2011-06-22 09:24:39 +00:00  
				
					
						
							
							
								 
						
							
								d6f1518cc9 
								
							 
						 
						
							
							
								
								Fix another regression from the "skip vtable pointer initialization"  
							
							... 
							
							
							
							optimization. Make sure to require a vtable when trying to get the address
of a VTT, otherwise we would never end up emitting the VTT.
llvm-svn: 131400 
							
						 
						
							2011-05-16 04:08:36 +00:00  
				
					
						
							
							
								 
						
							
								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