c0ae249b22 
								
							 
						 
						
							
							
								
								Fix the logic in this assertion to properly validate the number  
							
							... 
							
							
							
							of arguments.
llvm-svn: 64999 
							
						 
						
							2009-02-19 02:55:18 +00:00  
				
					
						
							
							
								 
						
							
								6c109b4979 
								
							 
						 
						
							
							
								
								Reapply r57340. VMKit does not presently rely on materializeFunction  
							
							... 
							
							
							
							being called with the lock released, and this fixes a race condition
in the JIT as used by lli.
llvm-svn: 64997 
							
						 
						
							2009-02-19 02:40:15 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								7f543ba9fa 
								
							 
						 
						
							
							
								
								On 64bit we may have a personality function which requires 64 bits to  
							
							... 
							
							
							
							be encoded.
llvm-svn: 64600 
							
						 
						
							2009-02-15 20:49:23 +00:00  
				
					
						
							
							
								 
						
							
								21cb4114fb 
								
							 
						 
						
							
							
								
								Split the locking out of JIT::runJITOnFunction so that callers  
							
							... 
							
							
							
							that already hold the lock can call an entry point that doesn't
re-acquire the lock.
llvm-svn: 63965 
							
						 
						
							2009-02-06 21:25:08 +00:00  
				
					
						
							
							
								 
						
							
								370ec10dad 
								
							 
						 
						
							
							
								
								allow main to have any integer type.  
							
							... 
							
							
							
							llvm-svn: 63743 
							
						 
						
							2009-02-04 17:48:18 +00:00  
				
					
						
							
							
								 
						
							
								a89ec99fa2 
								
							 
						 
						
							
							
								
								Reapply patch from r62553, with a fix to avoid looking for an ffi.h that isn't  
							
							... 
							
							
							
							there.
This changes the interpreter to use libffi. After this patch, the interpreter
will barely be able to call any external functions if built on a system without
libffi installed (just enough to pass 'make check' really). But with libffi,
we can now call any function that isn't variadic or taking a struct or vector
parameter (but pointer to struct is fine). Patch by Alexei Svitkine!
llvm-svn: 63723 
							
						 
						
							2009-02-04 06:26:47 +00:00  
				
					
						
							
							
								 
						
							
								676130f2e1 
								
							 
						 
						
							
							
								
								Fix PR3423: Link llvm on ARM EABI machines. Patch by Robert Schuster.  
							
							... 
							
							
							
							llvm-svn: 63489 
							
						 
						
							2009-02-01 06:42:27 +00:00  
				
					
						
							
							
								 
						
							
								617001d842 
								
							 
						 
						
							
							
								
								Add support for deleting a module provider from a JIT in such a way that it does not cause the owned module to be fully materialized.  
							
							... 
							
							
							
							llvm-svn: 62864 
							
						 
						
							2009-01-23 19:27:28 +00:00  
				
					
						
							
							
								 
						
							
								9a8602ce50 
								
							 
						 
						
							
							
								
								Revert r62553 and r62616 due to issues with portability.  
							
							... 
							
							
							
							llvm-svn: 62777 
							
						 
						
							2009-01-22 20:09:20 +00:00  
				
					
						
							
							
								 
						
							
								aa1212271a 
								
							 
						 
						
							
							
								
								rename methods in System/Host to be more consistent.  
							
							... 
							
							
							
							llvm-svn: 62776 
							
						 
						
							2009-01-22 19:53:00 +00:00  
				
					
						
							
							
								 
						
							
								41b43da217 
								
							 
						 
						
							
							
								
								add getPointerToGlobal to the C bindings, patch by Lennart Augustsson!  
							
							... 
							
							
							
							PR3364
llvm-svn: 62697 
							
						 
						
							2009-01-21 18:11:10 +00:00  
				
					
						
							
							
								 
						
							
								363501d09b 
								
							 
						 
						
							
							
								
								Fix typo.  Patch by Alexei Svitkine.  
							
							... 
							
							
							
							llvm-svn: 62616 
							
						 
						
							2009-01-20 21:20:23 +00:00  
				
					
						
							
							
								 
						
							
								766ac10452 
								
							 
						 
						
							
							
								
								Make the Interpreter use libffi if it's available. Patch from Alexei Svitkine!  
							
							... 
							
							
							
							This requires a rebuild of 'configure' itself. I will be committing that next, but
