Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								a643780483 
								
							 
						 
						
							
							
								
								Revert r95393, which broke Clang's self-host.  
							
							 
							
							... 
							
							
							
							llvm-svn: 95430 
							
						 
						
							2010-02-05 21:10:36 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								363589bded 
								
							 
						 
						
							
							
								
								IRgen: Use hasAggregateLLVMType instead of isSingleValueType() for cases that  
							
							 
							
							... 
							
							
							
							need to deal with aggregates specially; this is consistent with the rest of IRgen.
Also, simplify EmitParmDecl and don't worry about using Decl::getNameAsString.
llvm-svn: 95393 
							
						 
						
							2010-02-05 17:51:33 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								3b227bd629 
								
							 
						 
						
							
							
								
								Revert the new reference binding code; I came up with a way simpler solution for the reference binding bug that is preventing self-hosting.  
							
							 
							
							... 
							
							
							
							llvm-svn: 95223 
							
						 
						
							2010-02-03 16:38:03 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								ab0ddb57b1 
								
							 
						 
						
							
							
								
								Start creating CXXBindReferenceExpr nodes when binding complex types to references.  
							
							 
							
							... 
							
							
							
							llvm-svn: 94964 
							
						 
						
							2010-01-31 18:34:51 +00:00  
						
					 
				
					
						
							
							
								 
								Ken Dyck
							
						 
						
							 
							
							
							
							
								
							
							
								160146eba2 
								
							 
						 
						
							
							
								
								Change the return type of ASTContext::getDeclAlignInBytes() to CharUnits and,  
							
							 
							
							... 
							
							
							
							now that the "InBytes" part of the name is implied by the return type, rename
it to getDeclAlign().
llvm-svn: 94681 
							
						 
						
							2010-01-27 17:10:57 +00:00  
						
					 
				
					
						
							
							
								 
								Ken Dyck
							
						 
						
							 
							
							
							
							
								
							
							
								98ca79435a 
								
							 
						 
						
							
							
								
								Introduce CodeGenModule::GetTargetTypeStoreSize() to calculate the store size  
							
							 
							
							... 
							
							
							
							of LLVM types in character units.
llvm-svn: 94542 
							
						 
						
							2010-01-26 13:48:07 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								20bbbd489b 
								
							 
						 
						
							
							
								
								Make sure to always mark a global variable as not being constant if it has a C++ initializer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 94504 
							
						 
						
							2010-01-26 04:02:23 +00:00  
						
					 
				
					
						
							
							
								 
								Ken Dyck
							
						 
						
							 
							
							
							
							
								
							
							
								40775003e6 
								
							 
						 
						
							
							
								
								Roll out ASTContext::getTypeSizeInChars(), replacing instances of  
							
							 
							
							... 
							
							
							
							"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits
ones as appropriate. 
Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType, 
fromQuantity(), and getQuantity() for clarity.
llvm-svn: 93153 
							
						 
						
							2010-01-11 17:06:35 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								61a401caec 
								
							 
						 
						
							
							
								
								Pass ReturnValueSlot to EmitCall. No functionality change yet.  
							
							 
							
							... 
							
							
							
							llvm-svn: 92138 
							
						 
						
							2009-12-24 19:25:24 +00:00  
						
					 
				
					
						
							
							
								 
								Ken Dyck
							
						 
						
							 
							
							
							
							
								
							
							
								8c89d59c82 
								
							 
						 
						
							
							
								
								Move the implementation of ASTContext::getTypeSizeInChars() to the .cpp file to  
							
							 
							
							... 
							
							
							
							avoid #including CharUnits.h in ASTContext.h.
llvm-svn: 91903 
							
						 
						
							2009-12-22 14:23:30 +00:00  
						
					 
				
					
						
							
							
								 
								Ken Dyck
							
						 
						
							 
							
							
							
							
								
							
							
								01e620efaa 
								
							 
						 
						
							
							
								
								Change the return type of ASTContext::getTypeSizeInChars() from uint64_t to the  
							
							 
							
							... 
							
							
							
							new opaque value type, CharUnits. This will help us avoid accidentally mixing 
quantities that are in bit and character units.
llvm-svn: 91689 
							
						 
						
							2009-12-18 15:55:54 +00:00  
						
					 
				
					
						
							
							
								 
								Ken Dyck
							
						 
						
							 
							
							
							
							
								
							
							
								acfe6aa83a 
								
							 
						 
						
							
							
								
								Rename getByteSize() and getTypeSizeInBytes() in ASTContext to getCharWidth()  
							
							 
							
							... 
							
							
							
							and getTypeSizeInChars() to reflect their basis in character type units, not
that of a possibly independent architecture-specific byte.
llvm-svn: 91688 
							
						 
						
							2009-12-18 15:24:05 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								aff69af918 
								
							 
						 
						
							
							
								
								Add cleanups for exceptional edges.  WIP.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90940 
							
						 
						
							2009-12-09 03:35:49 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								ba8451b243 
								
							 
						 
						
							
							
								
								Use StringRef in CGDebugInfo::EmitFunctionStart.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90856 
							
						 
						
							2009-12-08 14:04:35 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								43c7c5befd 
								
							 
						 
						
							
							
								
								Use a Twine to concatenate the name instead of going through std::string.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90854 
							
						 
						
							2009-12-08 13:07:37 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e99c110d06 
								
							 
						 
						
							
							
								
								implement rdar://7346691 by codegen'ing struct/array initializers  
							
							 
							
							... 
							
							
							
							to a memset or a memcpy from a global when possible.
llvm-svn: 90658 
							
						 
						
							2009-12-05 08:22:11 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ffcd06ea7c 
								
							 
						 
						
							
							
								
								simplify a condition and add a testcase.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90652 
							
						 
						
							2009-12-05 06:49:57 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								ce2cd01647 
								
							 
						 
						
							
							
								
								Handle static_assert inside functions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90461 
							
						 
						
							2009-12-03 17:26:31 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								a68e2a2967 
								
							 
						 
						
							
							
								
								Add missing branch to exit.  Seemingly obvious when I look at the  
							
							 
							
							... 
							
							
							
							code, but to track this down was laborious.
