0e0189d64d 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 77267 
							
						 
						
							2009-07-27 22:29:56 +00:00  
				
					
						
							
							
								 
						
							
								b7a2fe6f81 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 77012 
							
						 
						
							2009-07-24 23:12:58 +00:00  
				
					
						
							
							
								 
						
							
								8a286fbdb9 
								
							 
						 
						
							
							
								
								Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methods  
							
							... 
							
							
							
							until Doug Gregor's Type smart pointer code lands (or more discussion occurs).
These methods just call the new Type::getAs<XXX> methods, so we still have
reduced implementation redundancy. Having explicit getAsXXXType() methods makes
it easier to set breakpoints in the debugger.
llvm-svn: 76193 
							
						 
						
							2009-07-17 17:50:17 +00:00  
				
					
						
							
							
								 
						
							
								e3fb4b6524 
								
							 
						 
						
							
							
								
								Add member template 'Type::getAs<T>', which converts a Type* to a respective T*.  
							
							... 
							
							
							
							This method is intended to eventually replace the individual
Type::getAsXXXType<> methods.
The motivation behind this change is twofold:
1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of
them are basically copy-and-paste.
2) By centralizing the implementation of the getAs<Type> logic we can more
smoothly move over to Doug Gregor's proposed canonical type smart pointer
scheme.
Along with this patch:
a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>.
b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>.
llvm-svn: 76098 
							
						 
						
							2009-07-16 19:58:26 +00:00  
				
					
						
							
							
								 
						
							
								170229f68d 
								
							 
						 
						
							
							
								
								Update for LLVM API change, and contextify a bunch of related stuff.  
							
							... 
							
							
							
							llvm-svn: 75705 
							
						 
						
							2009-07-14 23:10:40 +00:00  
				
					
						
							
							
								 
						
							
								ae86c19e68 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 75446 
							
						 
						
							2009-07-13 04:10:07 +00:00  
				
					
						
							
							
								 
						
							
								c10c8d3e2b 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 75028 
							
						 
						
							2009-07-08 19:05:04 +00:00  
				
					
						
							
							
								 
						
							
								9f211fb4fa 
								
							 
						 
						
							
							
								
								Update for LLVM API change.  
							
							... 
							
							
							
							llvm-svn: 74986 
							
						 
						
							2009-07-08 01:29:18 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								18bb9284ff 
								
							 
						 
						
							
							
								
								Reflow some comments.  
							
							... 
							
							
							
							llvm-svn: 71937 
							
						 
						
							2009-05-16 07:57:57 +00:00  
				
					
						
							
							
								 
						
							
								46813bbfa2 
								
							 
						 
						
							
							
								
								Fix rdar://6880259 - invalid function name in block call (__NSConcreteGlobalBlock2)  
							
							... 
							
							
							
							by using the appropriate CGM interface instead of directly creating a global.
llvm-svn: 71617 
							
						 
						
							2009-05-13 02:50:56 +00:00  
				
					
						
							
							
								 
						
							
								d898026e8a 
								
							 
						 
						
							
							
								
								Don't assert when we think we need copy/dispose, but don't need them.  
							
							... 
							
							
							
							Radar 6838889
llvm-svn: 70525 
							
						 
						
							2009-05-01 01:31:57 +00:00  
				
					
						
							
							
								 
						
							
								324f80b12a 
								
							 
						 
						
							
							
								
								fix a problem producing debug info with global blocks.  
							
							... 
							
							
							
							llvm-svn: 69875 
							
						 
						
							2009-04-23 07:18:56 +00:00  
				
					
						
							
							
								 
						
							
								28ec0cf86c 
								
							 
						 
						
							
							
								
								the logic for computing __func__ and friends is really broken:  
							
							... 
							
							
							
							the type assigned by sema (and is visible with sizeof(__func__) for
example) has nothing to do with what codegen ends up producing.
We should eventually add a method on PredefinedExpr to handle this.
In the meantime, just set up some framework and add some fixme's.
llvm-svn: 69872 
							
						 
						
							2009-04-23 05:30:27 +00:00  
				
					
						
							
							
								 
						
							
								c3e7cff6d3 
								
							 
						 
						
							
							
								
								Attributes on block functions were not being set.  
							
							... 
							
							
							
							- <rdar://problem/6800351> clang not producing correct large struct
   return code for Blocks
