b2197042b8 
								
							 
						 
						
							
							
								
								ir-gen support for anonymous union data member  
							
							... 
							
							
							
							copying in copy constructors and used in
default constructor's initializer list.
llvm-svn: 78700 
							
						 
						
							2009-08-11 18:49:54 +00:00  
				
					
						
							
							
								 
						
							
								78696a70bf 
								
							 
						 
						
							
							
								
								Implement more of the inductive case for vtable layout involving  
							
							... 
							
							
							
							virtual base primaries and improve the layout of classes with virtual
bases.  WIP.
Hey, I've decided I want a change to FileCheck, I need to ensure that
the group is together, nothing in between.  Can we change it to check
the match line is from the line immediately following the last matched
line, if the source for the matched line is immediately after the
source for the previously matched line?
// CHECK: 1
// CHECK: 2
// CHECK: 3
// CHECK: 4
// CHECK: 5
// CHECK: 6
would require 1 2 and 3 to be continuous in the output, and 4 5 and 6
to be continuous.
llvm-svn: 78638 
							
						 
						
							2009-08-11 04:03:59 +00:00  
				
					
						
							
							
								 
						
							
								296584b2a9 
								
							 
						 
						
							
							
								
								Support for anonymous union in ctor's initializer and  
							
							... 
							
							
							
							bunch of FIXMEs for their is-gen.
llvm-svn: 78623 
							
						 
						
							2009-08-10 23:56:17 +00:00  
				
					
						
							
							
								 
						
							
								9d3405ceab 
								
							 
						 
						
							
							
								
								minor refactoring. No change otherwise.  
							
							... 
							
							
							
							llvm-svn: 78582 
							
						 
						
							2009-08-10 18:46:38 +00:00  
				
					
						
							
							
								 
						
							
								7cc52cf09f 
								
							 
						 
						
							
							
								
								ir-gen for generating copying of scalar data members in  
							
							... 
							
							
							
							a synthesized copy constructor.
llvm-svn: 78580 
							
						 
						
							2009-08-10 18:34:26 +00:00  
				
					
						
							
							
								 
						
							
								2a26e351fc 
								
							 
						 
						
							
							
								
								Fixed a ir-gen bug in synthesizing copy constructors.  
							
							... 
							
							
							
							llvm-svn: 78570 
							
						 
						
							2009-08-10 17:20:45 +00:00  
				
					
						
							
							
								 
						
							
								b57e5d2f4f 
								
							 
						 
						
							
							
								
								Older GCCs don't have vector::data().  
							
							... 
							
							
							
							llvm-svn: 78519 
							
						 
						
							2009-08-08 23:43:26 +00:00  
				
					
						
							
							
								 
						
							
								24f38969d5 
								
							 
						 
						
							
							
								
								ir-gen for initialization, in synthesize copy constructor,  
							
							... 
							
							
							
							of base/field which have trivial copy constructor.
llvm-svn: 78516 
							
						 
						
							2009-08-08 23:32:22 +00:00  
				
					
						
							
							
								 
						
							
								b8be93fc92 
								
							 
						 
						
							
							
								
								Add support for global initializers.  
							
							... 
							
							
							
							llvm-svn: 78515 
							
						 
						
							2009-08-08 23:24:23 +00:00  
				
					
						
							
							
								 
						
							
								f40886acca 
								
							 
						 
						
							
							
								
								Refactor some code and implement support for global destructors for static variables.  
							
							... 
							
							
							
							llvm-svn: 78507 
							
						 
						
							2009-08-08 21:45:14 +00:00  
				
					
						
							
							
								 
						
							
								f6bda5d61e 
								
							 
						 
						
							
							
								
								Refactoring of copy ctor ir-gen. No change in functionality.  
							
							... 
							
							
							
							llvm-svn: 78489 
							
						 
						
							2009-08-08 19:31:03 +00:00  
				
					
						
							
							
								 
						
							
								7c3d7f6c59 
								
							 
						 
						
							
							
								
								Remove use of uninitized variable.  
							
							... 
							
							
							
							llvm-svn: 78448 
							
						 
						
							2009-08-08 00:59:58 +00:00  
				
					
						
							
							
								 
						
							
								59b3259284 
								
							 
						 
						
							
							
								
								Synthesize copying of non-static data members with  
							
							... 
							
							
							
							non-trivial copy constructors.