built with the wrong version of autoconf. Somebody who has the right one, please update
it.
As a side-note, because of the way autoconf works, all built tools will link against
libffi, not just lli. If you know how to fix this, please let me know ...
llvm-svn: 62553 
							
						 
						
							2009-01-20 00:51:40 +00:00  
				
					
						
							
							
								 
						
							
								762edbc074 
								
							 
						 
						
							
							
								
								don't assert and die on out of range (undefined) shifts.  This fixes  
							
							... 
							
							
							
							PR3334.
llvm-svn: 62352 
							
						 
						
							2009-01-16 20:17:02 +00:00  
				
					
						
							
							
								 
						
							
								5f936ef1ac 
								
							 
						 
						
							
							
								
								Change isGVCompilationDisabled() semantics again. It should abort on any GV that's not constant whether it's "internal" or not. In a server / client environment, GV is returned in the same block of memory as code. However, the memory might not be writable.  
							
							... 
							
							
							
							llvm-svn: 62336 
							
						 
						
							2009-01-16 19:14:49 +00:00  
				
					
						
							
							
								 
						
							
								6e8d814d36 
								
							 
						 
						
							
							
								
								Registry.h should not depend on CommandLine.h.  
							
							... 
							
							
							
							Split Support/Registry.h into two files so that we have less to
recompile every time CommandLine.h is changed.
llvm-svn: 62312 
							
						 
						
							2009-01-16 07:02:28 +00:00  
				
					
						
							
							
								 
						
							
								b2f9a73029 
								
							 
						 
						
							
							
								
								Delete trailing whitespace.  
							
							... 
							
							
							
							llvm-svn: 62307 
							
						 
						
							2009-01-16 06:53:46 +00:00  
				
					
						
							
							
								 
						
							
								6de96a1b5d 
								
							 
						 
						
							
							
								
								Add the private linkage.  
							
							... 
							
							
							
							llvm-svn: 62279 
							
						 
						
							2009-01-15 20:18:42 +00:00  
				
					
						
							
							
								 
						
							
								dc020f9c3c 
								
							 
						 
						
							
							
								
								Rename getABITypeSize to getTypePaddedSize, as  
							
							... 
							
							
							
							suggested by Chris.
llvm-svn: 62099 
							
						 
						
							2009-01-12 20:38:59 +00:00  
				
					
						
							
							
								 
						
							
								5cbf223916 
								
							 
						 
						
							
							
								
								Removed trailing whitespace from Makefiles.  
							
							... 
							
							
							
							llvm-svn: 61991 
							
						 
						
							2009-01-09 16:44:42 +00:00  
				
					
						
							
							
								 
						
							
								906152a20f 
								
							 
						 
						
							
							
								
								Tidy up #includes, deleting a bunch of unnecessary #includes.  
							
							... 
							
							
							
							llvm-svn: 61715 
							
						 
						
							2009-01-05 17:59:02 +00:00  
				
					
						
							
							
								 
						
							
								70b42590b0 
								
							 
						 
						
							
							
								
								Fix misplaced right parentheses.  
							
							... 
							
							
							
							llvm-svn: 61699 
							
						 
						
							2009-01-05 17:17:04 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								75900bf5cd 
								
							 
						 
						
							
							
								
								DisableGVCompilation should not abort on internal GlobalValue's.  
							
							... 
							
							
							
							llvm-svn: 60750 
							
						 
						
							2008-12-09 07:31:49 +00:00  
				
					
						
							
							
								 
						
							
								ddd7581c73 
								
							 
						 
						
							
							
								
								Make JIT::runFunction handle functions with non-C calling conventions.  
							
							... 
							
							
							
							llvm-svn: 59904 
							
						 
						
							2008-11-23 08:00:11 +00:00  
				
					
						
							
							
								 
						
							
								7aa444c031 
								
							 
						 
						
							
							
								
								Implement support for JIT exceptions on X86_64. Relative offsets are  
							
							... 
							
							
							
							encoded on 32 bytes, and the personality function is not encoded as