llvm-svn: 69337 
							
						 
						
							2009-04-17 00:48:04 +00:00  
				
					
						
							
							
								 
						
							
								3b65ac2696 
								
							 
						 
						
							
							
								
								Fixup codegen for copy/dispose for block literals.  Radar 6791245  
							
							... 
							
							
							
							llvm-svn: 69232 
							
						 
						
							2009-04-15 22:11:36 +00:00  
				
					
						
							
							
								 
						
							
								9074ed8c6a 
								
							 
						 
						
							
							
								
								Set DebugInfo at the beginning of GenerateBlockFunction().  
							
							... 
							
							
							
							llvm-svn: 69228 
							
						 
						
							2009-04-15 21:51:44 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								a4f6b6b180 
								
							 
						 
						
							
							
								
								Minor refactoring of my last patch.  
							
							... 
							
							
							
							llvm-svn: 68870 
							
						 
						
							2009-04-11 18:54:57 +00:00  
				
					
						
							
							
								 
						
							
								aae4349df9 
								
							 
						 
						
							
							
								
								Fixes a ir-gen crash for K&R style blocks.  
							
							... 
							
							
							
							llvm-svn: 68865 
							
						 
						
							2009-04-11 17:55:15 +00:00  
				
					
						
							
							
								 
						
							
								6764593098 
								
							 
						 
						
							
							
								
								Fixup codegen for nested blocks that use copy/dispose in the inner  
							
							... 
							
							
							
							blocks, so that the outer blocks use it as well.  Radar 6762279
llvm-svn: 68811 
							
						 
						
							2009-04-10 18:52:28 +00:00  
				
					
						
							
							
								 
						
							
								479e6fc7a7 
								
							 
						 
						
							
							
								
								Use the new EmitCallArgs function. No indented functionality change.  
							
							... 
							
							
							
							llvm-svn: 68652 
							
						 
						
							2009-04-08 23:13:16 +00:00  
				
					
						
							
							
								 
						
							
								a60cbcdfe6 
								
							 
						 
						
							
							
								
								Don't assume that a block always has a FunctionProtoType. Fixes rdar://6768379.  
							
							... 
							
							
							
							llvm-svn: 68583 
							
						 
						
							2009-04-08 02:55:55 +00:00  
				
					
						
							
							
								 
						
							
								5f50c651e9 
								
							 
						 
						
							
							
								
								Shuffle some call code around. No functionality change.  
							
							... 
							
							
							
							llvm-svn: 68557 
							
						 
						
							2009-04-07 22:10:22 +00:00  
				
					
						
							
							
								 
						
							
								350da60733 
								
							 
						 
						
							
							
								
								Use the new getFunctionInfo that takes a BlockPointerType parameter, and get rid of getBlockFunctionType from CGBlocks.cpp  
							
							... 
							
							
							
							llvm-svn: 68478 
							
						 
						
							2009-04-07 00:20:24 +00:00  
				
					
						
							
							
								 
						
							
								cafa0a9746 
								
							 
						 
						
							
							
								
								Fix block comparisons.  Radar 6732116.  
							
							... 
							
							
							
							llvm-svn: 68171 
							
						 
						
							2009-04-01 01:17:39 +00:00  
				
					
						
							
							
								 
						
							
								09a9b6e335 
								
							 
						 
						
							
							
								
								Move where block-related variables are initialized so that block  
							
							... 
							
							
							
							types don't get generated when blocks aren't used.
