Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								22ea1f8a30 
								
							 
						 
						
							
							
								
								Cleanups and fixups for calculating the virtual base offsets.  WIP.  
							
							 
							
							... 
							
							
							
							llvm-svn: 79156 
							
						 
						
							2009-08-16 01:46:26 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								0aed0225b4 
								
							 
						 
						
							
							
								
								Improved on ir-gen for synthesis of non-trivial default  
							
							 
							
							... 
							
							
							
							constructor body whose class has non-static data-members which
required non-trivial construction.
llvm-svn: 79125 
							
						 
						
							2009-08-15 18:55:17 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								42af5ba7b7 
								
							 
						 
						
							
							
								
								ir-gen for generation of trvial copy constructor  
							
							 
							
							... 
							
							
							
							call.
llvm-svn: 79034 
							
						 
						
							2009-08-14 20:11:43 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								bcf756cbac 
								
							 
						 
						
							
							
								
								Deconflate virtual base offsets from non-virtual base offsets.  
							
							 
							
							... 
							
							
							
							Deconflate a virtual base primary from a non-virtual base.
llvm-svn: 78971 
							
						 
						
							2009-08-14 01:44:03 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								92b3f47de2 
								
							 
						 
						
							
							
								
								Fixed a bug in ir-gen for copy assignment synthesis.  
							
							 
							
							... 
							
							
							
							Fixed a bug when evaluating those copy-assignments
which need by lazily syntheized. A test case
for these.
llvm-svn: 78965 
							
						 
						
							2009-08-14 00:01:54 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								c2f591b1e6 
								
							 
						 
						
							
							
								
								Refine vtable layout for virtual bases and keep better track of  
							
							 
							
							... 
							
							
							
							primaries.  WIP.
llvm-svn: 78950 
							
						 
						
							2009-08-13 22:53:07 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								41a750271b 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78946 
							
						 
						
							2009-08-13 21:57:51 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								4985b33fd7 
								
							 
						 
						
							
							
								
								Patch to force synthesis of copy assignment operator  
							
							 
							
							... 
							
							
							
							function in the order according to c++03. ir-gen 
for copy assignment in the trivial case and the first
test case.
llvm-svn: 78938 
							
						 
						
							2009-08-13 21:09:41 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								2631d8c517 
								
							 
						 
						
							
							
								
								Minor cleanups.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78927 
							
						 
						
							2009-08-13 18:39:54 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								1300754fdd 
								
							 
						 
						
							
							
								
								Prep for vbase layout refinements.  WIP.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78882 
							
						 
						
							2009-08-13 02:02:14 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								9b630c3040 
								
							 
						 
						
							
							
								
								Minor refactoring of copy assign operator ir-gen. SWIP.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78875 
							
						 
						
							2009-08-13 00:53:36 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								bbd5e8c2cf 
								
							 
						 
						
							
							
								
								More toward synthesizing copy assignments. SWIP.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78861 
							
						 
						
							2009-08-12 23:34:46 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								b661738203 
								
							 
						 
						
							
							
								
								Cleanup.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78858 
							
						 
						
							2009-08-12 23:25:18 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								938f15b033 
								
							 
						 
						
							
							
								
								Refactor.  WIP.  Eventually, this will all go into a vtable builder class.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78857 
							
						 
						
							2009-08-12 23:14:12 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								480212253a 
								
							 
						 
						
							
							
								
								Cleanup.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78855 
							
						 
						
							2009-08-12 23:03:28 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								82165efbc4 
								
							 
						 
						
							
							
								
								Refactor.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78854 
							
						 
						
							2009-08-12 23:00:59 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								dc94d3fd27 
								
							 
						 
						
							
							
								
								Refactor.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78851 
							
						 
						
							2009-08-12 22:34:12 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								de7d4c264a 
								
							 
						 
						
							
							
								
								Patch for synthesizing copy assignment operator.  
							
							 
							
							... 
							
							
							
							WIP.