relative.
llvm-svn: 59516 
							
						 
						
							2008-11-18 10:44:46 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								e4df875dd6 
								
							 
						 
						
							
							
								
								Change binary dump format.  
							
							... 
							
							
							
							llvm-svn: 59119 
							
						 
						
							2008-11-12 08:22:43 +00:00  
				
					
						
							
							
								 
						
							
								b172c66af3 
								
							 
						 
						
							
							
								
								Comments and indentation.  
							
							... 
							
							
							
							llvm-svn: 59007 
							
						 
						
							2008-11-10 23:26:16 +00:00  
				
					
						
							
							
								 
						
							
								0d9db40994 
								
							 
						 
						
							
							
								
								Forgot these.  
							
							... 
							
							
							
							llvm-svn: 58952 
							
						 
						
							2008-11-10 01:52:24 +00:00  
				
					
						
							
							
								 
						
							
								686a725b45 
								
							 
						 
						
							
							
								
								Remove a InvalidateInstructionCache call with incorrect size.  
							
							... 
							
							
							
							llvm-svn: 58898 
							
						 
						
							2008-11-08 08:15:39 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								1b889b16da 
								
							 
						 
						
							
							
								
								Rename isString -> isExternalSymbol; getString -> getExternalSymbol since these work on externsym machine relocations.  
							
							... 
							
							
							
							llvm-svn: 58895 
							
						 
						
							2008-11-08 07:37:34 +00:00  
				
					
						
							
							
								 
						
							
								776f5922fb 
								
							 
						 
						
							
							
								
								More debug output.  
							
							... 
							
							
							
							llvm-svn: 58894 
							
						 
						
							2008-11-08 07:22:53 +00:00  
				
					
						
							
							
								 
						
							
								077f686d4b 
								
							 
						 
						
							
							
								
								More debug output.  
							
							... 
							
							
							
							llvm-svn: 58868 
							
						 
						
							2008-11-07 22:30:29 +00:00  
				
					
						
							
							
								 
						
							
								00203155ad 
								
							 
						 
						
							
							
								
								Jump tables may be emitted by target.  
							
							... 
							
							
							
							llvm-svn: 58835 
							
						 
						
							2008-11-07 09:02:17 +00:00  
				
					
						
							
							
								 
						
							
								972fd1a1e0 
								
							 
						 
						
							
							
								
								Improve JIT debugging outputs format consistency.  
							
							... 
							
							
							
							llvm-svn: 58807 
							
						 
						
							2008-11-06 17:46:04 +00:00  
				
					
						
							
							
								 
						
							
								3aeeb3a47c 
								
							 
						 
						
							
							
								
								Need a \n.  
							
							... 
							
							
							
							llvm-svn: 58788 
							
						 
						
							2008-11-06 01:18:29 +00:00  
				
					
						
							
							
								 
						
							
								d1c5c7f499 
								
							 
						 
						
							
							
								
								Undo 58778 but makes the binary dump prettier.  
							
							... 
							
							
							
							llvm-svn: 58782 
							
						 
						
							2008-11-05 23:44:08 +00:00  
				
					
						
							
							
								 
						
							
								51b9b9f6e2 
								
							 
						 
						
							
							
								
								Remove debug output that's not really useful.  
							
							... 
							
							
							
							llvm-svn: 58778 
							
						 
						
							2008-11-05 23:21:11 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								33ba5e78d2 
								
							 
						 
						
							
							
								
								Debugging output tweak.  
							
							... 
							
							
							
							llvm-svn: 58737 
							
						 
						
							2008-11-05 00:22:28 +00:00  
				
					
						
							
							
								 
						
							
								9340be4641 
								
							 
						 
						
							
							
								
								For some targets, it's not possible to place GVs in the same memory buffer as the MachineCodeEmitter allocated memory. Code and data has different read / write / execution privilege requirements.  
							
							... 
							
							
							
							This is a short term workaround. The current solution is for the JIT memory manager to manage code and data memory separately.
llvm-svn: 58688 
							
						 
						
							2008-11-04 09:30:48 +00:00  
				
					
						
							
							
								 
						
							
								09053e62a9 
								
							 
						 
						
							
							
								
								80 col violation.  
							
							... 
							
							
							
							llvm-svn: 58684 
							
						 
						
							2008-11-04 06:10:31 +00:00  
				
					
						
							
							
								 
						
							
								3a9aead4d4 
								
							 
						 
						
							
							
								
								Silence a compiler warning.  
							
							... 
							
							
							
							llvm-svn: 58598 
							
						 
						
							2008-11-03 07:14:02 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								4421a114bb 
								
							 
						 
						
							
							
								
								Let target resolve some relocation results.  
							
							... 
							
							
							
							llvm-svn: 58407 
							
						 
						
							2008-10-29 23:54:46 +00:00