llvm-svn: 67898 
							
						 
						
							2009-03-28 03:24:54 +00:00  
				
					
						
							
							
								 
						
							
								871c1f6f88 
								
							 
						 
						
							
							
								
								Remove -f__block as codegen for __block variables should be solid.  
							
							... 
							
							
							
							llvm-svn: 67697 
							
						 
						
							2009-03-25 18:05:39 +00:00  
				
					
						
							
							
								 
						
							
								d2142cffbf 
								
							 
						 
						
							
							
								
								Fixup codegen for block literals that bleed copy/dispose information  
							
							... 
							
							
							
							from previous block literals.
llvm-svn: 67696 
							
						 
						
							2009-03-25 17:58:24 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								692c6e3729 
								
							 
						 
						
							
							
								
								Fix codegen for support for super inside block literal expressions.  
							
							... 
							
							
							
							llvm-svn: 67406 
							
						 
						
							2009-03-20 21:53:12 +00:00  
				
					
						
							
							
								 
						
							
								5469f29aa9 
								
							 
						 
						
							
							
								
								Do up codegen for function static data and externs in functions in block  
							
							... 
							
							
							
							literals.
llvm-svn: 66984 
							
						 
						
							2009-03-13 23:34:28 +00:00  
				
					
						
							
							
								 
						
							
								f807ccc58e 
								
							 
						 
						
							
							
								
								Remove FIXME, issue has been resolved.  
							
							... 
							
							
							
							llvm-svn: 66931 
							
						 
						
							2009-03-13 19:38:54 +00:00  
				
					
						
							
							
								 
						
							
								c4b30e596c 
								
							 
						 
						
							
							
								
								Fix <rdar://problem/6675489> BlockDecl should not use llvm::smallvector.  
							
							... 
							
							
							
							Also changed BlockDecl API to be more consistent (wrt FunctionDecl).
llvm-svn: 66904 
							
						 
						
							2009-03-13 16:56:44 +00:00  
				
					
						
							
							
								 
						
							
								a61bb4d198 
								
							 
						 
						
							
							
								
								Fix uninitialized use in GetAddrOfGlobalBlock, reenable assert.  
							
							... 
							
							
							
							- Mike, please verify.
llvm-svn: 66762 
							
						 
						
							2009-03-12 03:07:24 +00:00  
				
					
						
							
							
								 
						
							
								de373a033f 
								
							 
						 
						
							
							
								
								If someone could figure out this is necessary, that would be good.  
							
							... 
							
							
							
							llvm-svn: 66341 
							
						 
						
							2009-03-07 16:32:25 +00:00  
				
					
						
							
							
								 
						
							
								d9728222a4 
								
							 
						 
						
							
							
								
								Fix typo, need parens.  
							
							... 
							
							
							
							llvm-svn: 66337 
							
						 
						
							2009-03-07 14:53:10 +00:00  
				
					
						
							
							
								 
						
							
								1ab20cae19 
								
							 
						 
						
							
							
								
								Remove last FIXME for block literal codegen that I know about and turn  
							
							... 
							
							
							
							on all the new code by default.  There is still plenty of testing to
