cd81d94322a39503e4a3e87b6ee03d4fcb3465fb |
|
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for rebase to r212749. Includes a cherry-pick of: r212948 - fixes a small issue with atomic calls Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
30b9e322e159df8eaabb5b194cec6e11ba99c261 |
|
28-Mar-2012 |
Danil Malyshev <dmalyshev@accesssoftek.com> |
Move getPointerToNamedFunction() from JIT/MCJIT to JITMemoryManager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153607 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
3e29671cca14f8fce1ea6b602175880cb3df7199 |
|
22-Mar-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert a series of commits to MCJIT to get the build working in CMake (and hopefully on Windows). The bots have been down most of the day because of this, and it's not clear to me what all will be required to fix it. The commits started with r153205, then r153207, r153208, and r153221. The first commit seems to be the real culprit, but I couldn't revert a smaller number of patches. When resubmitting, r153207 and r153208 should be folded into r153205, they were simple build fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
7803ec3d458ec73372760b838469292cdf38fe67 |
|
21-Mar-2012 |
Danil Malyshev <dmalyshev@accesssoftek.com> |
Based on this discussion: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120305/138477.html 1. Declare a virtual function getPointerToNamedFunction() in JITMemoryManager 2. Move the implementation of getPointerToNamedFunction() form JIT/MCJIT to DefaultJITMemoryManager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
45a93d6eb4c55876e94f91b471657f23fe2149aa |
|
05-Jan-2012 |
Danil Malyshev <dmalyshev@accesssoftek.com> |
A small re-factored JIT/MCJIT::getPointerToNamedFunction(), so it could be called with the base class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
9ea47179e647e806a2c67639bfead9d254514e59 |
|
12-Dec-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
ExecutionEngine: refactor interface The OptLevel is now redundant with the TargetMachine*. And selectTarget() isn't really JIT-specific and could probably get refactored into one of the lower level libraries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146355 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
34ad6db8b958fdc0d38e122edf753b5326e69b03 |
|
20-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Move CodeModel from a TargetMachine global option to MCCodeGenInfo. - Introduce JITDefault code model. This tells targets to set different default code model for JIT. This eliminates the ugly hack in TargetMachine where code model is changed after construction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
439661395fd2a2a832dba01c65bc88718528313c |
|
19-Jul-2011 |
Evan Cheng <evan.cheng@apple.com> |
Introduce MCCodeGenInfo, which keeps information that can affect codegen (including compilation, assembly). Move relocation model Reloc::Model from TargetMachine to MCCodeGenInfo so it's accessible even without TargetMachine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
c5b28580a94e247300e5d3ccf532e153f2ae6f12 |
|
13-May-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
ExecutionEngine: push TargetMachine creation into clients (v2) In particular, into EngineBuilder. This should only impact the private API between the EE and EB classes, not external clients, since JITCtor and MCJITCtor are both protected members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
2ea29ba2a8ddd7ba4b946eb754f1a39304d9fc09 |
|
13-May-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
ExecutionEngine: fix JIT/MCJIT selectTarget() duplication (v2) This prepares for making JITCtor/MCJITCtor take a TargetMachine* directly from clients like EngineBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
701529b2488477d1887c2975677a574d1e90389f |
|
07-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert ExecutionEngine patches, they either failed to build or broke unit tests. Please ensure the build is clean and tests are passing when recommitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
c06b511eba8a0f7c6dd01c067836168cc33d7801 |
|
07-May-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
ExecutionEngine: push TargetMachine creation into clients In particular, into EngineBuilder. This should only impact the private API between the EE and EB classes, not external clients, since JITCtor and MCJITCtor are both protected members. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
71cbac6a834a6ab48598b57cf9e97d7b3da421ef |
|
07-May-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
ExecutionEngine: fix JIT/MCJIT selectTarget() duplication This prepares for making JITCtor/MCJITCtor take a TargetMachine* directly from clients like EngineBuilder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
124d0332dbf79ae44a61968c7c2d379552cc715d |
|
16-Mar-2011 |
Jim Grosbach <grosbach@apple.com> |
Tidy up. Whitespace and 80 column. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
3472766f9eb7d66f234c390ce1b3a8b76f0ee9ce |
|
12-Jul-2010 |
Duncan Sands <baldrick@free.fr> |
Convert some tab stops into spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
68feb22ad8e7e3b5cd97312ef105505b3c554d40 |
|
12-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
first part of JIT support for address of labels, part of PR7264, patch by Yuri! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
40966a7c6847c102fbf466da3e8726c59c3dbb1e |
|
11-Feb-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Make it possible to create multiple JIT instances at the same time, by removing the global TheJIT and TheJITResolver variables. Lazy compilation is supported by a global map from a stub address to the JITResolver that knows how to compile it. Patch by Olivier Meurant! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
4688261c20735f5ead2f08695acdeb727db31894 |
|
05-Feb-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Move --march, --mcpu, and --mattr from JIT/TargetSelect.cpp to lli.cpp. llc.cpp also defined these flags, meaning that when I linked all of LLVM's libraries into a single shared library, llc crashed on startup with duplicate flag definitions. This patch passes them through the EngineBuilder into JIT::selectTarget(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
f0356fe140af1a30587b9a86bcfb1b2c51b8ce20 |
|
27-Jan-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Kill ModuleProvider and ghost linkage by inverting the relationship between Modules and ModuleProviders. Because the "ModuleProvider" simply materializes GlobalValues now, and doesn't provide modules, it's renamed to "GVMaterializer". Code that used to need a ModuleProvider to materialize Functions can now materialize the Functions directly. Functions no longer use a magic linkage to record that they're materializable; they simply ask the GVMaterializer. Because the C ABI must never change, we can't remove LLVMModuleProviderRef or the functions that refer to it. Instead, because Module now exposes the same functionality ModuleProvider used to, we store a Module* in any LLVMModuleProviderRef and translate in the wrapper methods. The bindings to other languages still use the ModuleProvider concept. It would probably be worth some time to update them to follow the C++ more closely, but I don't intend to do it. Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
aad0d52c5bc088e6182f83becee29846bb00d592 |
|
17-Dec-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Don't codegen available_externally functions. Fixes http://llvm.org/PR5735. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
88b5aca20a6dd0a8b15ff620bdee59aae567d245 |
|
17-Nov-2009 |
Eric Christopher <echristo@apple.com> |
Add ability to set code model within the execution engine builders and creation interfaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
6f348e458660063a40052b208bab96895c822877 |
|
09-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Remove dlsym stubs, with Nate Begeman's permission. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
0507d8373a074c77f524b435cdf076accd65394a |
|
29-Oct-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix MSVC build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
f32a6a3091e0b01d17926f4b1cf78972854b8cb5 |
|
29-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
add interpreter support for indirect goto / blockaddress. The interpreter now correctly runs clang's test/CodeGen/indirect-goto.c. The JIT will abort on it until someone feels compelled to implement this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
7a9034c4db248fe8b8cb82762881b51b221988d3 |
|
27-Oct-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Automatically do the equivalent of freeMachineCodeForFunction(F) when F is being destroyed. This allows users to run global optimizations like globaldce even after some functions have been jitted. This patch also removes the Function* parameter to JITEventListener::NotifyFreeingMachineCode() since it can cause that to be called when the Function is partially destroyed. This change will be even more helpful later when I think we'll want to allow machine code to actually outlive its Function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85182 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
e5f879825f5e6746144addd93a852cdd5896e9c1 |
|
13-Oct-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Keep track of stubs that are created. This fixes PR5162 and probably PR4822 and 4406. Patch by Nick Lewycky! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
2763217fbd2f1c54a7a25fd3ae9e997ea6ece0cb |
|
21-Sep-2009 |
Reid Kleckner <reid@kleckner.net> |
Implement the JIT side of the GDB JIT debugging interface. To enable this feature, either build the JIT in debug mode to enable it by default or pass -jit-emit-debug to lli. Right now, the only debug information that this communicates to GDB is call frame information, since it's already being generated to support exceptions in the JIT. Eventually, when DWARF generation isn't tied so tightly to AsmPrinter, it will be easy to push that information to GDB through this interface. Here's a step-by-step breakdown of how the feature works: - The JIT generates the machine code and DWARF call frame info (.eh_frame/.debug_frame) for a function into memory. - The JIT copies that info into an in-memory ELF file with a symbol for the function. - The JIT creates a code entry pointing to the ELF buffer and adds it to a linked list hanging off of a global descriptor at a special symbol that GDB knows about. - The JIT calls a function marked noinline that GDB knows about and has put an internal breakpoint in. - GDB catches the breakpoint and reads the global descriptor to look for new code. - When sees there is new code, it reads the ELF from the inferior's memory and adds it to itself as an object file. - The JIT continues, and the next time we stop the program, we are able to produce a proper backtrace. Consider running the following program through the JIT: #include <stdio.h> void baz(short z) { long w = z + 1; printf("%d, %x\n", w, *((int*)NULL)); // SEGFAULT here } void bar(short y) { int z = y + 1; baz(z); } void foo(char x) { short y = x + 1; bar(y); } int main(int argc, char** argv) { char x = 1; foo(x); } Here is a backtrace before this patch: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x2aaaabdfbd10 (LWP 25476)] 0x00002aaaabe7d1a8 in ?? () (gdb) bt #0 0x00002aaaabe7d1a8 in ?? () #1 0x0000000000000003 in ?? () #2 0x0000000000000004 in ?? () #3 0x00032aaaabe7cfd0 in ?? () #4 0x00002aaaabe7d12c in ?? () #5 0x00022aaa00000003 in ?? () #6 0x00002aaaabe7d0aa in ?? () #7 0x01000002abe7cff0 in ?? () #8 0x00002aaaabe7d02c in ?? () #9 0x0100000000000001 in ?? () #10 0x00000000014388e0 in ?? () #11 0x00007fff00000001 in ?? () #12 0x0000000000b870a2 in llvm::JIT::runFunction (this=0x1405b70, F=0x14024e0, ArgValues=@0x7fffffffe050) at /home/rnk/llvm-gdb/lib/ExecutionEngine/JIT/JIT.cpp:395 #13 0x0000000000baa4c5 in llvm::ExecutionEngine::runFunctionAsMain (this=0x1405b70, Fn=0x14024e0, argv=@0x13f06f8, envp=0x7fffffffe3b0) at /home/rnk/llvm-gdb/lib/ExecutionEngine/ExecutionEngine.cpp:377 #14 0x00000000007ebd52 in main (argc=2, argv=0x7fffffffe398, envp=0x7fffffffe3b0) at /home/rnk/llvm-gdb/tools/lli/lli.cpp:208 And a backtrace after this patch: Program received signal SIGSEGV, Segmentation fault. 0x00002aaaabe7d1a8 in baz () (gdb) bt #0 0x00002aaaabe7d1a8 in baz () #1 0x00002aaaabe7d12c in bar () #2 0x00002aaaabe7d0aa in foo () #3 0x00002aaaabe7d02c in main () #4 0x0000000000b870a2 in llvm::JIT::runFunction (this=0x1405b70, F=0x14024e0, ArgValues=...) at /home/rnk/llvm-gdb/lib/ExecutionEngine/JIT/JIT.cpp:395 #5 0x0000000000baa4c5 in llvm::ExecutionEngine::runFunctionAsMain (this=0x1405b70, Fn=0x14024e0, argv=..., envp=0x7fffffffe3c0) at /home/rnk/llvm-gdb/lib/ExecutionEngine/ExecutionEngine.cpp:377 #6 0x00000000007ebd52 in main (argc=2, argv=0x7fffffffe3a8, envp=0x7fffffffe3c0) at /home/rnk/llvm-gdb/tools/lli/lli.cpp:208 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
4b1511b027ce0b648b3379f2891816c25b46f515 |
|
18-Jul-2009 |
Reid Kleckner <reid@kleckner.net> |
Add EngineBuilder to ExecutionEngine in favor of the five optional argument EE::create(). Also a test commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
deb052a3dd0227579f86d74b3c1d70384ea5c16b |
|
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
489393d7b92107cc3de17d8dbe7dd11ab7395fdc |
|
08-Jul-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Add an option to allocate JITed global data separately from code. By default, this option is not enabled to support clients who rely on this behavior. Fixes http://llvm.org/PR4483 A patch to allocate additional memory for globals after we run out is forthcoming. Patch by Reid Kleckner! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
df5a7daff9c7664bff8b713e8ed5155319bc6041 |
|
25-Jun-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Add a JITEventListener interface that gets called back when a new function is emitted or the machine code for a function is freed. Chris mentioned that we may also want a notification when a stub is emitted, but that'll be a future change. I intend to use this to tell oprofile where functions are emitted and what lines correspond to what addresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
434dd4fd94f5f248492c675e4285e7d67342d4c4 |
|
01-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Fix new CodeEmitter stuff to follow LLVM codying style. Patch by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
a3f99f90338d89354384ca25f53ca4450a1a9d18 |
|
30-May-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
First patch in the direction of splitting MachineCodeEmitter in two subclasses: JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
b3a847db0b991d3210706a2580428fdc2b6bf037 |
|
18-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Allow the JIT ExecutionEngine to report details about the generated machine code. Introduce a new class (MachineCodeInfo) that the JIT can fill in with details. Right now, just the address and the size of the machine code are reported. Patch by Evan Phoenix! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
98a366d547772010e94609e4584489b3e5ce0043 |
|
30-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
Instead of passing in an unsigned value for the optimization level, use an enum, which better identifies what the optimization is doing. And is more flexible for future uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
5e5cb7985de2508ecd707568afbcbb39e8a688fc |
|
29-Apr-2009 |
Bill Wendling <isanbard@gmail.com> |
The second part of the change from -fast to -O#. This changes the JIT to accept an optimization level instead of a simple boolean telling it to generate code "fast" or the other type of "fast". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
d6b7a242d345fd79a337afd384bb586c5619cfe7 |
|
18-Feb-2009 |
Nate Begeman <natebegeman@mac.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
21afcda54479602c2936946731a3f1ee8e5d2322 |
|
06-Feb-2009 |
Dan Gohman <gohman@apple.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
60789e419e04c260e36af9a1add5ad316313e490 |
|
23-Jan-2009 |
Nate Begeman <natebegeman@mac.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
69f9378675b23135043d93aa58300fed3ec41cbf |
|
05-Jan-2009 |
Dan Gohman <gohman@apple.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
46fa139e26be6ebc00be2fb45820c2560dd22a32 |
|
25-Oct-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Support for allocation of TLS variables in the JIT. Allocation of a global variable is moved to the execution engine. The JIT calls the TargetJITInfo to allocate thread local storage. Currently, only linux/x86 knows how to allocate thread local global variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
502f20b17ede40de84503010b7699b328a4f2867 |
|
08-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add new parameter Fast to createJIT to enable the fast codegen path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
8f613f30a78aa9d93d08a209b6c159c2000d8d6c |
|
05-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Trim #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
ce3c413e077211c505465cb53d005342a5b1f96c |
|
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Correct a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
f049e07eb8930214941c72f8e4409df394de1567 |
|
21-May-2008 |
Nate Begeman <natebegeman@mac.com> |
Fix a couple issues with the JIT and multiple modules: 1. The "JITState" object creates a PassManager with the ModuleProvider that the jit is created with. If the ModuleProvider is removed and deleted, the PassManager is invalid. 2. The Global maps in the JIT were not invalidated with a ModuleProvider was removed. This could lead to a case where the Module would be freed, and a new Module with Globals at the same addresses could return invalid results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
950a4c40b823cd4f09dc71be635229246dfd6cac |
|
25-Mar-2008 |
Dan Gohman <gohman@apple.com> |
Add explicit keywords. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
34c9433004cabd4760987dce4804a91c84908219 |
|
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
add a new ExecutionEngine::createJIT which can be used if you only want to create a JIT. This lets you specify JIT-specific configuration items like the JITMemoryManager to use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
9f2f142d255bc96f109dd5c6524a485937b1f3a1 |
|
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
simplify creation of the interpreter, make ExecutionEngine ctor protected, delete one ExecutionEngine ctor, minor cleanup. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
f7e968a2a2bcaa0d253e668c0aee7c859aa8b36b |
|
21-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
fit in 80 cols git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
2c639add5f54ba0d0d59771e16d0582f6c59b8be |
|
21-Apr-2007 |
Chris Lattner <sabre@nondot.org> |
rename JIT::state -> JIT::jitstate to avoid shadowing ExecutionEngine::state git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
d4c0e62413ac4c81467ce59025c81210ea431752 |
|
03-Mar-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Deal with error handling better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
e748401b180d7041738e14d3896ac61ca4bdfcba |
|
24-Feb-2007 |
Chris Lattner <sabre@nondot.org> |
Fix PR1216 by cleaning up the ownership of JITResolver. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
726c1ef2bdd72975f41e3188371bb7d6f40401be |
|
23-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
remove the intrinsiclowering hook git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
2fe4bb06c6c40d16b7a5ae9cdf6bb6fe94d51be0 |
|
22-Mar-2006 |
Chris Lattner <sabre@nondot.org> |
Eliminate the dependency of ExecutionEngine on the JIT/Interpreter libraries. Now you can build a tool with just the JIT or just the interpreter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
ee448630bdf7eb6037fe2c50518d32010c433ca3 |
|
12-Jul-2005 |
Reid Spencer <rspencer@reidspencer.com> |
For PR540: This patch completes the changes for making lli thread-safe. Here's the list of changes: * The Support/ThreadSupport* files were removed and replaced with the MutexGuard.h file since all ThreadSupport* declared was a Mutex Guard. The implementation of MutexGuard.h is now based on sys::Mutex which hides its implementation and makes it unnecessary to have the -NoSupport.h and -PThreads.h versions of ThreadSupport. * All places in ExecutionEngine that previously referred to "Mutex" now refer to sys::Mutex * All places in ExecutionEngine that previously referred to "MutexLocker" now refer to MutexGuard (this is frivolous but I believe the technically correct name for such a class is "Guard" not a "Locker"). These changes passed all of llvm-test. All we need now are some test cases that actually use multiple threads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
f976c856fcc5055f3fc7d9f070d72c2d027c1d9d |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21422 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
890b4bd3c0b64235a43159fd44fba9a5a4ae8190 |
|
20-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Add accessor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
895eddfad43f848d5accce1789aa80be0db459d3 |
|
08-Nov-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
Implement ExecutionEngine::freeMachineCodeForFunction() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
7301178aac1baf1cc334e7c7a66bfe50a65fbf49 |
|
28-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Pass around IntrinsicLowering instances as appropriate. Reimplement the Interpreters implementation of va_* to be more direct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
ff0f1bb32a439cf82cb09ee29544c894a2bfe877 |
|
26-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
No longer run atExit functions from run() rename run to runFunction Genericize the runFunction code a little bit, though it still stinks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
c07ed1387503d25c0b93fcf617f69329d73fc589 |
|
20-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Implement PR135, lazy emission of global variables git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
4d326fa9bea5b80147edf14d1521fc41ce315275 |
|
20-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Cleanup the JIT as per PR176. This renames the VM class to JIT, and merges the VM.cpp and JIT.cpp files into JIT.cpp. This also splits some nasty code out into TargetSelect.cpp so that people hopefully won't notice it. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
1e60a9165dc4d6ce5650dacc026f2942696af920 |
|
20-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Rip JIT specific stuff out of TargetMachine, as per PR176 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
993bdcec009bb833c501b1e61707cd7030068698 |
|
12-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Implement the ExecutionEngine::getPointerToFunctionOrStub by forwarding the request on to the TargetMachine if it supports the getJITStubForFunction method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
d0fde30ce850b78371fd1386338350591f9ff494 |
|
11-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Put all LLVM code into the llvm namespace, as per bug 109. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
856ba76200ec2302f2fe500bc507f426c7d566c8 |
|
21-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM copyright header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
55c0f02cbf4f3716c5fdba7e227c5c8b99bc89ff |
|
17-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Tidy up doxygen comment for getPointerToFunction(). Add prototypes for recompileAndRelinkFunction() and runJITOnFunction(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
005e5e9a482674b648ff8595c65239efab9b6276 |
|
14-Oct-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Enabling incremental bytecode loading in the JIT: * The VM is now constructed with a ModuleProvider git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9125 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
9722294d30fff2a432d8e171eb904f33956353e2 |
|
05-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
ExecutionEngine.h, GenericValue.h --> include/llvm/ExecutionEngine/ Build ExecutionEngine as library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
70975eef572b9e132bbaade16ba9edb76f15f287 |
|
05-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Make CreateArgv part of lli rather than part of ExecutionEngine. Switch Interpreter and JIT's "run" methods to take a Function and a vector of GenericValues. Move (almost all of) the stuff that constructs a canonical call to main() into lli (new methods "callAsMain", "makeStringVector"). Nuke getCurrentExecutablePath(), enableTracing(), getCurrentFunction(), isStopped(), and many dead decls from interpreter. Add linux strdup() support to interpreter. Make interpreter's atexit handler runner and JIT's runAtExitHandlers() look more alike, in preparation for refactoring. atexit() is spelled "atexit", not "at_exit". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
82d8277ad5862b54341808812bb4016e52347060 |
|
03-Sep-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
ExecutionEngine.cpp: Move execution engine creation stuff into a new static method here. Remove some extra blank lines. ExecutionEngine.h: Add its prototype. lli.cpp: Call it. Make creation method for each type of EE into a static method of its own subclass. Interpreter/Interpreter.cpp: ExecutionEngine::createInterpreter --> Interpreter::create Interpreter/Interpreter.h: Likewise. JIT/JIT.cpp: ExecutionEngine::createJIT --> VM::create JIT/VM.h: Likewise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
69582b35b6aa4e48cbbad7f6f1193c967da96b25 |
|
21-Aug-2003 |
John Criswell <criswell@uiuc.edu> |
The JIT now passes the environment pointer to the main() function when it starts a program. This allows the GNU env program to compile and JIT under LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
c227c1fc7fe9dcfbb1ee0245d5b9b190e2835631 |
|
13-Aug-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Deconstify parameter to getPointerToFunction(). Use a FunctionPassManager instead of a PassManager. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7820 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
906f5fa5c8bb790201c79a33ea6d906f9f57f827 |
|
02-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
* Removed SparcEmitter.cpp; rolled into lib/Target/Sparc/SparcV9CodeEmitter.cpp * No more createX86Emitter() vs. createSparcEmitter() -- there can be only one * As a result, the memory management semantics must be handled according to platform -- the parameters to mmap() are particularly sensitive to the host architecture. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
bba1b6df9a7ac36e3a479dfe953a9618c87db7bb |
|
02-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Move target specific code to target files. The new MachineCodeEmitter class is actually target independent! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
abb027cf412944db4d27579ba3ae00717d23c25e |
|
27-May-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Allow for specification of which JIT to run on the commandline. `lli -march=x86' or `lli -march=sparc' will forcefully select the JIT even on a different platform. Running lli without the -march option will select the JIT for the platform that it's currently running on. Pro: can test Sparc JIT (debug printing mode) on X86 -- faster to compile/link LLVM source base to test changes. Con: Linking lli on x86 now pulls in all the Sparc libs -> longer link time (but X86 can bear it, right?) In the future, perhaps this should be a ./configure option to enable/disable target JITting... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6360 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
22080f9f168b0129d0ed3a2a29a145e17723c3ba |
|
14-May-2003 |
Chris Lattner <sabre@nondot.org> |
Add support for atexit handlers to the JIT, fixing 2003-05-14-AtExit.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6193 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
6125fddb52c3d821a4e4c000cbd210428b0009f6 |
|
09-May-2003 |
Chris Lattner <sabre@nondot.org> |
Add support for function stubs, which allow calling functions which need to have an address available, but have not yet been code generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
c309a7627ce8849b63f6f297ca319d582f4ae066 |
|
08-May-2003 |
Chris Lattner <sabre@nondot.org> |
Improve efficiency of JIT by having it use direct function calls instead of signals to regain control from the executing code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
0d448c03f30d7f4f7fa27fea1478aaf35e954f56 |
|
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Add support for named functions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|
836f675c49bbb482daf6e0e01a66dd0beee11a49 |
|
24-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Initial checkin git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5127 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JIT.h
|