Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								18d85e7403 
								
							 
						 
						
							
							
								
								Add support to the JIT for true non-lazy operation.  When a call to a function  
							
							 
							
							... 
							
							
							
							that has not been JIT'd yet, the callee is put on a list of pending functions
to JIT.  The call is directed through a stub, which is updated with the address
of the function after it has been JIT'd.  A new interface for allocating and
updating empty stubs is provided.
Add support for removing the ModuleProvider the JIT was created with, which
would otherwise invalidate the JIT's PassManager, which is initialized with the
ModuleProvider's Module.
Add support under a new ExecutionEngine flag for emitting the infomration 
necessary to update Function and GlobalVariable stubs after JITing them, by
recording the address of the stub and the name of the GlobalValue.  This allows
code to be copied from one address space to another, where libraries may live
at different virtual addresses, and have the stubs updated with their new
correct target addresses.
llvm-svn: 64906 
							
						 
						
							2009-02-18 08:31:02 +00:00  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								dc020f9c3c 
								
							 
						 
						
							
							
								
								Rename getABITypeSize to getTypePaddedSize, as  
							
							 
							
							... 
							
							
							
							suggested by Chris.
llvm-svn: 62099 
							
						 
						
							2009-01-12 20:38:59 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								d32ec016cc 
								
							 
						 
						
							
							
								
								Handle weak_extern in the JIT. This fixes  
							
							 
							
							... 
							
							
							
							SingleSource/UnitTests/2007-04-25-weak.c in JIT mode. The test
now passes on systems which are able to produce a correct
reference output to compare with.
llvm-svn: 61674 
							
						 
						
							2009-01-05 05:32:42 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0b77319742 
								
							 
						 
						
							
							
								
								Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin.  
							
							 
							
							... 
							
							
							
							llvm-svn: 60828 
							
						 
						
							2008-12-10 02:32:19 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								15e0481d39 
								
							 
						 
						
							
							
								
								Fix a bug introduced by r59265. If lazy compilation is disabled, return actual function ptr instead of ptr to stub if function is already compiled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 60822 
							
						 
						
							2008-12-10 01:33:59 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bf9a055c98 
								
							 
						 
						
							
							
								
								Always emit a function pointer as a pointer to the function stub (if there is one). This makes it possible to compare function pointer values in lazy compilation mode. This fixes PR3043.  
							
							 
							
							... 
							
							
							
							llvm-svn: 59265 
							
						 
						
							2008-11-13 21:50:50 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e4df875dd6 
								
							 
						 
						
							
							
								
								Change binary dump format.  
							
							 
							
							... 
							
							
							
							llvm-svn: 59119 
							
						 
						
							2008-11-12 08:22:43 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b172c66af3 
								
							 
						 
						
							
							
								
								Comments and indentation.  
							
							 
							
							... 
							
							
							
							llvm-svn: 59007 
							
						 
						
							2008-11-10 23:26:16 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								0d9db40994 
								
							 
						 
						
							
							
								
								Forgot these.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58952 
							
						 
						
							2008-11-10 01:52:24 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								686a725b45 
								
							 
						 
						
							
							
								
								Remove a InvalidateInstructionCache call with incorrect size.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58898 
							
						 
						
							2008-11-08 08:15:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b31a717527 
								
							 
						 
						
							
							
								
								Rename startFunctionStub to startGVStub since it's also used for GV non-lazy ptr.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58897 
							
						 
						
							2008-11-08 08:02:53 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								1b889b16da 
								
							 
						 
						
							
							
								
								Rename isString -> isExternalSymbol; getString -> getExternalSymbol since these work on externsym machine relocations.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58895 
							
						 
						
							2008-11-08 07:37:34 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								776f5922fb 
								
							 
						 
						
							
							
								
								More debug output.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58894 
							
						 
						
							2008-11-08 07:22:53 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								077f686d4b 
								
							 
						 
						
							
							
								
								More debug output.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58868 
							
						 
						
							2008-11-07 22:30:29 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								00203155ad 
								
							 
						 
						
							
							
								
								Jump tables may be emitted by target.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58835 
							
						 
						
							2008-11-07 09:02:17 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								972fd1a1e0 
								
							 
						 
						
							
							
								
								Improve JIT debugging outputs format consistency.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58807 
							
						 
						
							2008-11-06 17:46:04 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								3aeeb3a47c 
								
							 
						 
						
							
							
								
								Need a \n.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58788 
							
						 
						
							2008-11-06 01:18:29 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d1c5c7f499 
								
							 
						 
						
							
							
								
								Undo 58778 but makes the binary dump prettier.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58782 
							
						 
						
							2008-11-05 23:44:08 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								51b9b9f6e2 
								
							 
						 
						
							
							
								
								Remove debug output that's not really useful.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58778 
							
						 
						
							2008-11-05 23:21:11 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								132de1983f 
								
							 
						 
						
							
							
								
								Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS X  
							
							 
							
							... 
							
							
							
							indirect gv reference. Please don't call it lazy.