do and issues I'm sure need resolving.  Let me know if you find
anything.
llvm-svn: 66323 
							
						 
						
							2009-03-07 06:16:52 +00:00  
				
					
						
							
							
								 
						
							
								90d8daf592 
								
							 
						 
						
							
							
								
								Remove some FIXMEs for block literals that should be close to working.  
							
							... 
							
							
							
							llvm-svn: 66322 
							
						 
						
							2009-03-07 06:04:31 +00:00  
				
					
						
							
							
								 
						
							
								6f7d9f8774 
								
							 
						 
						
							
							
								
								codegen support for dispose helpers for block literals.  
							
							... 
							
							
							
							llvm-svn: 66320 
							
						 
						
							2009-03-07 02:53:18 +00:00  
				
					
						
							
							
								 
						
							
								aeb0ffd56c 
								
							 
						 
						
							
							
								
								Codegen support for copy helpers for block literals.  
							
							... 
							
							
							
							llvm-svn: 66319 
							
						 
						
							2009-03-07 02:35:30 +00:00  
				
					
						
							
							
								 
						
							
								d6ef62f0bf 
								
							 
						 
						
							
							
								
								Pass the type of the block literal around to make required temporal ordering of code clearer.  
							
							... 
							
							
							
							llvm-svn: 66284 
							
						 
						
							2009-03-06 18:42:23 +00:00  
				
					
						
							
							
								 
						
							
								f89230d93b 
								
							 
						 
						
							
							
								
								Complete __Block_byref_id_object_copy cogegen for block literals.  
							
							... 
							
							
							
							llvm-svn: 66257 
							
						 
						
							2009-03-06 06:12:24 +00:00  
				
					
						
							
							
								 
						
							
								fbe25dd1e4 
								
							 
						 
						
							
							
								
								Finish off __Block_byref_id_object_dispose codegen for block literals.  
							
							... 
							
							
							
							llvm-svn: 66247 
							
						 
						
							2009-03-06 04:53:30 +00:00  
				
					
						
							
							
								 
						
							
								846bf9a797 
								
							 
						 
						
							
							
								
								Remove extra arg.  
							
							... 
							
							
							
							llvm-svn: 66243 
							
						 
						
							2009-03-06 02:45:21 +00:00  
				
					
						
							
							
								 
						
							
								ee2a5ee5f7 
								
							 
						 
						
							
							
								
								More codegen support for the copy/dispose helpers for block literals.  
							
							... 
							
							
							
							llvm-svn: 66241 
							
						 
						
							2009-03-06 02:29:21 +00:00  
				
					
						
							
							
								 
						
							
								0c74327715 
								
							 
						 
						
							
							
								
								Framework for codegen for copy/dispose helpers.  
							
							... 
							
							
							
							llvm-svn: 66231 
							
						 
						
							2009-03-06 01:33:24 +00:00  
				
					
						
							
							
								 
						
							
								4446dcf061 
								
							 
						 
						
							
							
								
								prep work for copy/destroy helpers for block literals.  
							
							... 
							
							
							
							llvm-svn: 66159 
							
						 
						
							2009-03-05 08:32:30 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								2d33d6300c 
								
							 
						 
						
							
							
								
								Fixup __block codegen in nested block literals.  
							
							... 
							
							
							
							llvm-svn: 66091 
							
						 
						
							2009-03-04 22:48:06 +00:00  
				
					
						
							
							
								 
						
							
								06acea8a69 
								
							 
						 
						
							
							
								
								Move some of the CodeGenFunction blocks code up and out.  No  
							
							... 
							
							
							
							functionality change.
llvm-svn: 66048 
							
						 
						
							2009-03-04 18:57:26 +00:00  
				
					
						
							
							
								 
						
							
								6c39666a77 
								
							 
						 
						
							
							
								
								Move more of the blocks code up and out.  
							
							... 
							
							
							
							llvm-svn: 66046 
							
						 
						
							2009-03-04 18:47:42 +00:00  
				
					
						
							
							
								 
						
							
								95435674f9 
								
							 
						 
						
							
							
								
								Move more of blocks codegen out of CodeGenModule and into the  
							
							... 
							
							
							
							BlockModule.  No functionality change.  This should help people that
don't want to know anything about blocks not be confused by the
overloaded use of the term block or nor want to see all the blocks
goop.
llvm-svn: 66042 
							
						 
						
							2009-03-04 18:17:45 +00:00  
				
					
						
							
							
								 
						
							
								0874160bd5 
								
							 
						 
						
							
							
								
								Add __block codegen testcase.  We introduce a temporary flag to enable  
							
							... 
							
							
							
							codegen, until such time as codegen is complete enough to turn on with