llvm-svn: 78841 
							
						 
						
							2009-08-12 21:14:35 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								9deb22b850 
								
							 
						 
						
							
							
								
								Improve the secondary vtables to not include vbase offsets.  WIP.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78831 
							
						 
						
							2009-08-12 18:50:26 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								cecfe61cd1 
								
							 
						 
						
							
							
								
								Refine vtable building for the secondary vtables to exclude yet more  
							
							 
							
							... 
							
							
							
							cases where a virtual base was already used as a primary base class.
WIP.
llvm-svn: 78820 
							
						 
						
							2009-08-12 17:42:21 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								9d3405ceab 
								
							 
						 
						
							
							
								
								minor refactoring. No change otherwise.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78582 
							
						 
						
							2009-08-10 18:46:38 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								2a26e351fc 
								
							 
						 
						
							
							
								
								Fixed a ir-gen bug in synthesizing copy constructors.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78570 
							
						 
						
							2009-08-10 17:20:45 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								b57e5d2f4f 
								
							 
						 
						
							
							
								
								Older GCCs don't have vector::data().  
							
							 
							
							... 
							
							
							
							llvm-svn: 78519 
							
						 
						
							2009-08-08 23:43:26 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								b8be93fc92 
								
							 
						 
						
							
							
								
								Add support for global initializers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78515 
							
						 
						
							2009-08-08 23:24:23 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								f40886acca 
								
							 
						 
						
							
							
								
								Refactor some code and implement support for global destructors for static variables.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78507 
							
						 
						
							2009-08-08 21:45:14 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								f6bda5d61e 
								
							 
						 
						
							
							
								
								Refactoring of copy ctor ir-gen. No change in functionality.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78489 
							
						 
						
							2009-08-08 19:31:03 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								7c3d7f6c59 
								
							 
						 
						
							
							
								
								Remove use of uninitized variable.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78448 
							
						 
						
							2009-08-08 00:59:58 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								59b3259284 
								
							 
						 
						
							
							
								
								Synthesize copying of non-static data members with  
							
							 
							
							... 
							
							
							
							non-trivial copy constructors.
llvm-svn: 78445 
							
						 
						
							2009-08-08 00:15:41 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								40134e71be 
								
							 
						 
						
							
							
								
								More synthesis of copy constructors. Work in progress.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78402 
							
						 
						
							2009-08-07 20:22:40 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								a4d94b1a95 
								
							 
						 
						
							
							
								
								Fix typo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78401 
							
						 
						
							2009-08-07 20:14:05 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								c266c6d797 
								
							 
						 
						
							
							
								
								Add ability to generate vcall offsets for primary virtual base.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78396 
							
						 
						
							2009-08-07 19:00:50 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								7c32eab164 
								
							 
						 
						
							
							
								
								Add support for vcall generation for vtables for virtual bases.  WIP.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78357 
							
						 
						
							2009-08-06 23:48:32 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								001309371e 
								
							 
						 
						
							
							
								
								Set and use Elidable in elimination of copy ctors.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78331 
							
						 
						
							2009-08-06 19:12:38 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								2d8d655922 
								
							 
						 
						
							
							
								
								Layout the primary base first in the vtable.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78327 
							
						 
						
							2009-08-06 18:05:22 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								c255f3581a 
								
							 
						 
						
							
							
								
								More layout for virtual tables for virtual bases.  Still in progress.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78314 
							
						 
						
							2009-08-06 15:50:11 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								6b2556f829 
								
							 
						 
						
							
							
								
								Layout virtual bases.  Work in progress.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78308 
							
						 
						
							2009-08-06 13:41:24 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								eb869768f9 
								
							 
						 
						
							
							
								
								Patch to optimize away copy constructor call when  
							
							 
							
							... 
							
							
							
							appropriate.