llvm-svn: 78445 
							
						 
						
							2009-08-08 00:15:41 +00:00  
				
					
						
							
							
								 
						
							
								b68df0bc42 
								
							 
						 
						
							
							
								
								Synthesized copy constructor now generates code for  
							
							... 
							
							
							
							copying non-virtual base classes which have non-trivial
constructor. Work in progress.
llvm-svn: 78436 
							
						 
						
							2009-08-07 23:51:33 +00:00  
				
					
						
							
							
								 
						
							
								16644668cd 
								
							 
						 
						
							
							
								
								Add vbase offsets to the vtable.  Wow, having an rbegin was so  
							
							... 
							
							
							
							fortuitous.  WIP.
llvm-svn: 78413 
							
						 
						
							2009-08-07 21:54:03 +00:00  
				
					
						
							
							
								 
						
							
								40134e71be 
								
							 
						 
						
							
							
								
								More synthesis of copy constructors. Work in progress.  
							
							... 
							
							
							
							llvm-svn: 78402 
							
						 
						
							2009-08-07 20:22:40 +00:00  
				
					
						
							
							
								 
						
							
								a4d94b1a95 
								
							 
						 
						
							
							
								
								Fix typo.  
							
							... 
							
							
							
							llvm-svn: 78401 
							
						 
						
							2009-08-07 20:14:05 +00:00  
				
					
						
							
							
								 
						
							
								c266c6d797 
								
							 
						 
						
							
							
								
								Add ability to generate vcall offsets for primary virtual base.  
							
							... 
							
							
							
							llvm-svn: 78396 
							
						 
						
							2009-08-07 19:00:50 +00:00  
				
					
						
							
							
								 
						
							
								b93185d05a 
								
							 
						 
						
							
							
								
								Fix some const_cast issues.  This is the beginning of the rabbit hole.  
							
							... 
							
							
							
							llvm-svn: 78393 
							
						 
						
							2009-08-07 18:05:12 +00:00  
				
					
						
							
							
								 
						
							
								7c32eab164 
								
							 
						 
						
							
							
								
								Add support for vcall generation for vtables for virtual bases.  WIP.  
							
							... 
							
							
							
							llvm-svn: 78357 
							
						 
						
							2009-08-06 23:48:32 +00:00  
				
					
						
							
							
								 
						
							
								3e62d00271 
								
							 
						 
						
							
							
								
								Also generate the rtti field for virtual bases for vtables.  Turn on  
							
							... 
							
							
							
							rtti so we can properly test it.  Refactor code a little.  Still a
work in progress.
llvm-svn: 78343 
							
						 
						
							2009-08-06 21:49:36 +00:00  
				
					
						
							
							
								 
						
							
								001309371e 
								
							 
						 
						
							
							
								
								Set and use Elidable in elimination of copy ctors.  
							
							... 
							
							
							
							llvm-svn: 78331 
							
						 
						
							2009-08-06 19:12:38 +00:00  
				
					
						
							
							
								 
						
							
								2d8d655922 
								
							 
						 
						
							
							
								
								Layout the primary base first in the vtable.  
							
							... 
							
							
							
							llvm-svn: 78327 
							
						 
						
							2009-08-06 18:05:22 +00:00  
				
					
						
							
							
								 
						
							
								c255f3581a 
								
							 
						 
						
							
							
								
								More layout for virtual tables for virtual bases.  Still in progress.  
							
							... 
							
							
							
							llvm-svn: 78314 
							
						 
						
							2009-08-06 15:50:11 +00:00  
				
					
						
							
							
								 
						
							
								6b2556f829 
								
							 
						 
						
							
							
								
								Layout virtual bases.  Work in progress.  
							
							... 
							
							
							
							llvm-svn: 78308 
							
						 
						
							2009-08-06 13:41:24 +00:00  
				
					
						
							
							
								 
						
							
								eb869768f9 
								
							 
						 
						
							
							
								
								Patch to optimize away copy constructor call when  
							
							... 
							
							
							
							appropriate.