-fblocks.
llvm-svn: 66031 
							
						 
						
							2009-03-04 13:17:22 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								dd9427133a 
								
							 
						 
						
							
							
								
								Avoid crash when child iterator gives null result.  
							
							... 
							
							
							
							llvm-svn: 65812 
							
						 
						
							2009-03-02 07:00:57 +00:00  
				
					
						
							
							
								 
						
							
								0e425b8200 
								
							 
						 
						
							
							
								
								Push checking down, also, give the user a hit as to which part of the  
							
							... 
							
							
							
							block literal is causing the problem, instead of the vague reference
to the entire block literal.
llvm-svn: 65798 
							
						 
						
							2009-03-02 03:04:42 +00:00  
				
					
						
							
							
								 
						
							
								5878c797b3 
								
							 
						 
						
							
							
								
								Add BLOCK_HAS_DESCRIPTOR to global blocks.  
							
							... 
							
							
							
							llvm-svn: 65788 
							
						 
						
							2009-03-01 21:09:29 +00:00  
				
					
						
							
							
								 
						
							
								3a139f3793 
								
							 
						 
						
							
							
								
								Be sure to mark blocks with no imports as being global.  
							
							... 
							
							
							
							llvm-svn: 65784 
							
						 
						
							2009-03-01 20:07:53 +00:00  
				
					
						
							
							
								 
						
							
								3113eedc8a 
								
							 
						 
						
							
							
								
								Remove debugging code.  
							
							... 
							
							
							
							llvm-svn: 65753 
							
						 
						
							2009-03-01 02:12:54 +00:00  
				
					
						
							
							
								 
						
							
								961763e35a 
								
							 
						 
						
							
							
								
								Emit errors about unsupported blocks features.  
							
							... 
							
							
							
							llvm-svn: 65751 
							
						 
						
							2009-03-01 01:45:25 +00:00  
				
					
						
							
							
								 
						
							
								ed5e69fe50 
								
							 
						 
						
							
							
								
								Do some blocks cleanup and simplification. Fix a crash, and add a test case.  
							
							... 
							
							
							
							llvm-svn: 65746 
							
						 
						
							2009-03-01 01:09:12 +00:00  
				
					
						
							
							
								 
						
							
								3385fe12ce 
								
							 
						 
						
							
							
								
								improve compatibility with the VC++'08 C++ compiler.  Patch by  
							
							... 
							
							
							
							Niklas Larsson!
llvm-svn: 65706 
							
						 
						
							2009-02-28 19:01:03 +00:00  
				
					
						
							
							
								 
						
							
								1db7d04b71 
								
							 
						 
						
							
							
								
								First cut CodeGen support for __block variables.  
							
							... 
							
							
							
							llvm-svn: 65688 
							
						 
						
							2009-02-28 09:07:16 +00:00  
				
					
						
							
							
								 
						
							
								deaad8cc34 
								
							 
						 
						
							
							
								
								Create a new TypeNodes.def file that enumerates all of the types,  
							
							... 
							
							
							
							giving them rough classifications (normal types, never-canonical
types, always-dependent types, abstract type representations) and
making it far easier to make sure that we've hit all of the cases when
decoding types. 
Switched some switch() statements on the type class over to using this
mechanism, and filtering out those things we don't care about. For
example, CodeGen should never see always-dependent or non-canonical
types, while debug info generation should never see always-dependent
types. More switch() statements on the type class need to be moved 
over to using this approach, so that we'll get warnings when we add a
new type then fail to account for it somewhere in the compiler.
As part of this, some types have been renamed:
  TypeOfExpr -> TypeOfExprType
  FunctionTypeProto -> FunctionProtoType
  FunctionTypeNoProto -> FunctionNoProtoType
There shouldn't be any functionality change...
llvm-svn: 65591 
							
						 
						
							2009-02-26 23:50:07 +00:00  
				
					
						
							
							
								 
						
							
								b750d928ce 
								
							 
						 
						
							
							
								
								CodeGen support for copied BlockDeclRefExprs.  
							
							... 
							
							
							
							llvm-svn: 65487 
							
						 
						
							2009-02-25 23:33:13 +00:00  
				
					
						
							
							
								 
						
							
								b9c9e1d16f 
								
							 
						 
						
							
							
								
								Pass the CodeGenModule object to GenerateBlockFunction, instead of *this (which will call the copy constructor).  
							
							... 
							
							
							
							Also, since we're creating a new CodeGenFunction object for each block function, we don't need to clear the BreakContinueStack.