llvm-svn: 90356 
							
						 
						
							2009-12-02 23:28:08 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								c76493a65d 
								
							 
						 
						
							
							
								
								Don't pass false (default) for isVolatile parameter to CreateLoad.  
							
							 
							
							... 
							
							
							
							llvm-svn: 90098 
							
						 
						
							2009-11-29 21:23:36 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								48a409eb39 
								
							 
						 
						
							
							
								
								Rename CleanupScope -> DelayedCleanupBlock. No functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 89769 
							
						 
						
							2009-11-24 16:21:10 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								785406bd19 
								
							 
						 
						
							
							
								
								Teach CodeGenFunction::EmitDecl to ignore Using and UsingShadow decls.  
							
							 
							
							... 
							
							
							
							llvm-svn: 89633 
							
						 
						
							2009-11-23 00:07:06 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								643818bdd8 
								
							 
						 
						
							
							
								
								Trim whitespace.  
							
							 
							
							... 
							
							
							
							llvm-svn: 89219 
							
						 
						
							2009-11-18 18:52:31 +00:00  
						
					 
				
					
						
							
							
								 
								Chandler Carruth
							
						 
						
							 
							
							
							
							
								
							
							
								bc55fe26c6 
								
							 
						 
						
							
							
								
								Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library.  
							
							 
							
							... 
							
							
							
							This resolves the layering violation where CodeGen depended on Frontend.
llvm-svn: 86998 
							
						 
						
							2009-11-12 17:24:48 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								4ef1d400d9 
								
							 
						 
						
							
							
								
								Make sure that Type::getAs<ArrayType>() (or Type::getAs<subclass of  
							
							 
							
							... 
							
							
							
							ArrayType>()) does not instantiate. Update all callers that used this
unsafe feature to use the appropriate ASTContext::getAs*ArrayType method.
llvm-svn: 86596 
							
						 
						
							2009-11-09 22:08:55 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								09cc10f9f8 
								
							 
						 
						
							
							
								
								This patch extends CleanupScope to support destruction  
							
							 
							
							... 
							
							
							
							of array objects on block exit. Patch is by Anders Calrsson.
llvm-svn: 86032 
							
						 
						
							2009-11-04 17:57:40 +00:00  
						
					 
				
					
						
							
							
								 
								Tanya Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f9d41df093 
								
							 
						 
						
							
							
								
								Merge constant array and structures. This will create a global variables for arrays and structs that are constant and their initializer is constant. It is on by default but can be disable with the flag -fno-merge-all-constants.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85991 
							
						 
						
							2009-11-04 01:18:09 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								53f9ded62b 
								
							 
						 
						
							
							
								
								Refine volatile handling, specifically, we must have the canonical  
							
							 
							
							... 
							
							
							
							type to look at the volatile specifier.  I found these all from just