llvm-svn: 58746 
							
						 
						
							2008-11-05 01:50:32 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								3a9aead4d4 
								
							 
						 
						
							
							
								
								Silence a compiler warning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58598 
							
						 
						
							2008-11-03 07:14:02 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								2589604d85 
								
							 
						 
						
							
							
								
								Revert errant deletion. The target needs to be able to specify that it doesn't want the generic constant pool to be emitted.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58475 
							
						 
						
							2008-10-30 23:44:39 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4421a114bb 
								
							 
						 
						
							
							
								
								Let target resolve some relocation results.  
							
							 
							
							... 
							
							
							
							llvm-svn: 58407 
							
						 
						
							2008-10-29 23:54:46 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								ff2b4948ce 
								
							 
						 
						
							
							
								
								Support for constant islands in the ARM JIT.  
							
							 
							
							... 
							
							
							
							Since the ARM constant pool handling supercedes the standard LLVM constant
pool entirely, the JIT emitter does not allocate space for the constants,
nor initialize the memory. The constant pool is considered part of the 
instruction stream.
Likewise, when resolving relocations into the constant pool, a hook into
the target back end is used to resolve from the constant ID# to the
address where the constant is stored.
For now, the support in the ARM emitter is limited to 32-bit integer. Future
patches will expand this to the full range of constants necessary.
llvm-svn: 58338 
							
						 
						
							2008-10-28 18:25:49 +00:00  
						
					 
				
					
						
							
							
								 
								Nuno Lopes
							
						 
						
							 
							
							
							
							
								
							
							
								94844e2054 
								
							 
						 
						
							
							
								
								fix a tricky bug in the JIT global variable emitter, that was triggered when JITing a variable independently of a function. This lead to sharing memory memory between functions and GVs thus changing the value of a GV could change the code in execution. more details on the ML.  
							
							 
							
							... 
							
							
							
							llvm-svn: 57900 
							
						 
						
							2008-10-21 11:42:16 +00:00  
						
					 
				
					
						
							
							
								 
								Jim Grosbach
							
						 
						
							 
							
							
							
							
								
							
							
								b22ef71d46 
								
							 
						 
						
							
							
								
								On Darwin ARM, memory needs special handling to do JIT. This patch expands  
							
							 
							
							... 
							
							
							
							this handling to work properly for modifying stub functions, relocations
back to entry points after JIT compilation, etc..
llvm-svn: 57013 
							
						 
						
							2008-10-03 16:17:20 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								0d1e9a8e04 
								
							 
						 
						
							
							
								
								Switch the MachineOperand accessors back to the short names like  
							
							 
							
							... 
							
							
							
							isReg, etc., from isRegister, etc.
llvm-svn: 57006 
							
						 
						
							2008-10-03 15:45:36 +00:00  
						
					 
				
					
						
							
							
								 
								Nicolas Geoffray
							
						 
						
							 
							
							
							
							
								
							
							
								74056ae3d5 
								
							 
						 
						
							
							
								
								Acquire the lock only when necessary. More precisely, do not acquire  
							
							 
							
							... 
							
							
							
							the lock when calling a method which may materialize the llvm::Function.
llvm-svn: 56995 
							
						 
						
							2008-10-03 07:27:08 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								5cc53c34c3 
								
							 
						 
						
							
							
								
								Preliminary support for systems which require changing JIT memory regions privilege from read / write to read / executable.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56303 
							
						 
						
							2008-09-18 07:54:21 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								1a1140429e 
								
							 
						 
						
							
							
								
								Make safer variant of alias resolution routine to be default  
							
							 
							
							... 
							
							
							
							llvm-svn: 56005 
							
						 
						
							2008-09-09 20:05:04 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								52b181206f 
								
							 
						 
						
							
							
								
								MMI may be null.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55626 
							
						 
						
							2008-09-02 08:14:01 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d5834e90dc 
								
							 
						 
						
							
							
								
								Get rid of a couple of dynamic_cast.  
							
							 
							
							... 
							
							
							
							llvm-svn: 55022 
							
						 
						
							2008-08-20 00:28:12 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								dafdbf77b3 
								
							 
						 
						
							
							
								
								Some fixes for x86-64 JIT.  Make it use small code  
							
							 
							
							... 
							
							
							
							model, except for external calls; this makes
addressing modes PC-relative.  Incomplete.
The assertion at the top of Emitter::runOnMachineFunction
was obviously bogus (always true) so I removed it.
If someone knows what the correct test should be to cover
all the various targets, please fix.
llvm-svn: 54656 
							
						 
						
							2008-08-11 23:46:25 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								b086d3820d 
								
							 
						 
						
							
							
								
								Rewrite JIT handling of GlobalVariables so they  
							
							 
							
							... 
							
							
							
							are allocated in the same buffer as the code,