llvm-svn: 78267 
							
						 
						
							2009-08-06 01:02:49 +00:00  
				
					
						
							
							
								 
						
							
								a19718af5a 
								
							 
						 
						
							
							
								
								Refactor some bits.  
							
							... 
							
							
							
							llvm-svn: 78254 
							
						 
						
							2009-08-05 22:59:44 +00:00  
				
					
						
							
							
								 
						
							
								d8fe7b2792 
								
							 
						 
						
							
							
								
								Calculate the primary base class better and use that when laying down  
							
							... 
							
							
							
							the vtable.  Still a work in progress.
llvm-svn: 78252 
							
						 
						
							2009-08-05 22:37:18 +00:00  
				
					
						
							
							
								 
						
							
								9beac787c1 
								
							 
						 
						
							
							
								
								vtable building for simple inheritance.  Still in progress.  
							
							... 
							
							
							
							llvm-svn: 78110 
							
						 
						
							2009-08-04 21:58:42 +00:00  
				
					
						
							
							
								 
						
							
								7551d05358 
								
							 
						 
						
							
							
								
								Will I ever get used to CamelCase?  Will I ever like capitols for  
							
							... 
							
							
							
							random variables?
  --This line, and those below, will be ignored--
M    lib/CodeGen/CGCXX.cpp
llvm-svn: 78094 
							
						 
						
							2009-08-04 20:06:48 +00:00  
				
					
						
							
							
								 
						
							
								183c3d2f59 
								
							 
						 
						
							
							
								
								Add beginnigs of rtti generation, wire up more of -fno-exceptions.  
							
							... 
							
							
							
							llvm-svn: 77751 
							
						 
						
							2009-07-31 23:15:31 +00:00  
				
					
						
							
							
								 
						
							
								67829f6493 
								
							 
						 
						
							
							
								
								And now we can generate a simple vtable.  Still a work in progress...  
							
							... 
							
							
							
							llvm-svn: 77737 
							
						 
						
							2009-07-31 21:43:43 +00:00  
				
					
						
							
							
								 
						
							
								0b75f23b94 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 77722 
							
						 
						
							2009-07-31 20:28:54 +00:00  
				
					
						
							
							
								 
						
							
								bc78a728ee 
								
							 
						 
						
							
							
								
								Add code to setup the vtable pointer in the constructor.  Work in progress.  
							
							... 
							
							
							
							llvm-svn: 77699 
							
						 
						
							2009-07-31 18:25:34 +00:00  
				
					
						
							
							
								 
						
							
								7ec07a573c 
								
							 
						 
						
							
							
								
								Update for LLVM API changes.  
							
							... 
							
							
							
							llvm-svn: 77638 
							
						 
						
							2009-07-30 23:11:26 +00:00  
				
					
						
							
							
								 
						
							
								658fe02d17 
								
							 
						 
						
							
							
								
								Canonicalize else spacing.  
							
							... 
							
							
							
							llvm-svn: 77629 
							
						 
						
							2009-07-30 22:28:39 +00:00  
				
					
						
							
							
								 
						
							
								a523b2d7a0 
								
							 
						 
						
							
							
								
								Note some other limitations.  
							
							... 
							
							
							
							llvm-svn: 77626 
							
						 
						
							2009-07-30 21:47:44 +00:00  
				
					
						
							
							
								 
						
							
								aa01d2a532 
								
							 
						 
						
							
							
								
								Patch for future ir-gen for destructor calls.  
							
							... 
							
							
							
							llvm-svn: 77608 
							
						 
						
							2009-07-30 17:49:11 +00:00  
				
					
						
							
							
								 
						
							
								d375454dcf 
								
							 
						 
						
							
							
								
								ir-gen for nested non-virtual base member access  
							
							... 
							
							
							
							in current class.
llvm-svn: 77554 
							
						 
						
							2009-07-30 00:10:25 +00:00  
				
					
						
							
							
								 
						
							
								9793f0e4d7 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 77514 
							
						 
						
							2009-07-29 22:16:19 +00:00  
				
					
						
							
							
								 
						
							
								c23c7e6a51 
								
							 
						 
						
							
							
								
								Change uses of:  
							
							... 
							
							
							
							Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
  Type::getAsRecordType() -> Type::getAs<RecordType>()
  Type::getAsPointerType() -> Type::getAs<PointerType>()
  Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>()
  Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>()
  Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>()
  Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>()
  Type::getAsReferenceType() -> Type::getAs<ReferenceType>()
  Type::getAsTagType() -> Type::getAs<TagType>()
  