llvm-svn: 65371 
							
						 
						
							2009-02-24 04:19:41 +00:00  
				
					
						
							
							
								 
						
							
								18e91257e4 
								
							 
						 
						
							
							
								
								Ensure that we can't break or continue out of a block.  
							
							... 
							
							
							
							llvm-svn: 65370 
							
						 
						
							2009-02-24 02:59:30 +00:00  
				
					
						
							
							
								 
						
							
								624497c29a 
								
							 
						 
						
							
							
								
								Cleanp code with some recent suggestions.  
							
							... 
							
							
							
							llvm-svn: 65285 
							
						 
						
							2009-02-22 13:27:11 +00:00  
				
					
						
							
							
								 
						
							
								2ac40a9ff8 
								
							 
						 
						
							
							
								
								The blocks ABI is wrong, add a FIXME.  
							
							... 
							
							
							
							llvm-svn: 65243 
							
						 
						
							2009-02-21 20:07:44 +00:00  
				
					
						
							
							
								 
						
							
								cb2fbcb0c9 
								
							 
						 
						
							
							
								
								Add CodeGen support for the helper for BlockDeclRefExprs.  The easier  
							
							... 
							
							
							
							stuff is mostly done.  Move BlockHasCopyDispose up.
llvm-svn: 65242 
							
						 
						
							2009-02-21 20:00:35 +00:00  
				
					
						
							
							
								 
						
							
								5d2534ada7 
								
							 
						 
						
							
							
								
								More codegen for blocks.  The type of block literals should be better.  
							
							... 
							
							
							
							The size calculation is improved.
llvm-svn: 64994 
							
						 
						
							2009-02-19 01:01:04 +00:00  
				
					
						
							
							
								 
						
							
								eecd39f2d7 
								
							 
						 
						
							
							
								
								Avoid getNameAsCString when the decl doesn't have a name.  
							
							... 
							
							
							
							Build of the parm list with the iterator, not end().
llvm-svn: 64851 
							
						 
						
							2009-02-17 23:25:52 +00:00  
				
					
						
							
							
								 
						
							
								03868f4ea0 
								
							 
						 
						
							
							
								
								Be sure to initialize Name.  
							
							... 
							
							
							
							llvm-svn: 64769 
							
						 
						
							2009-02-17 17:18:36 +00:00  
				
					
						
							
							
								 
						
							
								0e7d7b68c8 
								
							 
						 
						
							
							
								
								Use getNameAsCString instead of getNameAsString and reflow the type.  
							
							... 
							
							
							
							Thanks Anders.
llvm-svn: 64571 
							
						 
						
							2009-02-14 22:49:33 +00:00  
				
					
						
							
							
								 
						
							
								2d5a2878d4 
								
							 
						 
						
							
							
								
								Generate the helper function for blocks.  Now basic codegen is  
							
							... 
							
							
							
							starting to work for blocks.
