351762cda2 
								
							 
						 
						
							
							
								
								A few more tweaks to the blocks AST representation:  
							
							... 
							
							
							
							- BlockDeclRefExprs always store VarDecls
  - BDREs no longer store copy expressions
  - BlockDecls now store a list of captured variables, information about
    how they're captured, and a copy expression if necessary
    
With that in hand, change IR generation to use the captures data in       
blocks instead of walking the block independently.        
Additionally, optimize block layout by emitting fields in descending
alignment order, with a heuristic for filling in words when alignment
of the end of the block header is insufficient for the most aligned
field.
llvm-svn: 125005 
							
						 
						
							2011-02-07 10:33:21 +00:00  
				
					
						
							
							
								 
						
							
								50198098b9 
								
							 
						 
						
							
							
								
								IR Gen. part of API support for __block cxx  
							
							... 
							
							
							
							objects imported into blocks. //rdar://8594790.
Will have a test case coming (as well as one
sent to llvm test suite).
llvm-svn: 120713 
							
						 
						
							2010-12-02 17:02:11 +00:00  
				
					
						
							
							
								 
						
							
								8fbe78f6fc 
								
							 
						 
						
							
							
								
								Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.  
							
							... 
							
							
							
							- This is designed to make it obvious that %clang_cc1 is a "test variable"
   which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
   can be useful to redefine what gets run as 'clang -cc1' (for example, to set
   a default target).
llvm-svn: 91446 
							
						 
						
							2009-12-15 20:14:24 +00:00  
				
					
						
							
							
								 
						
							
								feedba68b5 
								
							 
						 
						
							
							
								
								Don't #include <stdio.h> when tests don't need it, or use clang instead of clang-cc when they do.  
							
							... 
							
							
							
							llvm-svn: 89070 
							
						 
						
							2009-11-17 08:57:36 +00:00  
				
					
						
							
							
								 
						
							
								8b57697954 
								
							 
						 
						
							
							
								
								Eliminate &&s in tests.  
							
							... 
							
							
							
							- 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious.
llvm-svn: 86430 
							
						 
						
							2009-11-08 01:45:36 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								a45cf5b6b0 
								
							 
						 
						
							
							
								
								Rename clang to clang-cc.  
							
							... 
							
							
							
							Tests and drivers updated, still need to shuffle dirs.
llvm-svn: 67602 
							
						 
						
							2009-03-24 02:24:46 +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  
				
					
						
							
							
								 
						
							
								bc7d67ce08 
								
							 
						 
						
							
							
								
								Add codegen support for aggregate BlockDeclRefExprs.  
							
							... 
							
							
							
							llvm-svn: 67207 
							
						 
						
							2009-03-18 15:54:29 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								cfc045e36c 
								
							 
						 
						
							
							
								
								Testcase for last fix.  
							
							... 
							
							
							
							llvm-svn: 66258 
							
						 
						
							2009-03-06 06:35:21 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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