And remove Type::getAsReferenceType(), etc.
This change is similar to one I made a couple weeks ago, but that was partly
reverted pending some additional design discussion. With Doug's pending smart
pointer changes for Types, it seemed natural to take this approach.
llvm-svn: 77510 
							
						 
						
							2009-07-29 21:53:49 +00:00  
				
					
						
							
							
								 
						
							
								72b1f24bd2 
								
							 
						 
						
							
							
								
								Use the existing API for base offset. Use suitable llvm type  
							
							... 
							
							
							
							for offset ir-gen.
llvm-svn: 77458 
							
						 
						
							2009-07-29 15:54:56 +00:00  
				
					
						
							
							
								 
						
							
								a399dfae19 
								
							 
						 
						
							
							
								
								More cleanup of data member access and then some.  
							
							... 
							
							
							
							llvm-svn: 77351 
							
						 
						
							2009-07-28 18:54:57 +00:00  
				
					
						
							
							
								 
						
							
								b77659f4ae 
								
							 
						 
						
							
							
								
								Some code cleanup.  
							
							... 
							
							
							
							llvm-svn: 77339 
							
						 
						
							2009-07-28 18:09:28 +00:00  
				
					
						
							
							
								 
						
							
								5142fbd02e 
								
							 
						 
						
							
							
								
								More work toward data member access ir-gen.  
							
							... 
							
							
							
							llvm-svn: 77332 
							
						 
						
							2009-07-28 17:38:28 +00:00  
				
					
						
							
							
								 
						
							
								dedf1e4b1a 
								
							 
						 
						
							
							
								
								ir-gen for non-virtual base class initialization  
							
							... 
							
							
							
							in constructors.
llvm-svn: 77087 
							
						 
						
							2009-07-25 21:12:28 +00:00  
				
					
						
							
							
								 
						
							
								b7a2fe6f81 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 77012 
							
						 
						
							2009-07-24 23:12:58 +00:00  
				
					
						
							
							
								 
						
							
								2a1b5af130 
								
							 
						 
						
							
							
								
								More work toward initialization of objects  
							
							... 
							
							
							
							in constructors.
llvm-svn: 76980 
							
						 
						
							2009-07-24 17:57:02 +00:00  
				
					
						
							
							
								 
						
							
								83381cc9a6 
								
							 
						 
						
							
							
								
								Move EmitCtorPrologue to CGCXX. Add an assert and FIXMEs.  
							
							... 
							
							
							
							llvm-svn: 76498 
							
						 
						
							2009-07-20 23:18:55 +00:00  
				
					
						
							
							
								 
						
							
								8a286fbdb9 
								
							 
						 
						
							
							
								
								Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methods  
							
							... 
							
							
							
							until Doug Gregor's Type smart pointer code lands (or more discussion occurs).