hand auditing the code.
llvm-svn: 85967 
							
						 
						
							2009-11-03 23:25:48 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								c9076fecdf 
								
							 
						 
						
							
							
								
								Patch for destruction of array of objects on block exit.  
							
							 
							
							... 
							
							
							
							llvm-svn: 85512 
							
						 
						
							2009-10-29 16:22:54 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								70197d5441 
								
							 
						 
						
							
							
								
								Fix 80-col violation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 84719 
							
						 
						
							2009-10-21 00:42:55 +00:00  
						
					 
				
					
						
							
							
								 
								Nuno Lopes
							
						 
						
							 
							
							
							
							
								
							
							
								8550cb250c 
								
							 
						 
						
							
							
								
								ignore 'using' directive in CodeGenFunction::EmitDecl(). this fixes PR5085  
							
							 
							
							... 
							
							
							
							llvm-svn: 84255 
							
						 
						
							2009-10-16 14:40:52 +00:00  
						
					 
				
					
						
							
							
								 
								Benjamin Kramer
							
						 
						
							 
							
							
							
							
								
							
							
								abd5b90e4c 
								
							 
						 
						
							
							
								
								Simplify pointer creation with the new Type::getInt*Ptr methods.  
							
							 
							
							... 
							
							
							
							llvm-svn: 83964 
							
						 
						
							2009-10-13 10:07:13 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								3028a43f57 
								
							 
						 
						
							
							
								
								Revert 83567.  
							
							 
							
							... 
							
							
							
							llvm-svn: 83676 
							
						 
						
							2009-10-09 22:06:15 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								abf71fa9fc 
								
							 
						 
						
							
							
								
								Record location info before emiting alloca for arguments. This allows arguments to have proper location info.  
							
							 
							
							... 
							
							
							
							llvm-svn: 83567 
							
						 
						
							2009-10-08 18:53:37 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								e33eed5c1e 
								
							 
						 
						
							
							
								
								Set alignment on static function level decls and VLAs. Fixes PR5060.  
							
							 
							
							... 
							
							
							
							llvm-svn: 82868 
							
						 
						
							2009-09-26 18:16:06 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								2114d7c299 
								
							 
						 
						
							
							
								
								Improve debug info generation for __block variables.  
							
							 
							
							... 
							
							
							
							llvm-svn: 82508 
							
						 
						
							2009-09-22 02:12:52 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								ccbabc9645 
								
							 
						 
						
							
							
								
								Fix another byref bug. This should hopefully get QuickLookPlugins building successfully.  
							
							 
							
							... 
							
							
							
							llvm-svn: 81681 
							
						 
						
							2009-09-13 17:55:13 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								6768683933 
								
							 
						 
						
							
							
								
								Add FIXME for alignments that won't be honored.  
							
							 
							
							... 
							
							
							
							llvm-svn: 81620 
							
						 
						
							2009-09-12 18:58:28 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								f8e94f2008 
								
							 
						 
						
							
							
								
								Add support for __block variables with alignment greater than __alignof(void *).  
							
							 
							
							... 
							
							
							
							llvm-svn: 81602 
							
						 
						
							2009-09-12 02:44:18 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								0168f4b202 
								
							 
						 
						
							
							
								
								For __block variables, cache the LLVM types as well as which LLVM field where the variable is stored.  
							
							 
							
							... 
							
							
							
							llvm-svn: 81599 
							
						 
						
							2009-09-12 02:14:24 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								ecf9bf0158 
								
							 
						 
						
							
							
								
								GlobalDecl doesn't have an explicit constructor anymore.  
							
							 
							
							... 
							
							
							
							llvm-svn: 81481 
							
						 
						
							2009-09-10 23:43:36 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								10f2c10b83 
								
							 
						 
						
							
							
								
								Make the forwarding member of block byref structs be a pointer to the block byref struct itself.  
							
							 
							
							... 
							
							
							
							llvm-svn: 81423 
							
						 
						
							2009-09-10 01:32:12 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								277aa36d68 
								
							 
						 
						
							
							
								
								Suppress build warning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 81384 
							
						 
						
							2009-09-09 22:32:15 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								11289f4280 
								
							 
						 
						
							
							
								
								Remove tabs, and whitespace cleanups.  
							
							 
							
							... 
							
							
							
							llvm-svn: 81346 
							
						 
						
							2009-09-09 15:08:12 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								71d1d92d37 
								
							 
						 
						
							
							
								
								Make BuildByRefType take a ValueDecl instead of a QualType and an alignment.  
							
							 
							
							... 
							
							
							
							llvm-svn: 81315 
							
						 
						
							2009-09-09 02:51:03 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								49033712e4 
								
							 
						 
						
							
							
								
								Remove an ErrorUnsupported call.  
							
							 
							
							... 
							
							
							
							llvm-svn: 79261 
							
						 
						
							2009-08-17 18:24:57 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								5b106a7545 
								
							 
						 
						
							
							
								
								Add an IsInitializer flag to EmitAnyExpr. This is used to prevent temporaries from being destroyed when they're bound to a reference variable.  
							
							 
							
							... 
							
							
							
							llvm-svn: 79179 
							
						 
						
							2009-08-16 07:36:22 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								41a750271b 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78946 
							
						 
						
							2009-08-13 21:57:51 +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  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								758428f4e3 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 78259 
							
						 
						
							2009-08-05 23:18:46 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								d44bdb2926 
								
							 
						 
						
							
							
								
								assert(nyi) on attempt to destruct an array of objects.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77993 
							
						 
						
							2009-08-03 20:51:29 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								18c062361d 
								
							 
						 
						
							
							
								
								ir-gen for destructor calls.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77991 
							
						 
						
							2009-08-03 20:20:07 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								f18318cf4e 
								
							 
						 
						
							
							
								
								use CodeGenModule::EmitNullConstant in a couple of places.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77915 
							
						 
						
							2009-08-02 21:18:22 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								0b75f23b94 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77722 
							
						 
						
							2009-07-31 20:28:54 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								658fe02d17 
								
							 
						 
						
							
							
								
								Canonicalize else spacing.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77629 
							
						 
						
							2009-07-30 22:28:39 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								9793f0e4d7 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77514 
							
						 
						
							2009-07-29 22:16:19 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								ade90fd1ba 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77492 
							
						 
						
							2009-07-29 18:54:39 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								600dfac30a 
								
							 
						 
						
							
							
								
								Switch to using llvm::Value::getName()  
							
							 
							
							... 
							
							
							
							llvm-svn: 77147 
							
						 
						
							2009-07-26 08:32:30 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								b7a2fe6f81 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 77012 
							
						 
						
							2009-07-24 23:12:58 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								669521c97c 
								
							 
						 
						
							
							
								
								Fix thinko.  
							
							 
							
							... 
							
							
							
							llvm-svn: 76362 
							
						 
						
							2009-07-19 07:03:11 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								b6adc43f6e 
								
							 
						 
						
							
							
								
								Avoid generation of dead code in a few more situations.  
							
							 
							
							... 
							
							
							
							- Emit variable declarations as "simple", we want to avoid forcing the creation
   of a dummy basic block, but still need to make the variable available for
   later use.
 - With that, we can now skip IRgen for other unreachable statements (which
   don't define a label).
 - Anders, I added two fixmes on calls to EmitVLASize, can you check them?
llvm-svn: 76361 
							
						 
						
							2009-07-19 06:58:07 +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
							
						 
						
							 
							
							
							
							
								
							
							
								b4b64ca752 
								
							 
						 
						
							
							
								
								Remove the ASTContext parameter from the attribute-related methods of Decl.  
							
							 
							
							... 
							
							
							
							The implementations of these methods can Use Decl::getASTContext() to get the ASTContext.
This commit touches a lot of files since call sites for these methods are everywhere.
I used pre-tokenized "carbon.h" and "cocoa.h" headers to do some timings, and there was no real time difference between before the commit and after it.
llvm-svn: 74501 
							
						 
						
							2009-06-30 02:34:44 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								2872df839d 
								
							 
						 
						
							
							
								
								typo  
							
							 
							
							... 
							
							
							
							llvm-svn: 74305 
							
						 
						
							2009-06-26 18:33:42 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								78bd61f661 
								
							 
						 
						
							
							
								
								Move the static DeclAttrs map into ASTContext. Fixes <rdar://problem/6983177>.  
							
							 
							
							... 
							
							
							
							llvm-svn: 73702 
							
						 
						
							2009-06-18 16:11:24 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								cbc2bcaf17 
								
							 
						 
						
							
							
								
								As an optimization, we maintain a cache of generated  
							
							 
							
							... 
							
							
							
							___Block_byref_id_object_dispose and ___Block_byref_id_object_copy
functions so that we can simply reuse instead of creating a new one.
Additionally, add an assert to ensure no one yet tries to align a
__block variable beyond the alignment of a pointer as the codegen is
incomplete.
llvm-svn: 72974 
							
						 
						
							2009-06-05 23:26:36 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								55422ad068 
								
							 
						 
						
							
							
								
								Add IRGen support for local variables of reference type.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72462 
							
						 
						
							2009-05-27 05:39:06 +00:00  
						
					 
				
					
						
							
							
								 
								Sanjiv Gupta
							
						 
						
							 
							
							
							
							
								
							
							
								47e296149e 
								
							 
						 
						
							
							
								
								Targets like PIC16 generate Static decls for automatic variables, emit the appropriate debug descriptor as well in that case.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72261 
							
						 
						
							2009-05-22 13:54:25 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								8370964257 
								
							 
						 
						
							
							
								
								Pass the destination QualType to EmitStoreOfScalar. No functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72118 
							
						 
						
							2009-05-19 18:50:41 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								9b02760923 
								
							 
						 
						
							
							
								
								Since we miscompile many cases when declaring a variable with a reference type, make them unsupported for now.  
							
							 
							
							... 
							
							
							
							llvm-svn: 72034 
							
						 
						
							2009-05-18 19:55:29 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								2c002929b2 
								
							 
						 
						
							
							
								
								Fixup debug information for the location information for __block  
							
							 
							
							... 
							
							
							
							variables.  For this to work, the backend needs to handle more complex
forms for locations.
A typical utterance would be:
        %forwarding = getelementptr %0* %use_by_ref, i32 0, i32 1               ; <i8**> [#uses=1]
        %0 = load i8** %forwarding              ; <i8*> [#uses=1]
        %1 = bitcast i8* %0 to %0*              ; <%0*> [#uses=1]
        %x = getelementptr %0* %1, i32 0, i32 4         ; <i32*> [#uses=1]
        %2 = bitcast i32* %x to { }*            ; <{ }*> [#uses=1]
        call void @llvm.dbg.declare({ }* %2, { }* bitcast (%llvm.dbg.variable.type* @llvm.dbg.variable to { }*))
Presently when selection finds something it doesn't understand, it
just avoids generating any information, which is safe, just
incomplete.  Radar 6867696
llvm-svn: 71824 
							
						 
						
							2009-05-15 00:29:54 +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
							
						 
						
							 
							
							
							
							
								
							
							
								6f5c15688d 
								
							 
						 
						
							
							
								
								When calling the cleanup function specified by __attribute__((cleanup)), make sure to bitcast the argument so it has the same type as the first argument of the cleanup function. Fixes <rdar://problem/6827047>.  
							
							 
							
							... 
							
							
							
							llvm-svn: 70098 
							
						 
						
							2009-04-26 00:34:20 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								bc633beda4 
								
							 
						 
						
							
							
								
								PR3247: Handle a couple of cases where we weren't emitting VLA sizes (and  
							
							 
							
							... 
							
							
							
							subsequently crashed).
llvm-svn: 69567 
							
						 
						
							2009-04-20 03:54:15 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								4f856744e5 
								
							 
						 
						
							
							
								
								PR3853: Add CodeGen support for __thread.  
							
							 
							
							... 
							
							
							
							llvm-svn: 69545 
							
						 
						
							2009-04-19 21:05:03 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								0ca1660129 
								
							 
						 
						
							
							
								
								Audit __private_extern__ handling.  
							
							 
							
							... 
							
							
							
							- Exposed quite a few Sema issues and a CodeGen crash.
 - See FIXMEs in test case, and in SemaDecl.cpp (PR3983).
I'm skeptical that __private_extern__ should actually be a storage
class value. I think that __private_extern__ basically amounts to
  extern A __attribute__((visibility("hidden")))
and would be better off handled (a) as that, or (b) with an extra bit
in the VarDecl.
llvm-svn: 69020 
							
						 
						
							2009-04-14 02:25:56 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								4184ac847f 
								
							 
						 
						
							
							
								
								Update to use hasAttr() instead of getAttr().  
							
							 
							
							... 
							
							
							
							- No functionality change.
llvm-svn: 68987 
							
						 
						
							2009-04-13 21:08:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								6bc4aaa2eb 
								
							 
						 
						
							
							
								
								Make messages consistent.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68756 
							
						 
						
							2009-04-10 00:37:08 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5286e774ee 
								
							 
						 
						
							
							
								
								reject codegen of __thread variables as unimplemented, rdar://6775265  
							
							 
							
							... 
							
							
							
							llvm-svn: 68755 
							
						 
						
							2009-04-10 00:35:59 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								80f97ab08f 
								
							 
						 
						
							
							
								
								Add a destination type argument to EmitConstantExpr. This will be used for when the destination has a reference type. (No functionality change yet)  
							
							 
							
							... 
							
							
							
							llvm-svn: 68593 
							
						 
						
							2009-04-08 04:48:15 +00:00  
						
					 
				
					
						
							
							
								 
								Sanjiv Gupta
							
						 
						
							 
							
							
							
							
								
							
							
								639f2d92f8 
								
							 
						 
						
							
							
								
								Don't use static globals for params as it confuses the optimzer that their values are never being used in the function.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68328 
							
						 
						
							2009-04-02 17:51:27 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								f7e01ffa4a 
								
							 
						 
						
							
							
								
								When compiling C++ code, always mangle the names of static block var decls.  
							
							 
							
							... 
							
							
							
							llvm-svn: 68280 
							
						 
						
							2009-04-02 03:29:47 +00:00  
						
					 
				
					
						
							
							
								 
								Fariborz Jahanian
							
						 
						
							 
							
							
							
							
								
							
							
								ed308a94da 
								
							 
						 
						
							
							
								
								Code gen does not yet supports __asm__ on a variable  
							
							 
							
							... 
							
							
							
							declaration. Reject it.
llvm-svn: 68058 
							
						 
						
							2009-03-30 20:32:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e09ad90882 
								
							 
						 
						
							
							
								
								don't set the name of a call instruction to "call" in release-asserts  
							
							 
							
							... 
							
							
							
							build.  This shaves another 3% off.
llvm-svn: 67460 
							
						 
						
							2009-03-22 00:32:22 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								47640221da 
								
							 
						 
						
							
							
								
								fix CreateTempAlloca to not set a name on the alloca for temporaries  
							
							 
							
							... 
							
							
							
							in release-assert builds.  For automatic variables, explicitly set
a name with setName that does not make a temporary std::string.
This speeds up -emit-llvm-only -disable-free on PR3810 by 4.6%
llvm-svn: 67459 
							
						 
						
							2009-03-22 00:24:14 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								efd7caa825 
								
							 
						 
						
							
							
								
								Fixup codegen for nested block literals so that we generate  
							
							 
							
							... 
							
							
							
							copy_helpers and dispose_helpers as necessary for them.
llvm-svn: 67453 
							
						 
						
							2009-03-21 21:00:35 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								692c6e3729 
								
							 
						 
						
							
							
								
								Fix codegen for support for super inside block literal expressions.  
							
							 
							
							... 
							
							
							
							llvm-svn: 67406 
							
						 
						
							2009-03-20 21:53:12 +00:00  
						
					 
				
					
						
							
							
								 
								Sanjiv Gupta
							
						 
						
							 
							
							
							
							
								
							
							
								06cc45ec85 
								
							 
						 
						
							
							
								
								Mangle param names with .arg. only.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66343 
							
						 
						
							2009-03-07 18:09:52 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								90d8daf592 
								
							 
						 
						
							
							
								
								Remove some FIXMEs for block literals that should be close to working.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66322 
							
						 
						
							2009-03-07 06:04:31 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								f89230d93b 
								
							 
						 
						
							
							
								
								Complete __Block_byref_id_object_copy cogegen for block literals.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66257 
							
						 
						
							2009-03-06 06:12:24 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								fbe25dd1e4 
								
							 
						 
						
							
							
								
								Finish off __Block_byref_id_object_dispose codegen for block literals.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66247 
							
						 
						
							2009-03-06 04:53:30 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								846bf9a797 
								
							 
						 
						
							
							
								
								Remove extra arg.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66243 
							
						 
						
							2009-03-06 02:45:21 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								ee2a5ee5f7 
								
							 
						 
						
							
							
								
								More codegen support for the copy/dispose helpers for block literals.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66241 
							
						 
						
							2009-03-06 02:29:21 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								0c74327715 
								
							 
						 
						
							
							
								
								Framework for codegen for copy/dispose helpers.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66231 
							
						 
						
							2009-03-06 01:33:24 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								f804897ee9 
								
							 
						 
						
							
							
								
								Don't mangle names of local variables.  
							
							 
							
							... 
							
							
							
							- For one thing, this adds unneeded overhead; for another, this
   routine can be used to emit unnamed decls which we shouldn't try to
   mangle.
llvm-svn: 66212 
							
						 
						
							2009-03-05 22:59:19 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								4446dcf061 
								
							 
						 
						
							
							
								
								prep work for copy/destroy helpers for block literals.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66159 
							
						 
						
							2009-03-05 08:32:30 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								cd1280b405 
								
							 
						 
						
							
							
								
								Avoid dispose calls when only doing gc.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66126 
							
						 
						
							2009-03-05 02:34:38 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								626aecc4be 
								
							 
						 
						
							
							
								
								Add codegen support for __block variables to call _Block_object_dispose as necessary.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66117 
							
						 
						
							2009-03-05 01:23:13 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								3efa41a478 
								
							 
						 
						
							
							
								
								Continuation of PR3687: fix more places to use the right type for  
							
							 
							
							... 
							
							
							
							booleans.
llvm-svn: 66012 
							
						 
						
							2009-03-04 04:25:14 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								a1493b3b4d 
								
							 
						 
						
							
							
								
								Comment fix: change a question to an answer.  
							
							 
							
							... 
							
							
							
							llvm-svn: 66010 
							
						 
						
							2009-03-04 04:22:58 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								97d01d50d9 
								
							 
						 
						
							
							
								
								Improved ABI compliance for __block variables.  No testcases yet as we  
							
							 
							
							... 
							
							
							
							still give an unsupported error for them due to the fact this is a
work in progress.
llvm-svn: 66007 
							
						 
						
							2009-03-04 03:23:46 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								1db7d04b71 
								
							 
						 
						
							
							
								
								First cut CodeGen support for __block variables.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65688 
							
						 
						
							2009-02-28 09:07:16 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								1cdbc5404b 
								
							 
						 
						
							
							
								
								Allow constant initializers to reference their defining decl.  
							
							 
							
							... 
							
							
							
							- PR3662.
llvm-svn: 65472 
							
						 
						
							2009-02-25 20:08:33 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								a374e60e57 
								
							 
						 
						
							
							
								
								Fold GeneraticStaticBlockVarDecl into callers.  
							
							 
							
							... 
							
							
							
							- No functionality change.
llvm-svn: 65470 
							
						 
						
							2009-02-25 19:45:19 +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  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								34ef305759 
								
							 
						 
						
							
							
								
								Last part of PR3254: use the same alignment computation in Sema and  
							
							 
							
							... 
							
							
							
							CodeGen.  I'm not sure whether this actually makes any visible 
difference, but it's better to be consistent anyway.
llvm-svn: 65259 
							
						 
						
							2009-02-22 03:23:43 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								f5a5c4fa11 
								
							 
						 
						
							
							
								
								Fix spacing.  
							
							 
							
							... 
							
							
							
							llvm-svn: 65089 
							
						 
						
							2009-02-20 00:19:45 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								5f361c9f1e 
								
							 
						 
						
							
							
								
								Address Chris's comments regarding C++ name mangling.  
							
							 
							
							... 
							
							
							
							llvm-svn: 64984 
							
						 
						
							2009-02-18 23:53:56 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								38ad1e6138 
								
							 
						 
						
							
							
								
								Change EmitConstantExpr to allow failure.  
							
							 
							
							... 
							
							
							
							IRgen no longer relies on isConstantInitializer, instead we just try
to emit the constant. If that fails then in C we emit an error
unsupported (this occurs when Sema accepted something that it doesn't
know how to fold, and IRgen doesn't know how to emit) and in C++ we
emit a guarded initializer.
This ends up handling a few more cases, because IRgen was actually
able to emit some of the constants Sema accepts but can't Evaluate().
For example, PR3398.
llvm-svn: 64780 
							
						 
						
							2009-02-17 18:43:32 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								f9f039865f 
								
							 
						 
						
							
							
								
								Set constant bit on static block vars as well. Patch by Anders Johnson!q  
							
							 
							
							... 
							
							
							
							llvm-svn: 64502 
							
						 
						
							2009-02-13 22:58:39 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								128a138a57 
								
							 
						 
						
							
							
								
								IRgen support for attribute used.  
							
							 
							
							... 
							
							
							
							- PR3566
llvm-svn: 64492 
							
						 
						
							2009-02-13 22:08:43 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								63784f4e5e 
								
							 
						 
						
							
							
								
								Add CodeGen support for the nodebug attribute.  
							
							 
							
							... 
							
							
							
							llvm-svn: 64445 
							
						 
						
							2009-02-13 08:11:52 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								5fec5b0495 
								
							 
						 
						
							
							
								
								Add basic support for C++ name mangling according to the Itanium C++  
							
							 
							
							... 
							
							
							
							ABI to the CodeGen library. Since C++ code-generation is so
incomplete, we can't exercise much of this mangling code. However, a
few smoke tests show that it's doing the same thing as GCC. When C++
codegen matures, we'll extend the ABI tester to verify name-mangling
as well, and complete the implementation here.
At this point, the major client of name mangling is in the uses of the
new "overloadable" attribute in C, which allows overloading. Any
"overloadable" function in C (or in an extern "C" block in C++) will
be mangled the same way that the corresponding C++ function would be
mangled.
llvm-svn: 64413 
							
						 
						
							2009-02-13 00:10:09 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								53bf741208 
								
							 
						 
						
							
							
								
								Honor attribute section on static block var decls.  
							
							 
							
							... 
							
							
							
							llvm-svn: 64411 
							
						 
						
							2009-02-12 23:32:54 +00:00  
						
					 
				
					
						
							
							
								 
								Sanjiv Gupta
							
						 
						
							 
							
							
							
							
								
							
							
								e99ad00fd2 
								
							 
						 
						
							
							
								
								Function parameters for PIC16 are like local variables. So use the keyword ".auto." to mangle their names. The working of PIC16AsmPrinter relies on that keyword currently.  
							
							 
							
							... 
							
							
							
							llvm-svn: 64198 
							
						 
						
							2009-02-10 04:17:25 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								15949b3a32 
								
							 
						 
						
							
							
								
								Use the new cleanup infrastructure for VLAs. The next iteration of patches will remove the old Obj-C EH cleanup code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 64161 
							
						 
						
							2009-02-09 20:41:50 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								cadb9a6a34 
								
							 
						 
						
							
							
								
								Emit a cleanup block for the cleanup attribute  
							
							 
							
							... 
							
							
							
							llvm-svn: 64052 
							
						 
						
							2009-02-07 23:51:38 +00:00  
						
					 
				
					
						
							
							
								 
								Mike Stump
							
						 
						
							 
							
							
							
							
								
							
							
								1d91dd98ad 
								
							 
						 
						
							
							
								
								Fixup goto codegen in and around VLAs.  
							
							 
							
							... 
							
							
							
							llvm-svn: 64014 
							
						 
						
							2009-02-07 12:52:26 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								31f8649f83 
								
							 
						 
						
							
							
								
								Follow Eli's advice and store the VLA size with the native size_t type. Fixes PR3491.  
							
							 
							
							... 
							
							
							
							llvm-svn: 63879 
							
						 
						
							2009-02-05 19:43:10 +00:00  
						
					 
				
					
						
							
							
								 
								Sanjiv Gupta
							
						 
						
							 
							
							
							
							
								
							
							
								c1b58d40e6 
								
							 
						 
						
							
							
								
								Targets that don't have stack use global address space for parameters.  
							
							 
							
							... 
							
							
							
							Specify external linkage for such globals so that llvm optimizer do
not assume there values initialized as zero.
llvm-svn: 63636 
							
						 
						
							2009-02-03 18:07:49 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								7139af42ce 
								
							 
						 
						
							
							
								
								Rename Expr::isConstantExpr to Expr::isConstantInitializer; this more  
							
							 
							
							... 
							
							
							
							accurately states what the function is trying to do and how it is 
different from Expr::isEvaluatable.  Also get rid of a parameter that is both 
unused and inaccurate.
llvm-svn: 62951 
							
						 
						
							2009-01-25 02:32:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8a42586c54 
								
							 
						 
						
							
							
								
								more SourceLocation lexicon change: instead of referring to the  
							
							 
							
							... 
							
							
							
							"logical" location, refer to the "instantiation" location.
llvm-svn: 62316 
							
						 
						
							2009-01-16 07:36:28 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								f4084708cd 
								
							 
						 
						
							
							
								
								Make VLAs usable, and make basic usage work correctly.  Also, add a  
							
							 
							
							... 
							
							
							
							simple test that actually does VLA codegen.
Note that despite the fact that the alloca isn't in the entry block, it 
should dominate all uses; this is guaranteed by the restrictions on goto 
into VLA scope in C99.
llvm-svn: 61291 
							
						 
						
							2008-12-20 23:11:59 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								5d985f5f16 
								
							 
						 
						
							
							
								
								Handle typedefs to VLAs (Emit the size expr when we encounter the typedef  
							
							 
							
							... 
							
							
							
							llvm-svn: 61290 
							
						 
						
							2008-12-20 21:51:53 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								8a01b79274 
								
							 
						 
						
							
							
								
								Change EmitVLASize to take a QualType that must be a variably modified type.  
							
							 
							
							... 
							
							
							
							Emit the size even if the declared type is a variably modified type. This lets us handle
void f(int n) {
  int (*a)[n];
  
  printf("size: %d\n", sizeof(*a));
}
llvm-svn: 61285 
							
						 
						
							2008-12-20 20:46:34 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								e388a5bf44 
								
							 
						 
						
							
							
								
								Split up emitting of VLA sizes and getting the size of a VLA.  
							
							 
							
							... 
							
							
							
							llvm-svn: 61284 
							
						 
						
							2008-12-20 20:27:15 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								6200f0c533 
								
							 
						 
						
							
							
								
								Add some ErrorUnsupported calls and turn on VLA codegen again.  
							
							 
							
							... 
							
							
							
							llvm-svn: 61283 
							
						 
						
							2008-12-20 19:33:21 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								e69336c22d 
								
							 
						 
						
							
							
								
								disable Anders' recent VLA patch, this fixes PR3209.  
							
							 
							
							... 
							
							
							
							llvm-svn: 60989 
							
						 
						
							2008-12-13 18:58:59 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								30032889ae 
								
							 
						 
						
							
							
								
								Implement allocation and sizeof VLAs. This is very basic for now.  
							
							 
							
							... 
							
							
							
							llvm-svn: 60943 
							
						 
						
							2008-12-12 07:38:43 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								1cbaacc4a0 
								
							 
						 
						
							
							
								
								Migrate some stuff from NamedDecl::getName() to  
							
							 
							
							... 
							
							
							
							NamedDecl::getNameAsString() to make it more explicit.
llvm-svn: 59937 
							
						 
						
							2008-11-24 04:00:27 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								86d7d91366 
								
							 
						 
						
							
							
								
								Rename NamedDecl::getIdentifierName() to ::getNameAsCString() and make it  
							
							 
							
							... 
							
							
							
							assert if the name is not an identifier.  Update callers to do the right
thing and avoid this method in unsafe cases.  This also fixes an objc
warning that was missing a space, and migrates a couple more to taking
IdentifierInfo and QualTypes instead of std::strings.
llvm-svn: 59936 
							
						 
						
							2008-11-24 03:54:41 +00:00  
						
					 
				
					
						
							
							
								 
								Douglas Gregor
							
						 
						
							 
							
							
							
							
								
							
							
								77324f3854 
								
							 
						 
						
							
							
								
								Introduction the DeclarationName class, as a single, general method of  
							
							 
							
							... 
							
							
							
							representing the names of declarations in the C family of
languages. DeclarationName is used in NamedDecl to store the name of
the declaration (naturally), and ObjCMethodDecl is now a NamedDecl.
llvm-svn: 59441 
							
						 
						
							2008-11-17 14:58:09 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								affb37337f 
								
							 
						 
						
							
							
								
								reimplement debug info generation in terms of DebugInfo.h instead of  
							
							 
							
							... 
							
							
							
							using MachineModuleInfo.  This runs at about the same speed as the old
code, but fixes a bunch of bugs and is simpler and shorter.
llvm-svn: 58971 
							
						 
						
							2008-11-10 06:08:34 +00:00  
						
					 
				
					
						
							
							
								 
								Sanjiv Gupta
							
						 
						
							 
							
							
							
							
								
							
							
								d79592448b 
								
							 
						 
						
							
							
								
								Made the mechanism of defining preprocessor defs for maxint, ptrdiff_t, wchar  
							
							 
							
							... 
							
							
							
							etc more generic. For some targets, long may not be equal to pointer size. For
example: PIC16 has int as i16, ptr as i16 but long as i32.
Also fixed a few build warnings in assert() functions in CFRefCount.cpp,
CGDecl.cpp, SemaDeclCXX.cpp and ParseDeclCXX.cpp.
llvm-svn: 58501 
							
						 
						
							2008-10-31 09:52:39 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								b9fd902fdc 
								
							 
						 
						
							
							
								
								Change CGDebugInfo::setLocation to just ignore invalid locations. This  
							
							 
							
							... 
							
							
							
							simplifies clients.
Also, add assert that RegionStack is empty when the CGDebugInfo is
destroyed.
llvm-svn: 57684 
							
						 
						
							2008-10-17 16:15:48 +00:00  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								88e1b97f16 
								
							 
						 
						
							
							
								
								Simplify handling of struct/union/class tags.  
							
							 
							
							... 
							
							
							
							Instead of using two sets of Decl kinds (Struct/Union/Class and CXXStruct/CXXUnion/CXXClass), use one 'Record' and one 'CXXRecord' Decl kind and make tag kind a property of TagDecl.
Cleans up the code a bit and better reflects that Decl class structure.
llvm-svn: 57541 
							
						 
						
							2008-10-15 00:42:39 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								8fc81b02e2 
								
							 
						 
						
							
							
								
								Add support for ABIArgInfo::Expand  
							
							 
							
							... 
							
							
							
							- No functionality change.
llvm-svn: 56269 
							
						 
						
							2008-09-17 00:51:38 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								a799807dea 
								
							 
						 
						
							
							
								
								Downgrade a number of FIXME asserts to ErrorUnsupported.  
							
							 
							
							... 
							
							
							
							- Notably VLAs
llvm-svn: 55544 
							
						 
						
							2008-08-29 17:28:43 +00:00  
						
					 
				
					
						
							
							
								 
								Anders Carlsson
							
						 
						
							 
							
							
							
							
								
							
							
								4c03d98e45 
								
							 
						 
						
							
							
								
								Handle static variables inside obj-c methods.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55297 
							
						 
						
							2008-08-25 01:38:19 +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  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								a94ecd2a0b 
								
							 
						 
						
							
							
								
								Add NeXT runtime support for generating methods.  
							
							 
							
							... 
							
							
							
							Change CodeGenFunction::EmitParmDecl to take either a ParmVarDecl or an
  ImplicitParamDecl.
Drop hasAggregateLLVMType from CodeGenModule.cpp (use version in
  CodeGenFunction).
Change the Objective-C method generation to use EmitParmDecl for
  implicit parameters.
llvm-svn: 54838 
							
						 
						
							2008-08-16 03:19:19 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								6e8aa537f8 
								
							 
						 
						
							
							
								
								More #include cleaning  
							
							 
							
							... 
							
							
							
							- Drop {Decl.h,DeclObjC.h,IdentifierTable.h} from Expr.h
 - Moved Sema::getCurMethodDecl() out of line (dependent on
   ObjCMethodDecl via dyn_cast).
llvm-svn: 54629 
							
						 
						
							2008-08-11 05:35:13 +00:00  
						
					 
				
					
						
							
							
								 
								Daniel Dunbar
							
						 
						
							 
							
							
							
							
								
							
							
								ad319a73f2 
								
							 
						 
						
							
							
								
								More #include cleaning  
							
							 
							
							... 
							
							
							
							- Remove internal uses of AST.h
llvm-svn: 54628 
							
						 
						
							2008-08-11 05:00:27 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								327944b343 
								
							 
						 
						
							
							
								
								Basic support for volatile loads and stores. Stores the volatile  
							
							 
							
							... 
							
							
							
							qualifier in the lvalue, and changes lvalue loads/stores to honor 
the volatile flag.  Places which need some further attention are marked 
with FIXMEs.
Patch by Cédric Venet.
llvm-svn: 52264 
							
						 
						
							2008-06-13 23:01:12 +00:00  
						
					 
				
					
						
							
							
								 
								Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								d0c1df4c84 
								
							 
						 
						
							
							
								
								Make CodeGenFunction::EmitDecl() recognise CXXClass/CXXStruct/CXXUnion.  
							
							 
							
							... 
							
							
							
							llvm-svn: 52162 
							
						 
						
							2008-06-09 23:42:47 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								c98a7add43 
								
							 
						 
						
							
							
								
								Don't crash emitting an initializer for a static local with union type.  
							
							 
							
							... 
							
							
							
							This fix just makes sure to construct the global with the appropriate 
type, and fixes up the one user this affects to compensate.
llvm-svn: 52084 
							
						 
						
							2008-06-08 01:23:18 +00:00  
						
					 
				
					
						
							
							
								 
								Sanjiv Gupta
							
						 
						
							 
							
							
							
							
								
							
							
								158143ad54 
								
							 
						 
						
							
							
								
								Emit debug information for global and static variables when -g is specified.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51993 
							
						 
						
							2008-06-05 08:59:10 +00:00  
						
					 
				
					
						
							
							
								 
								Eli Friedman
							
						 
						
							 
							
							
							
							
								
							
							
								252e5f1b29 
								
							 
						 
						
							
							
								
								Calculate alignment for local variables.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51826 
							
						 
						
							2008-05-31 21:20:41 +00:00  
						
					 
				
					
						
							
							
								 
								Sanjiv Gupta
							
						 
						
							 
							
							
							
							
								
							
							
								18de624ca0 
								
							 
						 
						
							
							
								
								Emit parameter and local variable debug information with -g.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51765 
							
						 
						
							2008-05-30 10:30:31 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								5d30975e5e 
								
							 
						 
						
							
							
								
								Change uses of llvm::Type::isFirstClassType to use the new  
							
							 
							
							... 
							
							
							
							llvm::Type::isSingleValueType. Currently these two functions have
the same behavior, but soon isFirstClassType will return true for
struct and array types.
Clang may some day want to use of isFirstClassType for some of
these some day as an optimization, but it'll require some
consideration.
llvm-svn: 51446 
							
						 
						
							2008-05-22 22:12:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								b781dc79aa 
								
							 
						 
						
							
							
								
								Add basic support for the pic-* target triples and add support for  
							
							 
							
							... 
							
							
							
							targets that do not support recursion (and thus codegen stack variables
as globals).
Patch contributed by Alireza Moshtaghi!
llvm-svn: 50844 
							
						 
						
							2008-05-08 05:58:21 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								faae081131 
								
							 
						 
						
							
							
								
								Generate code for annotation attributes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 49951 
							
						 
						
							2008-04-19 04:17:09 +00:00  
						
					 
				
					
						
							
							
								 
								Steve Naroff
							
						 
						
							 
							
							
							
							
								
							
							
								08899ff85d 
								
							 
						 
						
							
							
								
								Remove FileVarDecl and BlockVarDecl. They are replaced by VarDecl::isBlockVarDecl() and VarDecl::isFileVarDecl().  
							
							 
							
							... 
							
							
							
							This is a fairly mechanical/large change. As a result, I avoided making any changes/simplifications that weren't directly related. I did break two Analysis tests. I also have a couple FIXME's in UninitializedValues.cpp. Ted, can you take a look? If the bug isn't obvious, I am happy to dig in and fix it (since I broke it).
llvm-svn: 49748 
							
						 
						
							2008-04-15 22:42:06 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								fc4379f916 
								
							 
						 
						
							
							
								
								remove the Decl::getCanonicalType() method.  
							
							 
							
							... 
							
							
							
							llvm-svn: 49295 
							
						 
						
							2008-04-06 23:10:54 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								f3bc75afcf 
								
							 
						 
						
							
							
								
								Since isComplexType() no longer returns true for _Complex integers, the code  
							
							 
							
							... 
							
							
							
							generator needs to call isAnyComplexType().  This fixes PR1960.
llvm-svn: 49220 
							
						 
						
							2008-04-04 16:54:41 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								5506f8cf4c 
								
							 
						 
						
							
							
								
								Codegen assignment to self correctly, patch by David Chisnall!  
							
							 
							
							... 
							
							
							
							llvm-svn: 49201 
							
						 
						
							2008-04-04 04:07:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								7a51313d8a 
								
							 
						 
						
							
							
								
								Make a major restructuring of the clang tree: introduce a top-level  
							
							 
							
							... 
							
							
							
							lib dir and move all the libraries into it.  This follows the main
llvm tree, and allows the libraries to be built in parallel.  The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in.  This speeds
up parallel builds, particularly incremental ones.
llvm-svn: 48402 
							
						 
						
							2008-03-15 23:59:48 +00:00