llvm-svn: 64570 
							
						 
						
							2009-02-14 22:16:35 +00:00  
				
					
						
							
							
								 
						
							
								499ae7ec91 
								
							 
						 
						
							
							
								
								Let the backend unique these.  
							
							... 
							
							
							
							llvm-svn: 64486 
							
						 
						
							2009-02-13 20:17:16 +00:00  
				
					
						
							
							
								 
						
							
								52d9c49d88 
								
							 
						 
						
							
							
								
								Fix spelling.  
							
							... 
							
							
							
							llvm-svn: 64482 
							
						 
						
							2009-02-13 19:38:12 +00:00  
				
					
						
							
							
								 
						
							
								2c867aec40 
								
							 
						 
						
							
							
								
								Move DescriptorUniqueCount into CGM.  
							
							... 
							
							
							
							llvm-svn: 64481 
							
						 
						
							2009-02-13 19:36:03 +00:00  
				
					
						
							
							
								 
						
							
								7ab278db06 
								
							 
						 
						
							
							
								
								Move NSConcreteStackBlock into CGM.  
							
							... 
							
							
							
							llvm-svn: 64479 
							
						 
						
							2009-02-13 19:29:27 +00:00  
				
					
						
							
							
								 
						
							
								10a451cb36 
								
							 
						 
						
							
							
								
								Eliminate an unused variable  
							
							... 
							
							
							
							llvm-svn: 64476 
							
						 
						
							2009-02-13 19:13:32 +00:00  
				
					
						
							
							
								 
						
							
								9319db8a11 
								
							 
						 
						
							
							
								
								Move GlobalUniqueCount up into CGM.  
							
							... 
							
							
							
							llvm-svn: 64473 
							
						 
						
							2009-02-13 18:36:05 +00:00  
				
					
						
							
							
								 
						
							
								971f9b6619 
								
							 
						 
						
							
							
								
								Condense NSConcreteGlobalBlock handling.  
							
							... 
							
							
							
							llvm-svn: 64461 
							
						 
						
							2009-02-13 17:23:42 +00:00  
				
					
						
							
							
								 
						
							
								52197c7763 
								
							 
						 
						
							
							
								
								Calculate size correctly.  
							
							... 
							
							
							
							llvm-svn: 64459 
							
						 
						
							2009-02-13 17:03:17 +00:00  
				
					
						
							
							
								 
						
							
								c2c38331ca 
								
							 
						 
						
							
							
								
								Size should be unsigned.  
							
							... 
							
							
							
							llvm-svn: 64458 
							
						 
						
							2009-02-13 16:55:51 +00:00  
				
					
						
							
							
								 
						
							
								85284bacab 
								
							 
						 
						
							
							
								
								Condense all the blocks code into CGBlocks.cpp.  
							
							... 
							
							
							
							llvm-svn: 64457 
							
						 
						
							2009-02-13 16:19:19 +00:00  
				
					
						
							
							
								 
						
							
								92bbd6d435 
								
							 
						 
						
							
							
								
								Fixup types, the runtime uses int, not int32.  
							
							... 
							
							
							
							llvm-svn: 64456 
							
						 
						
							2009-02-13 16:01:35 +00:00  
				
					
						
							
							
								 
						
							
								b7074c0013 
								
							 
						 
						
							
							
								
								Fixup spacing a tad.  
							
							... 
							
							
							
							llvm-svn: 64454 
							
						 
						
							2009-02-13 15:32:32 +00:00  
				
					
						
							
							
								 
						
							
								005c9a62b5 
								
							 
						 
						
							
							
								
								Move GenericBlockLiteralType into CGM.  
							
							... 
							
							
							
							llvm-svn: 64452 
							
						 
						
							2009-02-13 15:25:34 +00:00  
				
					
						
							
							
								 
						
							
								650c932d80 
								
							 
						 
						
							
							
								
								Move BlockDescriptorType into CGM.  
							
							... 
							
							
							
							llvm-svn: 64451 
							
						 
						
							2009-02-13 15:16:56 +00:00  
				
					
						
							
							
								 
						
							
								6a60fa2428 
								
							 
						 
						
							
							
								
								Add a very basic implemenation of global blocks. This needs to be cleaned up.  
							
							... 
							
							
							
							llvm-svn: 64387 
							
						 
						
							2009-02-12 17:55:02 +00:00  
				
					
						
							
							
								 
						
							
								2437cbfa3b 
								
							 
						 
						
							
							
								
								Add support for generating block call expressions.  
							
							... 
							
							
							
							llvm-svn: 64346 
							
						 
						
							2009-02-12 00:39:25 +00:00