These methods just call the new Type::getAs<XXX> methods, so we still have
reduced implementation redundancy. Having explicit getAsXXXType() methods makes
it easier to set breakpoints in the debugger.
llvm-svn: 76193 
							
						 
						
							2009-07-17 17:50:17 +00:00  
				
					
						
							
							
								 
						
							
								b825c0ddc5 
								
							 
						 
						
							
							
								
								Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents.  
							
							... 
							
							
							
							llvm-svn: 76139 
							
						 
						
							2009-07-17 01:20:38 +00:00  
				
					
						
							
							
								 
						
							
								170229f68d 
								
							 
						 
						
							
							
								
								Update for LLVM API change, and contextify a bunch of related stuff.  
							
							... 
							
							
							
							llvm-svn: 75705 
							
						 
						
							2009-07-14 23:10:40 +00:00  
				
					
						
							
							
								 
						
							
								ae86c19e68 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 75446 
							
						 
						
							2009-07-13 04:10:07 +00:00  
				
					
						
							
							
								 
						
							
								c10c8d3e2b 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 75028 
							
						 
						
							2009-07-08 19:05:04 +00:00  
				
					
						
							
							
								 
						
							
								9f211fb4fa 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 74986 
							
						 
						
							2009-07-08 01:29:18 +00:00  
				
					
						
							
							
								 
						
							
								cfbfe78e9e 
								
							 
						 
						
							
							
								
								De-ASTContext-ify DeclContext.  
							
							... 
							
							
							
							Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating".
Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit.
llvm-svn: 74506 
							
						 
						
							2009-06-30 02:36:12 +00:00  
				
					
						
							
							
								 
						
							
								82aea737a7 
								
							 
						 
						
							
							
								
								Move code generation of C++ temporaries into a new file.  
							
							... 
							
							
							
							llvm-svn: 72792 
							
						 
						
							2009-06-03 18:40:21 +00:00  
				
					
						
							
							
								 
						
							
								fa7c608ecc 
								
							 
						 
						
							
							
								
								Fix a thinko.  
							
							... 
							
							
							
							llvm-svn: 72679 
							
						 
						
							2009-06-01 00:26:14 +00:00  
				
					
						
							
							
								 
						
							
								ca50119a31 
								
							 
						 
						
							
							
								
								Check for null correctly for new expressions.  
							
							... 
							
							
							
							llvm-svn: 72678 
							
						 
						
							2009-06-01 00:05:16 +00:00  
				
					
						
							
							
								 
						
							
								cba81fc4de 
								
							 
						 
						
							
							
								
								Improve irgen of 'new' further.  
							
							... 
							
							
							
							llvm-svn: 72677 
							
						 
						
							2009-05-31 21:53:59 +00:00  
				
					
						
							
							
								 
						
							
								96c012ff8b 
								
							 
						 
						
							
							
								
								...and aggregate POD types.  
							
							... 
							
							
							
							llvm-svn: 72676 
							
						 
						
							2009-05-31 21:12:26 +00:00  
				
					
						
							
							
								 
						
							
								60d0c2c1c2 
								
							 
						 
						
							
							
								
								Support for complex types.  
							
							... 
							
							
							
							llvm-svn: 72675 
							
						 
						
							2009-05-31 21:07:58 +00:00  
				
					
						
							
							
								 
						
							
								ec71f61608 
								
							 
						 
						
							
							
								
								Better support for scalar POD types in 'new' expressions.  
							
							... 
							
							
							
							llvm-svn: 72674 
							
						 
						
							2009-05-31 20:56:36 +00:00  
				
					
						
							
							
								 
						
							
								1832f52b10 
								
							 
						 
						
							
							
								
								Very basic irgen support for new expressions.  
							
							... 
							
							
							
							llvm-svn: 72672 
							
						 
						
							2009-05-31 20:21:44 +00:00  
				
					
						
							
							
								 
						
							
								4a7b49b56a 
								
							 
						 
						
							
							
								
								Add a new function for emitting new functions.  
							
							... 
							
							
							
							llvm-svn: 72656 
							
						 
						
							2009-05-31 01:40:14 +00:00  
				
					
						
							
							
								 
						
							
								8eb93e72f7 
								
							 
						 
						
							
							
								
								Emit destructors correctly for temporaries.  
							
							... 
							
							
							
							llvm-svn: 72655 
							
						 
						
							2009-05-31 00:34:10 +00:00  
				
					
						
							
							
								 
						
							
								3be22e27b6 
								
							 
						 
						
							
							
								
								More temporary support.  
							
							... 
							
							
							
							llvm-svn: 72648 
							
						 
						
							2009-05-30 23:23:33 +00:00  
				
					
						
							
							
								 
						
							
								0a63741a3f 
								
							 
						 
						
							
							
								
								Add code for emitting C++ destructors. Not used yet.  
							
							... 
							
							
							
							llvm-svn: 72591 
							
						 
						
							2009-05-29 21:03:38 +00:00  
				
					
						
							
							
								 
						
							
								4034a95dc8 
								
							 
						 
						
							
							
								
								Handle operator call expressions where the callee is a member function.  
							
							... 
							
							
							
							llvm-svn: 72458 
							
						 
						
							2009-05-27 04:18:27 +00:00  
				
					
						
							
							
								 
						
							
								6f5a015bd9 
								
							 
						 
						
							
							
								
								Add EmitReferenceBindingToExpr. Have EmitCallArg use it for now. Doesn't support anything but at least we don't crash ;)  
							
							... 
							
							
							
							llvm-svn: 72147 
							
						 
						
							2009-05-20 00:24:07 +00:00  
				
					
						
							
							
								 
						
							
								18bb9284ff 
								
							 
						 
						
							
							
								
								Reflow some comments.  
							
							... 
							
							
							
							llvm-svn: 71937 
							
						 
						
							2009-05-16 07:57:57 +00:00  
				
					
						
							
							
								 
						
							
								e0be0dfced 
								
							 
						 
						
							
							
								
								push GlobalDecl through enough of the CodeGenModule interfaces  
							
							... 
							
							
							
							to allow us to support generation of deferred ctors/dtors.