llvm-svn: 78267 
							
						 
						
							2009-08-06 01:02:49 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								a19718af5a 
								
							 
						 
						
							
							
								
								Refactor some bits.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78254 
							
						 
						
							2009-08-05 22:59:44 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								9beac787c1 
								
							 
						 
						
							
							
								
								vtable building for simple inheritance.  Still in progress.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78110 
							
						 
						
							2009-08-04 21:58:42 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								183c3d2f59 
								
							 
						 
						
							
							
								
								Add beginnigs of rtti generation, wire up more of -fno-exceptions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77751 
							
						 
						
							2009-07-31 23:15:31 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								0b75f23b94 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77722 
							
						 
						
							2009-07-31 20:28:54 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								7ec07a573c 
								
							 
						 
						
							
							
								
								Update for LLVM API changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77638 
							
						 
						
							2009-07-30 23:11:26 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								658fe02d17 
								
							 
						 
						
							
							
								
								Canonicalize else spacing.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77629 
							
						 
						
							2009-07-30 22:28:39 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								a523b2d7a0 
								
							 
						 
						
							
							
								
								Note some other limitations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77626 
							
						 
						
							2009-07-30 21:47:44 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								aa01d2a532 
								
							 
						 
						
							
							
								
								Patch for future ir-gen for destructor calls.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77608 
							
						 
						
							2009-07-30 17:49:11 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								d375454dcf 
								
							 
						 
						
							
							
								
								ir-gen for nested non-virtual base member access  
							
							 
							
							... 
							
							
							
							in current class.
llvm-svn: 77554 
							
						 
						
							2009-07-30 00:10:25 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								9793f0e4d7 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77514 
							
						 
						
							2009-07-29 22:16:19 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								a399dfae19 
								
							 
						 
						
							
							
								
								More cleanup of data member access and then some.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77351 
							
						 
						
							2009-07-28 18:54:57 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								b77659f4ae 
								
							 
						 
						
							
							
								
								Some code cleanup.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77339 
							
						 
						
							2009-07-28 18:09:28 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								5142fbd02e 
								
							 
						 
						
							
							
								
								More work toward data member access ir-gen.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77332 
							
						 
						
							2009-07-28 17:38:28 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								dedf1e4b1a 
								
							 
						 
						
							
							
								
								ir-gen for non-virtual base class initialization  
							
							 
							
							... 
							
							
							
							in constructors.
llvm-svn: 77087 
							
						 
						
							2009-07-25 21:12:28 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b7a2fe6f81 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77012 
							
						 
						
							2009-07-24 23:12:58 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								2a1b5af130 
								
							 
						 
						
							
							
								
								More work toward initialization of objects  
							
							 
							
							... 
							
							
							
							in constructors.