jump tables, etc.
The default JIT memory manager does not handle buffer
overflow well.  I didn't introduce this and I'm not
attempting to fix it here, but it is more likely to
be hit now since we're putting more stuff in the
buffer.  This affects one test that I know of so far,
MultiSource/Benchmarks/NPB-serial/is.
llvm-svn: 54442 
							
						 
						
							2008-08-07 01:30:15 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								58ecfbdad6 
								
							 
						 
						
							
							
								
								Implement JIT support for global aliases, patch by David Chisnall!  
							
							 
							
							... 
							
							
							
							llvm-svn: 52738 
							
						 
						
							2008-06-25 20:21:35 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								d3406fc2a7 
								
							 
						 
						
							
							
								
								Switch the PPC backend and target-independent JIT to use the libsystem  
							
							 
							
							... 
							
							
							
							InvalidateInstructionCache method instead of calling through
a hook on the JIT.  This is a host feature, not a target feature.
llvm-svn: 52734 
							
						 
						
							2008-06-25 17:18:44 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								7d7dcd52db 
								
							 
						 
						
							
							
								
								Provide generic hooks for icache invalidation. Add PPC implementation.  
							
							 
							
							... 
							
							
							
							Patch by Gary Benson!
llvm-svn: 52418 
							
						 
						
							2008-06-17 17:30:05 +00:00  
						
					 
				
					
						
							
							
								 
								Nate Begeman
							
						 
						
							 
							
							
							
							
								
							
							
								7af15f17b5 
								
							 
						 
						
							
							
								
								Fix a backwards check in the JIT symbol table code  
							
							 
							
							... 
							
							
							
							llvm-svn: 51229 
							
						 
						
							2008-05-18 19:09:10 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d37a6cf669 
								
							 
						 
						
							
							
								
								Disable JIT symbol table for now.  
							
							 
							
							... 
							
							
							
							llvm-svn: 51152 
							
						 
						
							2008-05-15 17:31:35 +00:00  
						
					 
				
					
						
							
							
								 
								Nicolas Geoffray
							
						 
						
							 
							
							
							
							
								
							
							
								481f44e12f 
								
							 
						 
						
							
							
								
								Be pessimistic in computing the buffer size when aligning.  
							
							 
							
							... 
							
							
							
							llvm-svn: 50008 
							
						 
						
							2008-04-20 23:39:44 +00:00  
						
					 
				
					
						
							
							
								 
								Nicolas Geoffray
							
						 
						
							 
							
							
							
							
								
							
							
								f77618e6e8 
								
							 
						 
						
							
							
								
								Cosmetic changes, as suggested by Evan. No functionality changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 49993 
							
						 
						
							2008-04-20 17:44:19 +00:00  
						
					 
				
					
						
							
							
								 
								Nicolas Geoffray
							
						 
						
							 
							
							
							
							
								
							
							
								85a9f1911e 
								
							 
						 
						
							
							
								
								Enable jitting with a known memory size.  
							
							 
							
							... 
							
							
							
							llvm-svn: 49924 
							
						 
						
							2008-04-18 20:59:31 +00:00  
						
					 
				
					
						
							
							
								 
								Nicolas Geoffray
							
						 
						
							 
							
							
							
							
								
							
							
								a7557dfe71 
								
							 
						 
						
							
							
								
								Correlate stubs with functions in JIT: when emitting a stub, the JIT tells the memory manager which function  
							
							 
							
							... 
							
							
							
							the stub will resolve.
llvm-svn: 49814 
							
						 
						
							2008-04-16 20:46:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								4d232bccca 
								
							 
						 
						
							
							
								
								Fix some serious logic errors that broke the jit on darwin/x86-64.  
							
							 
							
							... 
							
							
							
							llvm-svn: 49606 
							
						 
						
							2008-04-13 07:04:56 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								213ea6b276 
								
							 
						 
						
							
							
								
								Add debugging code.  
							
							 
							
							... 
							
							
							
							llvm-svn: 49566 
							
						 
						
							2008-04-12 00:22:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								ad281e8e19 
								
							 
						 
						
							
							
								
								Reenable JIT symbol table.  
							
							 
							
							... 
							
							
							
							llvm-svn: 49548 
							
						 
						
							2008-04-11 18:11:56 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								8519c0ead8 
								
							 
						 
						
							
							
								
								disable this for now.  
							
							 
							
							... 
							
							
							
							llvm-svn: 49248 
							
						 
						
							2008-04-05 04:12:01 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								318d3ef88e 
								
							 
						 
						
							
							
								
								Provide an initial cut at exposing JIT compiled symbols to performance  
							
							 
							
							... 
							
							
							
							tools.  This is currently only enabled on the mac, but could easily be
supported by other hosts that are interested.
llvm-svn: 49207 
							
						 
						
							2008-04-04 05:51:42 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								c60c67fc37 
								
							 
						 
						
							
							
								
								Add explicit keywords.  
							
							 
							
							... 
							
							
							
							llvm-svn: 48801 
							
						 
						
							2008-03-25 22:06:05 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								c1969de3e9 
								
							 
						 
						
							
							
								
								fix 80 col violations  
							
							 
							
							... 
							
							
							
							llvm-svn: 48019 
							
						 
						
							2008-03-07 20:05:43 +00:00