It looks like codegen isn't emitting a call to the dtor in 
member-functions.cpp:test2, but when it does, its body should
get emitted.
llvm-svn: 71594 
							
						 
						
							2009-05-12 21:21:08 +00:00  
				
					
						
							
							
								 
						
							
								bd7d11f770 
								
							 
						 
						
							
							
								
								Factor code that's common to EmitCXXMemberCallExpr and EmitCXXConstructorCall out into a EmitCXXMemberCall function.  
							
							... 
							
							
							
							llvm-svn: 71514 
							
						 
						
							2009-05-11 23:37:08 +00:00  
				
					
						
							
							
								 
						
							
								dae1abc7ac 
								
							 
						 
						
							
							
								
								Refactor global decls to hold either a regular Decl or a CXXConstructorDecl + ctor type or a CXXDestructorDecl + dtor type.  
							
							... 
							
							
							
							llvm-svn: 70962 
							
						 
						
							2009-05-05 04:44:02 +00:00  
				
					
						
							
							
								 
						
							
								1619a5041c 
								
							 
						 
						
							
							
								
								Make codegen for constructors work again.  
							
							... 
							
							
							
							llvm-svn: 70785 
							
						 
						
							2009-05-03 17:47:16 +00:00  
				
					
						
							
							
								 
						
							
								4ac533dc90 
								
							 
						 
						
							
							
								
								We can now call member functions where the base is a pointer.  
							
							... 
							
							
							
							llvm-svn: 70579 
							
						 
						
							2009-05-01 21:55:16 +00:00  
				
					
						
							
							
								 
						
							
								eaa28f7e18 
								
							 
						 
						
							
							
								
								Add support for generating (very basic) C++ destructors. These aren't called by anything yet.  
							
							... 
							
							
							
							llvm-svn: 69343 
							
						 
						
							2009-04-17 01:58:57 +00:00  
				
					
						
							
							
								 
						
							
								b7f8f594f3 
								
							 
						 
						
							
							
								
								Implement basic code generation of constructor calls. We can now compile:  
							
							... 
							
							
							
							struct S {
S(int, int);
};
void f() {
S s(10, 10);
}
llvm-svn: 69330 
							
						 
						
							2009-04-17 00:06:03 +00:00  
				
					
						
							
							
								 
						
							
								e8eeffdf16 
								
							 
						 
						
							
							
								
								Add GetAddrOfCXXConstructor and use it.  
							
							... 
							
							
							
							llvm-svn: 69328 
							
						 
						
							2009-04-16 23:57:24 +00:00  
				
					
						
							
							
								 
						
							
								617482c666 
								
							 
						 
						
							
							
								
								Actually generate code for the simple constructors we know we can generate code for.  
							
							... 
							
							
							
							llvm-svn: 69222 
							
						 
						
							2009-04-15 21:02:13 +00:00  
				
					
						
							
							
								 
						
							
								f747524819 
								
							 
						 
						
							
							
								
								Start attempting to generate code for C++ ctors.  
							
							... 
							
							
							
							llvm-svn: 69168 
							
						 
						
							2009-04-15 15:55:24 +00:00  
				
					
						
							
							
								 
						
							
								a5d077df73 
								
							 
						 
						
							
							
								
								Support code generation of 'this' exprs  
							
							... 
							
							
							
							llvm-svn: 69050 
							
						 
						
							2009-04-14 16:58:56 +00:00  
				
					
						
							
							
								 
						
							
								1235bbce7e 
								
							 
						 
						
							
							
								
								Use the new guard variable mangling function and get rid of the old code.  
							
							... 
							
							
							
							llvm-svn: 68971 
							
						 
						
							2009-04-13 18:03:33 +00:00  
				
					
						
							
							
								 
						
							
								479e6fc7a7 
								
							 
						 
						
							
							
								
								Use the new EmitCallArgs function. No indented functionality change.  
							
							... 
							
							
							
							llvm-svn: 68652 
							
						 
						
							2009-04-08 23:13:16 +00:00  
				
					
						
							
							
								 
						
							
								03a409feda 
								
							 
						 
						
							
							
								
								We weren't generating correct code for calls to variadic member functions.  
							
							... 
							
							
							
							llvm-svn: 68635 
							
						 
						
							2009-04-08 20:31:57 +00:00  
				
					
						
							
							
								 
						
							
								2266e244b5 
								
							 
						 
						
							
							
								
								Simplify C++ member function calls.  
							
							... 
							
							
							
							llvm-svn: 68451 
							
						 
						
							2009-04-06 17:45:20 +00:00  
				
					
						
							
							
								 
						
							
								e5fd6f2227 
								
							 
						 
						
							
							
								
								Add support for calling C++ member functions.  
							
							... 
							
							
							
							llvm-svn: 68412 
							
						 
						
							2009-04-03 22:50:24 +00:00  
				
					
						
							
							
								 
						
							
								22a87f94a9 
								
							 
						 
						
							
							
								
								Pull COdeGenFunction::CreateStaticBlockVarDecl (just for creating the  
							
							... 
							
							
							
							global variable) out of GenerateStaticBlockVarDecl. 
 - No intended functionality change.
 - Prep for some mild cleanups and PR3662.