llvm-svn: 76980 
							
						 
						
							2009-07-24 17:57:02 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								83381cc9a6 
								
							 
						 
						
							
							
								
								Move EmitCtorPrologue to CGCXX. Add an assert and FIXMEs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 76498 
							
						 
						
							2009-07-20 23:18:55 +00:00  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Ted Kremenek
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								170229f68d 
								
							 
						 
						
							
							
								
								Update for LLVM API change, and contextify a bunch of related stuff.  
							
							 
							
							... 
							
							
							
							llvm-svn: 75705 
							
						 
						
							2009-07-14 23:10:40 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								ae86c19e68 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 75446 
							
						 
						
							2009-07-13 04:10:07 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c10c8d3e2b 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 75028 
							
						 
						
							2009-07-08 19:05:04 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								9f211fb4fa 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 74986 
							
						 
						
							2009-07-08 01:29:18 +00:00  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								82aea737a7 
								
							 
						 
						
							
							
								
								Move code generation of C++ temporaries into a new file.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72792 
							
						 
						
							2009-06-03 18:40:21 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								fa7c608ecc 
								
							 
						 
						
							
							
								
								Fix a thinko.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72679 
							
						 
						
							2009-06-01 00:26:14 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								ca50119a31 
								
							 
						 
						
							
							
								
								Check for null correctly for new expressions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72678 
							
						 
						
							2009-06-01 00:05:16 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								cba81fc4de 
								
							 
						 
						
							
							
								
								Improve irgen of 'new' further.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72677 
							
						 
						
							2009-05-31 21:53:59 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								96c012ff8b 
								
							 
						 
						
							
							
								
								...and aggregate POD types.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72676 
							
						 
						
							2009-05-31 21:12:26 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								60d0c2c1c2 
								
							 
						 
						
							
							
								
								Support for complex types.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72675 
							
						 
						
							2009-05-31 21:07:58 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								ec71f61608 
								
							 
						 
						
							
							
								
								Better support for scalar POD types in 'new' expressions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72674 
							
						 
						
							2009-05-31 20:56:36 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								1832f52b10 
								
							 
						 
						
							
							
								
								Very basic irgen support for new expressions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72672 
							
						 
						
							2009-05-31 20:21:44 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								4a7b49b56a 
								
							 
						 
						
							
							
								
								Add a new function for emitting new functions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72656 
							
						 
						
							2009-05-31 01:40:14 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								8eb93e72f7 
								
							 
						 
						
							
							
								
								Emit destructors correctly for temporaries.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72655 
							
						 
						
							2009-05-31 00:34:10 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								3be22e27b6 
								
							 
						 
						
							
							
								
								More temporary support.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72648 
							
						 
						
							2009-05-30 23:23:33 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								0a63741a3f 
								
							 
						 
						
							
							
								
								Add code for emitting C++ destructors. Not used yet.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72591 
							
						 
						
							2009-05-29 21:03:38 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								4034a95dc8 
								
							 
						 
						
							
							
								
								Handle operator call expressions where the callee is a member function.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72458 
							
						 
						
							2009-05-27 04:18:27 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								18bb9284ff 
								
							 
						 
						
							
							
								
								Reflow some comments.  
							
							 
							
							... 
							
							
							
							llvm-svn: 71937 
							
						 
						
							2009-05-16 07:57:57 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								1619a5041c 
								
							 
						 
						
							
							
								
								Make codegen for constructors work again.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70785 
							
						 
						
							2009-05-03 17:47:16 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								4ac533dc90 
								
							 
						 
						
							
							
								
								We can now call member functions where the base is a pointer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70579 
							
						 
						
							2009-05-01 21:55:16 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								e8eeffdf16 
								
							 
						 
						
							
							
								
								Add GetAddrOfCXXConstructor and use it.  
							
							 
							
							... 
							
							
							
							llvm-svn: 69328 
							
						 
						
							2009-04-16 23:57:24 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								f747524819 
								
							 
						 
						
							
							
								
								Start attempting to generate code for C++ ctors.  
							
							 
							
							... 
							
							
							
							llvm-svn: 69168 
							
						 
						
							2009-04-15 15:55:24 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								a5d077df73 
								
							 
						 
						
							
							
								
								Support code generation of 'this' exprs  
							
							 
							
							... 
							
							
							
							llvm-svn: 69050 
							
						 
						
							2009-04-14 16:58:56 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								479e6fc7a7 
								
							 
						 
						
							
							
								
								Use the new EmitCallArgs function. No indented functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68652 
							
						 
						
							2009-04-08 23:13:16 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								03a409feda 
								
							 
						 
						
							
							
								
								We weren't generating correct code for calls to variadic member functions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68635 
							
						 
						
							2009-04-08 20:31:57 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								2266e244b5 
								
							 
						 
						
							
							
								
								Simplify C++ member function calls.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68451 
							
						 
						
							2009-04-06 17:45:20 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								e5fd6f2227 
								
							 
						 
						
							
							
								
								Add support for calling C++ member functions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68412 
							
						 
						
							2009-04-03 22:50:24 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								75283ff38a 
								
							 
						 
						
							
							
								
								Centralize basic block creation in CodeGenFunction::createBasicBlock.  
							
							 
							
							... 
							
							
							
							- No functionality change.
llvm-svn: 59017 
							
						 
						
							2008-11-11 02:29:29 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								131be8b4f4 
								
							 
						 
						
							
							
								
								Handle static initializers in Objective-C++ methods.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55250 
							
						 
						
							2008-08-23 19:42:54 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								87fc5a5e6b 
								
							 
						 
						
							
							
								
								Add preliminary (and probably broken) codegen support for C++ static initializers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55180 
							
						 
						
							2008-08-22 16:00:37 +00:00