llvm-svn: 65466 
							
						 
						
							2009-02-25 19:24:29 +00:00  
				
					
						
							
							
								 
						
							
								ffca3a21f1 
								
							 
						 
						
							
							
								
								Provide a new kind of iterator, the specific_decl_iterator, that  
							
							... 
							
							
							
							filters the decls seen by decl_iterator with two criteria: the dynamic
type of the declaration and a run-time predicate described by a member
function. This simplifies EnumDecl, RecordDecl, and ObjCContainerDecl
considerably. It has no measurable performance impact.
llvm-svn: 61994 
							
						 
						
							2009-01-09 17:18:27 +00:00  
				
					
						
							
							
								 
						
							
								c8a590dda3 
								
							 
						 
						
							
							
								
								Warning fixes to operator precedence warnings.  
							
							... 
							
							
							
							Someone should double-check that I didn't somehow break ObjC 
serialization; I think the change there actually changes the semantics.
llvm-svn: 61098 
							
						 
						
							2008-12-16 20:06:41 +00:00  
				
					
						
							
							
								 
						
							
								e4b95698df 
								
							 
						 
						
							
							
								
								Rename Selector::getName() to Selector::getAsString(), and add  
							
							... 
							
							
							
							a new NamedDecl::getAsString() method.
Change uses of Selector::getName() to just pass in a Selector 
where possible (e.g. to diagnostics) instead of going through
an std::string.
This also adds new formatters for objcinstance and objcclass
as described in the dox.
llvm-svn: 59933 
							
						 
						
							2008-11-24 03:33:13 +00:00  
				
					
						
							
							
								 
						
							
								a612e79be4 
								
							 
						 
						
							
							
								
								Normalize many BasicBlock names.  
							
							... 
							
							
							
							- Use dotted notation for blocks related to a particular statement
   type.
 - Use .end for landing pads.
No functionality change in NDEBUG mode. :)
llvm-svn: 59210 
							
						 
						
							2008-11-13 01:38:36 +00:00  
				
					
						
							
							
								 
						
							
								75283ff38a 
								
							 
						 
						
							
							
								
								Centralize basic block creation in CodeGenFunction::createBasicBlock.  
							
							... 
							
							
							
							- No functionality change.
llvm-svn: 59017 
							
						 
						
							2008-11-11 02:29:29 +00:00  
				
					
						
							
							
								 
						
							
								131be8b4f4 
								
							 
						 
						
							
							
								
								Handle static initializers in Objective-C++ methods.  
							
							... 
							
							
							
							llvm-svn: 55250 
							
						 
						
							2008-08-23 19:42:54 +00:00  
				
					
						
							
							
								 
						
							
								87fc5a5e6b 
								
							 
						 
						
							
							
								
								Add preliminary (and probably broken) codegen support for C++ static initializers.  
							
							... 
							
							
							
							llvm-svn: 55180 
							
						 
						
							2008-08-22 16:00:37 +00:00