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/JITEmitter.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
01a21b33798424736cd0065c1a1d00792be5c3a0 |
|
11-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e4496548155ba6606f107fbdc10ea17e58fd3401 |
|
07-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove exception handling support from the old JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
dced3cdb0408f0802db332453a1e9c69c5fea70c |
|
11-Jan-2013 |
Eli Bendersky <eliben@google.com> |
Fix bug in exception table allocation (PR13678) Patch by Michael Muller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
8ac1995456d6938b68f232995f49c86369dd121d |
|
12-Oct-2012 |
Sean Silva <silvas@purdue.edu> |
Remove buggy classof(). This classof() is effectively saying that a MachineCodeEmitter "is-a" JITEmitter, but JITEmitter is in fact a descendant of MachineCodeEmitter, so this is not semantically correct. Consequently, none of the assertions that rely on these classof() actualy check anything. Remove the RTTI (which didn't actually check anything) and use static_cast<> instead. Post-Mortem Bug Analysis ======================== Cause of the bug ---------------- r55022 appears to be the source of the classof() and assertions removed by this commit. It aimed at removing some dynamic_cast<> that were solely in the assertions. A typical diff hunk from that commit looked like: - assert(dynamic_cast<JITEmitter*>(MCE) && "Unexpected MCE?"); - JITEmitter *JE = static_cast<JITEmitter*>(getCodeEmitter()); + assert(isa<JITEmitter>(MCE) && "Unexpected MCE?"); + JITEmitter *JE = cast<JITEmitter>(getCodeEmitter()); Hence, the source of the bug then seems to be an attempt to replace dynamic_cast<> with LLVM-style RTTI without properly setting up the class hierarchy for LLVM-style RTTI. The bug therefore appears to be simply a "thinko". What initially indicated the presence of the bug ------------------------------------------------ After implementing automatic upcasting for isa<>, classof() functions of the form static bool classof(const Foo *) { return true; } were removed, since they only serve the purpose of optimizing statically-OK upcasts. A subsequent recompilation triggered a build failure on the isa<> tests within the removed asserts, since the automatic upcasting (correctly) failed to substitute this classof(). Key to pinning down the root cause of the bug --------------------------------------------- After being alerted to the presence of the bug, some thought about the semantics which were being asserted by the buggy classof() revealed that it was incorrect. How the bug could have been prevented ------------------------------------- This bug could have been prevented by better documentation for how to set up LLVM-style RTTI. This should be solved by the recently added documentation HowToSetUpLLVMStyleRTTI. However, this bug suggests that the documentation should clearly explain the contract that classof() must fulfill. The HowToSetUpLLVMStyleRTTI already explains this contract, but it is a little tucked away. A future patch will expand that explanation and make it more prominent. There does not appear to be a simple way to have the compiler prevent this bug, since fundamentally it boiled down to a spurious classof() where the programmer made an erroneous statement about the conversion. This suggests that perhaps the interface to LLVM-style RTTI of classof() is not the best. There is already some evidence for this, since in a number of places Clang has classof() forward to classofKind(Kind K) which evaluates the cast in terms of just the Kind. This could probably be generalized to simply a `static const Kind MyKind;` field in leaf classes and `static const Kind firstMyKind, lastMyKind;` for non-leaf classes, and have the rest of the work be done inside Casting.h, assuming that the Kind enum is laid out in a preorder traversal of the inheritance tree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
3574eca1b02600bac4e625297f4ecf745f4c4f32 |
|
08-Oct-2012 |
Micah Villmow <villmow@gmail.com> |
Move TargetData to DataLayout. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
96601ca332ab388754ca4673be8973396fea2ddd |
|
22-Aug-2012 |
Craig Topper <craig.topper@gmail.com> |
Add a getName function to MachineFunction. Use it in places that previously did getFunction()->getName(). Remove includes of Function.h that are no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162347 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
0bcbd1df7a204e1e512f1a27066d725309de1b13 |
|
28-Jun-2012 |
Bill Wendling <isanbard@gmail.com> |
Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h. The reasoning is because the DebugInfo module is simply an interface to the debug info MDNodes and has nothing to do with analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e04690e092fdc4d27a8642775892293f4ae6ede3 |
|
16-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Disable the right instance of TheJIT, this one is only used in asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a9783663398baf1289683fc7326430b89963f38e |
|
16-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Guard private fields that are unused in Release builds with #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
858143816d43e58b17bfd11cb1b57afbd7f0f893 |
|
07-Feb-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert assert(0) to llvm_unreachable git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
6c2cf8b1fbcf70fd9db6fe44032c1ceaa2299760 |
|
03-Feb-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Add a new MachineJumpTableInfo entry type, EK_GPRel64BlockAddress, which is needed to emit a 64-bit gp-relative relocation entry. Make changes necessary for emitting jump tables which have entries with directive .gpdword. This patch does not implement the parts needed for direct object emission or JIT. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
611caf5f91c4abe934480259043fcbb30ea07e3a |
|
05-Jan-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove the old ELF writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
8a8d479214745c82ef00f08d4e4f1c173b5f9ce2 |
|
02-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Move global variables in TargetMachine into new TargetOptions class. As an API change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow. One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
1f6a329f79b3568d379142f921f59c4143ddaa14 |
|
12-Aug-2011 |
Duncan Sands <baldrick@free.fr> |
Silence a bunch (but not all) "variable written but not read" warnings when building with assertions disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
db125cfaf57cc83e7dd7453de2d509bc8efd0e5e |
|
18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135375 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
5b24017ca8204fc256e57605b2742b38ab77da8e |
|
13-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Like the coding standards say, do not use "using namespace std". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
515c67ee77f8d9c417efc0fe04615d269bfb70e4 |
|
05-Mar-2011 |
Eric Christopher <echristo@apple.com> |
Support unregistering exception frames of functions when they are removed. Patch by Johannes Schaub! Fixes PR8548 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
1f6efa3996dd1929fbc129203ce5009b620e6969 |
|
29-Nov-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Merge System into Support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c6a39aa5cd4434a57747190dd3342ec814ef7391 |
|
23-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
remove some dead code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
134d8eec8789184c7a7290ee101ca3d6f62f384a |
|
22-Jul-2010 |
Chris Lattner <sabre@nondot.org> |
remove the JIT "NeedsExactSize" feature and supporting logic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
57b6e9eb6ccb757b74beeb377c7c16d08468d3e8 |
|
02-May-2010 |
Duncan Sands <baldrick@free.fr> |
Remove the -enable-sjlj-eh option, which doesn't do anything. Remove the -enable-eh option which is only used by the JIT, and replace it with -jit-enable-eh. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
69c128f19d04ce7337591d2edbb6701d470c18a4 |
|
18-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
Formatting changes. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
47639fc5be0b8f4873d076a9ed24b9a3c0682b15 |
|
16-Apr-2010 |
Bill Wendling <isanbard@gmail.com> |
The JIT calls TidyLandingPads to tidy up the landing pads. However, because the JIT doesn't use the MC back-end asm printer to emit labels that it uses, the section for the MCSymbol is never set. And thus the MCSymbol for the EH label isn't marked as "defined". Because of that, TidyLandingPads removes the needed landing pads from the JIT output. This breaks EH for every JIT program. This is a work-around for this limitation. We pass in the label locations map. If the label has a non-zero value, then it was "emitted" by the JIT and TidyLandingPads shouldn't remove that label. A nicer solution would be to mark the MCSymbol as "used" by the JIT and not rely upon the section being set to determine if it's defined or not. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
46510a73e977273ec67747eb34cbdb43f815e451 |
|
15-Apr-2010 |
Dan Gohman <gohman@apple.com> |
Add const qualifiers to CodeGen's use of LLVM IR constructs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
4eb373988e3211b0a481dee60ecdc3d12821b7b9 |
|
15-Apr-2010 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Don't use DILocation when processing a DebugLoc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
75361b69f3f327842b9dad69fa7f28ae3b688412 |
|
08-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
rename llvm::llvm_report_error -> llvm::report_fatal_error git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
9041ae274b537f7ae7f7a260b233a38d36d20432 |
|
04-Apr-2010 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
CurFn is only used for relocations. Use EmissionDetails.MF->getFunction() instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
de4845c163a5847c82d7ce10ed0c320098bce6e0 |
|
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Switch the code generator (except the JIT) onto the new DebugLoc representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
1611273351d75b5cbe2a67485bb9831d5916fe26 |
|
14-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
change EH related stuff (other than EH_LABEL) to use MCSymbol instead of label ID's. This cleans up and regularizes a bunch of code and makes way for future progress. Unfortunately, this pointed out to me that JITDwarfEmitter.cpp is largely copy and paste from DwarfException/MachineModuleInfo and other places. This is very sad and disturbing. :( One major change here is that TidyLandingPads moved from being called in DwarfException::BeginFunction to being called in DwarfException::EndFunction. There should not be any functionality change from doing this, but I'm not an EH expert. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
95da605e15a6f108b551ecc6772823ea53de3007 |
|
11-Mar-2010 |
Richard Osborne <richard@xmos.com> |
Add a new jump table encoding to indicate jump tables entries are inside the function by the target at the point of use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
39c75f2e907c577a4f922daccf1f7d04acc9438e |
|
04-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix PR6360. It's easy for a stub's address to escape to user code, so we can't just count references to it from JIT output to decide when to destroy it. This patch waits to destroy the JIT's memory of a stub until the Function it refers to is destroyed. External function stubs and GVIndirectSyms aren't destroyed until the JIT itself is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e57898ce5596a65579b6259e7d2e65c42a7e364e |
|
04-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix PR5291, in which a SmallPtrSet iterator was held across an insertion into the set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97720 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
8e98d1299dcd9a725e9244457568ff43b153b1a9 |
|
04-Mar-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Make sure JITResolvers don't leave any stubs behind. When a JITResolver was destroyed, it could leave stubs in the StubToResolverMap, which would confuse the lookup for subsequent lazy compilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
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/JITEmitter.cpp
|
85fe07866a3b240d9facef3b2f2ea81a0a8db018 |
|
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Add support for target-specific 32-bit custom-lowered jump table entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
13af11acbf23664d61f73ddac54bc05a9733c051 |
|
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
make jit jump table emission be based on the EntryKind instead of magic variables. JITInfo::getPICJumpTableEntry can probably be removed now, but I don't plan to do this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
071c62fad0b25ad4131e7f984173a796c1e63f61 |
|
26-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
Rearrange handling of jump tables. Highlights: 1. MachineJumpTableInfo is now created lazily for a function the first time it actually makes a jump table instead of for every function. 2. The encoding of jump table entries is now described by the MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the TLI::getJumpTableEncoding() hook, instead of by lots of code scattered throughout the compiler that "knows" that jump table entries are always 32-bits in pic mode (for example). 3. The size and alignment of jump table entries is now calculated based on their kind, instead of at machinefunction creation time. Future work includes using the EntryKind in more places in the compiler, eliminating other logic that "knows" the layout of jump tables in various situations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94470 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c99fd879c0f4bbc56c29d508fec7935e6cbd7ed0 |
|
19-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Avoid including DebugInfo.h in AsmPrinter.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
6b61f5816e22ac7f7e009aaf3e11ccce7cfeb085 |
|
16-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Replace DebugLocTuple with DILocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c9ec9931d834cb3b9774429fae96fb8db2736993 |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c5818fb83750259f23f70e91ee9fb9b11d67160d |
|
23-Dec-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Partially revert r91626. Materializing extra functions to determine whether they're available_externally broke VMKit, which was relying on the fact that functions would only be materialized when they were first called. We'll have to wait for http://llvm.org/PR5737 to really fix this. I also added a test for one of the F->isDeclaration() calls which wasn't covered by anything else in the test suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
32d7e6ebde29faeea75ecb718b4281414b0eea0b |
|
15-Dec-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Change indirect-globals to use a dedicated allocIndirectGV. This lets us remove start/finishGVStub and the BufferState helper class from the MachineCodeEmitter interface. It has the side-effect of not setting the indirect global writable and then executable on ARM, but that shouldn't be necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
108c838093704650378b194fe9afc5ebb9e91455 |
|
24-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
* Move stub allocation inside the JITEmitter, instead of exposing a way for each TargetJITInfo subclass to allocate its own stubs. This means stubs aren't as exactly-sized anymore, but it lets us get rid of TargetJITInfo::emitFunctionStubAtAddr(), which lets ARM and PPC support the eager JIT, fixing http://llvm.org/PR4816. * Rename the JITEmitter's stub creation functions to describe the kind of stub they create. So far, all of them create lazy-compilation stubs, but they sometimes get used when far-call stubs are needed. Fixing http://llvm.org/PR5201 will involve fixing this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
0261d795f83a45dd53d82e511ae672d6d1f4e298 |
|
23-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Allow more than one stub to be being generated at the same time. It's probably better in the long run to replace the indirect-GlobalVariable system. That'll be done after a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e03a39b09620d4efc5ee4a76859a99ff0e095ae0 |
|
20-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Try to fix JITTest.FarCallToKnownFunction on ARM and PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89410 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
d1ba06bf131a9d217426529d2e28af1f2eeed47a |
|
16-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Make X86-64 in the Large model always emit 64-bit calls. The large code model is documented at http://www.x86-64.org/documentation/abi.pdf and says that calls should assume their target doesn't live within the 32-bit pc-relative offset that fits in the call instruction. To do this, we turn off the global-address->target-global-address conversion in X86TargetLowering::LowerCall(). The first attempt at this broke the lazy JIT because it can separate the movabs(imm->reg) from the actual call instruction. The lazy JIT receives the address of the movabs as a relocation and needs to record the return address from the call; and then when that call happens, it needs to patch the movabs with the newly-compiled target. We could thread the call instruction into the relocation and record the movabs<->call mapping explicitly, but that seems to require at least as much new complication in the code generator as this change. To fix this, we make lazy functions _always_ go through a call stub. You'd think we'd only have to force lazy calls through a stub on difficult platforms, but that turns out to break indirect calls through a function pointer. The right fix for that is to distinguish between calls and address-of operations on uncompiled functions, but that's complex enough to leave for someone else to do. Another attempt at this defined a new CALL64i pseudo-instruction, which expanded to a 2-instruction sequence in the assembly output and was special-cased in the X86CodeEmitter's emitInstruction() function. That broke indirect calls in the same way as above. This patch also removes a hack forcing Darwin to the small code model. Without far-call-stubs, the small code model requires things of the JITMemoryManager that the DefaultJITMemoryManager can't provide. Thanks to echristo for lots of testing! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
116664a697f9c2cdccc0df46c53f65c9f6bb22fe |
|
12-Nov-2009 |
Eric Christopher <echristo@apple.com> |
Use stubs when we have them, otherwise use code we already have, otherwise create a stub. Add a test to make sure we don't create extraneous stubs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86941 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
2d274412ed9aab277e070690c574714ec544cf94 |
|
07-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Make the need-stub variables accurate and consistent. In the case of MachineRelocations, "stub" always refers to a far-call stub or a load-a-faraway-global stub, so this patch adds "Far" to the term. (Other stubs are used for lazy compilation and dlsym address replacement.) The variable was also inconsistent between the positive and negative sense, and the positive sense ("NeedStub") was more demanding than is accurate (since a nearby-enough function can be called directly even if the platform often requires a stub). Since the negative sense causes double-negatives, I switched to "MayNeedFarStub" globally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e637c195fda4002da0f9ae822e9c5c54e676a61f |
|
07-Nov-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Give the JITResolver a direct pointer to its JITEmitter, and use that instead of going through the global TheJIT variable. This makes it easier to use features of JITEmitter that aren't in JITCodeEmitter for fixing PR5201. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86305 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
dc85724f703bddf6988b6b3f20203beab775f32b |
|
27-Oct-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Change the JIT to compile eagerly by default as agreed in http://llvm.org/PR5184, and beef up the comments to describe what both options do and the risks of lazy compilation in the presence of threads. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
23e5fcfec4640955fec41dc8348f467adf1a3e56 |
|
24-Oct-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix http://llvm.org/PR4822: allow module deletion after a function has been compiled. When functions are compiled, they accumulate references in the JITResolver's stub maps. This patch removes those references when the functions are destroyed. It's illegal to destroy a Function when any thread may still try to call its machine code. This patch also updates r83987 to use ValueMap instead of explicit CallbackVHs and fixes a couple "do stuff inside assert()" bugs from r84522. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
1e8613212286a8066001c8a3f516da89d250e05d |
|
20-Oct-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Move the Function*->allocated blocks map from the JITMemoryManager to the JITEmitter. I'm gradually making Functions auto-remove themselves from the JIT when they're destroyed. In this case, the Function needs to be removed from the JITEmitter, but the map recording which Functions need to be removed lived behind the JITMemoryManager interface, which made things difficult. This patch replaces the deallocateMemForFunction(Function*) method with a pair of methods deallocateFunctionBody(void *) and deallocateExceptionTable(void *) corresponding to the two startFoo/endFoo pairs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
ebbcef945d33af5252486c1655ec6afdba4f97a7 |
|
19-Oct-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Clean up the JITResolver stub/callsite<->function maps. The JITResolver maps Functions to their canonical stubs and all callsites for lazily-compiled functions to their target Functions. To make Function destruction work, I'm going to need to remove all callsites on destruction, so this patch also adds the reverse mapping for that. There was an incorrect assumption in here that the only stub for a function would be the one caused by needing to lazily compile it, while x86-64 far calls and dlsym-stubs could also cause such stubs, but I didn't look for a test case that the assumption broke. This also adds DenseMapInfo<AssertingVH> so I can use DenseMaps instead of std::maps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84522 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
1619dc3b9ee2573c481591764c2d26d5ff16b483 |
|
14-Oct-2009 |
Devang Patel <dpatel@apple.com> |
s/DebugLoc.CompileUnit/DebugLoc.Scope/g s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
02c04237d01ffe7170be746ceed5f10487e0ca0c |
|
06-Oct-2009 |
Devang Patel <dpatel@apple.com> |
Update processDebugLoc() to handle requests to process debug info, before and after emitting instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
ea5ed00ea34fd3c687dd0fac9fd483d0174438e3 |
|
06-Oct-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Fix http://llvm.org/PR5116 by rolling back r60822. This passes `make unittests check-lit` on both x86-64 Linux and x86-32 Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
3d47db50b3a5bf15ba8ee2a3e4eefe4321d9642b |
|
25-Aug-2009 |
Xerxes Ranby <xerxes@zafena.se> |
Fix PR4772 ARM JIT.GlobalInFuction unittest by explicitly initialize MMI to 0 during JITEmitter constructor. Modified: lib/ExecutionEngine/JIT/JITEmitter.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
bbbfa99d3d18fe9f20265305e833666645ada528 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove a few DOUTs here and there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a9ad04191cb56c42944b17980b8b2bb2afe11ab2 |
|
13-Aug-2009 |
Dan Gohman <gohman@apple.com> |
This void is implicit in C++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
1b747ad8a0694b86e8d98a8b9a05ddfe74ec0cd3 |
|
11-Aug-2009 |
Jim Grosbach <grosbach@apple.com> |
SjLj based exception handling unwinding support. This patch is nasty, brutish and short. Well, it's kinda short. Definitely nasty and brutish. The front-end generates the register/unregister calls into the SjLj runtime, call-site indices and landing pad dispatch. The back end fills in the LSDA with the call-site information provided by the front end. Catch blocks are not yet implemented. Built on Darwin and verified no llvm-core "make check" regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
ce63ffb52f249b62cdf2d250c128007b13f27e71 |
|
25-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
More migration to raw_ostream, the water has dried up around the iostream hole. - Some clients which used DOUT have moved to DEBUG. We are deprecating the "magic" DOUT behavior which avoided calling printing functions when the statement was disabled. In addition to being unnecessary magic, it had the downside of leaving code in -Asserts builds, and of hiding potentially unnecessary computations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
10b4fc552f984dc978298d50c09c97c0764962fc |
|
23-Jul-2009 |
Reid Kleckner <reid@kleckner.net> |
Re-committing r76828 with the JIT memory manager changes now that the build bots like the BumpPtrAllocator changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
4bf370698a456bcc96d26184785eb4f5fab396f2 |
|
23-Jul-2009 |
Reid Kleckner <reid@kleckner.net> |
Reverting r76825 and r76828, since they caused clang runtime errors and some build failure involving memset. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
81ce3ed08c4df0c246b378c8972062d2f49f1ce9 |
|
23-Jul-2009 |
Reid Kleckner <reid@kleckner.net> |
Make the JIT code emitter properly retry and ask for more memory when it runs out of memory, and also make the default memory manager allocate more memory when it runs out. Also, switch function stubs and global data over to using the BumpPtrAllocator. This makes it so the JIT no longer mmaps (or the equivalent on Windows) 16 MB of memory, and instead allocates in 512K slabs. I suspect this size could go lower, especially on embedded platforms, now that more slabs can be allocated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
fbee579ed46016166d88b4defb81a2e7e253062d |
|
21-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Simplify / normalize some uses of Value::getName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
32360a7e21a4454aa7014992213823fb4319905a |
|
16-Jul-2009 |
Jeffrey Yasskin <jyasskin@google.com> |
Add line numbers to OProfile. To do this, I added a processDebugLoc() call to the MachineCodeEmitter interface and made copying the start line of a function not conditional on whether we're emitting Dwarf debug information. I'll propagate the processDebugLoc() calls to the non-X86 targets in a followup patch. In the long run, it'll probably be better to gather this information through the DwarfWriter, but the DwarfWriter currently depends on the AsmPrinter and TargetAsmInfo, and fixing that would be out of the way for this patch. There's a bug in OProfile 0.9.4 that makes it ignore line numbers for addresses above 4G, and a patch fixing it at http://thread.gmane.org/gmane.linux.oprofile/7634 Sample output: $ sudo opcontrol --reset; sudo opcontrol --start-daemon; sudo opcontrol --start; `pwd`/Debug/bin/lli fib.bc; sudo opcontrol --stop Signalling daemon... done Profiler running. fib(40) == 165580141 Stopping profiling. $ opreport -g -d -l `pwd`/Debug/bin/lli|head -60 Overflow stats not available CPU: Core 2, speed 1998 MHz (estimated) Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000 vma samples % linenr info image name symbol name 00007f67a30370b0 25489 61.2554 fib.c:24 10946.jo fib_left 00007f67a30370b0 1634 6.4106 fib.c:24 00007f67a30370b1 83 0.3256 fib.c:24 00007f67a30370b9 1997 7.8348 fib.c:24 00007f67a30370c6 2080 8.1604 fib.c:27 00007f67a30370c8 988 3.8762 fib.c:27 00007f67a30370cd 1315 5.1591 fib.c:27 00007f67a30370cf 251 0.9847 fib.c:27 00007f67a30370d3 1191 4.6726 fib.c:27 00007f67a30370d6 975 3.8252 fib.c:27 00007f67a30370db 1010 3.9625 fib.c:27 00007f67a30370dd 242 0.9494 fib.c:27 00007f67a30370e1 2782 10.9145 fib.c:28 00007f67a30370e5 3768 14.7828 fib.c:28 00007f67a30370eb 615 2.4128 (no location information) 00007f67a30370f3 6558 25.7287 (no location information) 00007f67a3037100 15603 37.4973 fib.c:29 10946.jo fib_right 00007f67a3037100 1646 10.5493 fib.c:29 00007f67a3037101 45 0.2884 fib.c:29 00007f67a3037109 2372 15.2022 fib.c:29 00007f67a3037116 2234 14.3178 fib.c:32 00007f67a3037118 612 3.9223 fib.c:32 00007f67a303711d 622 3.9864 fib.c:32 00007f67a303711f 385 2.4675 fib.c:32 00007f67a3037123 404 2.5892 fib.c:32 00007f67a3037126 634 4.0633 fib.c:32 00007f67a303712b 870 5.5759 fib.c:32 00007f67a303712d 62 0.3974 fib.c:32 00007f67a3037131 1848 11.8439 fib.c:33 00007f67a3037135 2840 18.2016 fib.c:33 00007f67a303713a 1 0.0064 fib.c:33 00007f67a303713b 1023 6.5564 (no location information) 00007f67a3037143 5 0.0320 (no location information) 000000000080c1e4 15 0.0360 MachineOperand.h:150 lli llvm::MachineOperand::isReg() const 000000000080c1e4 6 40.0000 MachineOperand.h:150 000000000080c1ec 2 13.3333 MachineOperand.h:150 ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
7d696d80409aad20bb5da0fc4eccab941dd371d4 |
|
11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
Convert more assert(0)+abort() -> LLVM_UNREACHABLE, and abort()/exit() -> llvm_report_error(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
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/JITEmitter.cpp
|
ae3a0be92e33bc716722aa600983fc1535acb122 |
|
05-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Split the Add, Sub, and Mul instruction opcodes into separate integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
186c670e15828327960d05a652ec43ae768c9b8e |
|
04-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use uint8_t and int32_t in {JIT,Machine}CodeEmiters git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
bae049cd9ed7a7ac683df04f457c301df082c6cb |
|
03-Jun-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Revert 72650 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
af90a1cd2647909623758078540abb1a81495e32 |
|
31-May-2009 |
Bruno Cardoso Lopes <bruno.cardoso@gmail.com> |
Use uint8_t and int32_t in {JIT,Machine}CodeEmiters git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
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/JITEmitter.cpp
|
777d2306b36816a53bc1ae1244c0dc7d998ae691 |
|
09-May-2009 |
Duncan Sands <baldrick@free.fr> |
Rename PaddedSize to AllocSize, in the hope that this will make it more obvious what it represents, and stop it being confused with the StoreSize. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71349 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
19fee415f63ddb78fca703085fe56510be3e058c |
|
01-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Set FnEnd in JITEmitter::finishFunction to point strictly to the end of function's machine code. Don't include memory allocated for global variables during relocations resolution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e2bcf13be5e7b9b9ea103c5546dab51f5cac9cb0 |
|
27-Apr-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Under unusual circumstances (jitting a function that causes the creation of another stub, but then never calling the jitted function) can cause the JIT to leave a stub in place. Judging by the comments this is a known deficiency, so we're just not going to use AssertingVH for the StubToFunctionTy map. Also shorten some lines longer than 80 columns. This fixes the "make check" failure with ocaml on x86-64 linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
848b3142addffe24abc775c5a11d5fff8ff73132 |
|
19-Apr-2009 |
Nick Lewycky <nicholas@mxc.ca> |
Use an AssertingVH to detect the case where the Function was deleted but freeMachineCodeForFunction was never called. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
1606e8e4cd937e6de6681f686c266cf61722d972 |
|
13-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix some significant problems with constant pools that resulted in unnecessary paddings between constant pool entries, larger than necessary alignments (e.g. 8 byte alignment for .literal4 sections), and potentially other issues. 1. ConstantPoolSDNode alignment field is log2 value of the alignment requirement. This is not consistent with other SDNode variants. 2. MachineConstantPool alignment field is also a log2 value. 3. However, some places are creating ConstantPoolSDNode with alignment value rather than log2 values. This creates entries with artificially large alignments, e.g. 256 for SSE vector values. 4. Constant pool entry offsets are computed when they are created. However, asm printer group them by sections. That means the offsets are no longer valid. However, asm printer uses them to determine size of padding between entries. 5. Asm printer uses expensive data structure multimap to track constant pool entries by sections. 6. Asm printer iterate over SmallPtrSet when it's emitting constant pool entries. This is non-deterministic. Solutions: 1. ConstantPoolSDNode alignment field is changed to keep non-log2 value. 2. MachineConstantPool alignment field is also changed to keep non-log2 value. 3. Functions that create ConstantPool nodes are passing in non-log2 alignments. 4. MachineConstantPoolEntry no longer keeps an offset field. It's replaced with an alignment field. Offsets are not computed when constant pool entries are created. They are computed on the fly in asm printer and JIT. 5. Asm printer uses cheaper data structure to group constant pool entries. 6. Asm printer compute entry offsets after grouping is done. 7. Change JIT code to compute entry offsets on the fly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
841c6a4345082e9a1252cc39bcce7f1423a76ded |
|
11-Mar-2009 |
Nate Begeman <natebegeman@mac.com> |
Allow cross-process JIT to handle MachineRelocations of the ExternalSymbol variety. For example, an i64 div might turn into a call to __divdi3 during legalization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
b9c6c9bfe410bbea357503872ce662d6838026ce |
|
07-Mar-2009 |
Nate Begeman <natebegeman@mac.com> |
Finish cross-process JIT work, and clean up previous work. 1. When the JIT is asked to remove a function, updating it's mapping to 0, we invalidate any function stubs used only by that function. Now, also invalidate the JIT's mapping from the GV the stub pointed to, to the address of the GV. 2. When dlsym stubs for cross-process JIT are enabled, do not abort just because a named function cannot be found in the JIT's process. 3. Fix various assumptions about when it is ok to use the lazy resolver when non-lazy JITing is enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
be3ae8e479c02b3045eef8eb18c4dacbd3af14c2 |
|
05-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
switch this message back to only being in -debug mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66143 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
50cd6fda9e98f68a9a6e1adf72c38baf614bd305 |
|
05-Mar-2009 |
Nate Begeman <natebegeman@mac.com> |
When allocating stubs, keep track of which Functions are referencing the stub. This invalidates the stubs in the resolver map when they are no longer referenced, and should the JIT memory manager ever pick up a deallocateStub interface, the JIT could reclaim the memory for unused stubs as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66141 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
66941988de6a295649b33f4c2b0f36a094b2244d |
|
04-Mar-2009 |
Nate Begeman <natebegeman@mac.com> |
Fix a thinko in the JIT where the address of a GV was only recorded in the map on failure to resolve it. Do not abort on failure to resolve an external symbol when using dlsym stubs, since the symbol may not be in the JIT's address space. Just use 0. Allow dlsym stubs to differentiate between GlobalVars and Functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
0b82f77e662790ab3c230932f5309c5105812c26 |
|
03-Mar-2009 |
Nate Begeman <natebegeman@mac.com> |
Fix the calculation for how big the allocated stub needs to be. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
ceb4d1aecb9deffe59b3dcdc9a783ffde8477be9 |
|
12-Jan-2009 |
Duncan Sands <baldrick@free.fr> |
Rename getABITypeSize to getTypePaddedSize, as suggested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
5788d1a169db3346a612a13113348d2709bdd15b |
|
10-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids some overflow issues. Patch by Thomas Jablin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60828 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
369e02da1b0f7a183c7d15a5d87a1a2c3db5f45a |
|
10-Dec-2008 |
Evan Cheng <evan.cheng@apple.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
704bff9e6cf0070924eb11d9e81e5ba6962ae4ef |
|
13-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e7c3551e6f75ca3fc8a3a30e8ca5f9c19edbe2e3 |
|
12-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Change binary dump format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e4d783d584d22d7fcb4cba2a24e0f45f62ed8153 |
|
11-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Comments and indentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
5594f120b8880f7c514b0376c4adac1267a0b2b6 |
|
10-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Forgot these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
fff484f1926cf26af3d6b5082ece88701164cfc3 |
|
08-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove a InvalidateInstructionCache call with incorrect size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
ce4a70bd7608861e104b04265a0c71e5df8ecefe |
|
08-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename startFunctionStub to startGVStub since it's also used for GV non-lazy ptr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58897 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
d7398c9b699cae3a109e9808401f7d0b2fc7e686 |
|
08-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename isString -> isExternalSymbol; getString -> getExternalSymbol since these work on externsym machine relocations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
ca66b08bc6c3cf899459e642a5297df8b9ccdb0d |
|
08-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
More debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
366cf29ca537057341ecbad03ab8f9bc52f731e7 |
|
07-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
More debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
47c01a0099c10c031f8c544baf44b1c3a1de3fad |
|
07-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Jump tables may be emitted by target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
eb5d95a22df7ab88815f35bdc8b6e5d3a6a1119d |
|
06-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Improve JIT debugging outputs format consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
6863fb033a9079e04edc7a568e34098bcf5b9ebe |
|
06-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Need a \n. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a7916f586d438b0e626e54ce713435437c4b901c |
|
06-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Undo 58778 but makes the binary dump prettier. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
5e136c0f37a36aed0e49b7cb9e8ea61ecbe70456 |
|
06-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Remove debug output that's not really useful. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c96a8e7df1ffeebc5fb876f5eef380e8547ce14f |
|
05-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS X indirect gv reference. Please don't call it lazy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
9200605cd5f6db50be20efb7df926dc5a0d19a4d |
|
03-Nov-2008 |
Evan Cheng <evan.cheng@apple.com> |
Silence a compiler warning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
8fe95356dd487a79145ec07a9f46cd743b4c9bdd |
|
31-Oct-2008 |
Jim Grosbach <grosbach@apple.com> |
Revert errant deletion. The target needs to be able to specify that it doesn't want the generic constant pool to be emitted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
ef5784ef9b9cdfbc9819a96440c6873196eade76 |
|
30-Oct-2008 |
Evan Cheng <evan.cheng@apple.com> |
Let target resolve some relocation results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
bc6d876adf01b368c6bdd5984d9dac32589d356e |
|
28-Oct-2008 |
Jim Grosbach <grosbach@apple.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
cef7527a85d026aeb17a4dacca73c70c0ab5da40 |
|
21-Oct-2008 |
Nuno Lopes <nunoplopes@sapo.pt> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
cce6c297c54b4c9c8615c77e97cd64e70812ea60 |
|
03-Oct-2008 |
Jim Grosbach <grosbach@apple.com> |
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.. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
d735b8019b0f297d7c14b55adcd887af24d8e602 |
|
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Switch the MachineOperand accessors back to the short names like isReg, etc., from isRegister, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
dcb31e179000193c65b3f09b7138ef273dc3ce63 |
|
03-Oct-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Acquire the lock only when necessary. More precisely, do not acquire the lock when calling a method which may materialize the llvm::Function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
bc4707a2554ac04ba006bf70035e7bc7270236a9 |
|
18-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
Preliminary support for systems which require changing JIT memory regions privilege from read / write to read / executable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
19e861a4ffb896f16a691d5ac869e894df3cd464 |
|
09-Sep-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Make safer variant of alias resolution routine to be default git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
252ddfbdbc834d1abe80de9c2205afac7918d3ea |
|
02-Sep-2008 |
Evan Cheng <evan.cheng@apple.com> |
MMI may be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a044dfcb5ae3b789799cefaf5c4c2e1973fbf4c5 |
|
20-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Get rid of a couple of dynamic_cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
50dd1d028021bd7fd8bca3f33633ea59577c9d5e |
|
12-Aug-2008 |
Dale Johannesen <dalej@apple.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54656 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
dd947ea3c5e020c33c58a31939561265b980a3ad |
|
07-Aug-2008 |
Dale Johannesen <dalej@apple.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54442 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
18e045983757a7d2bae482d2abe444a5bb3ed134 |
|
25-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
Implement JIT support for global aliases, patch by David Chisnall! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
bc52cada0933f353d30da7b49af9a641bdb2c57d |
|
25-Jun-2008 |
Chris Lattner <sabre@nondot.org> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
210539ebc466521e41e69b119649d59cc721b006 |
|
17-Jun-2008 |
Anton Korobeynikov <asl@math.spbu.ru> |
Provide generic hooks for icache invalidation. Add PPC implementation. Patch by Gary Benson! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
f44085a86a3f3cb743fb8822108d8360dd094539 |
|
18-May-2008 |
Nate Begeman <natebegeman@mac.com> |
Fix a backwards check in the JIT symbol table code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51229 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
bdb6ca178cfbe2490a058deabce7847a05f55db7 |
|
15-May-2008 |
Evan Cheng <evan.cheng@apple.com> |
Disable JIT symbol table for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
580631a73a71ff621c71618b16e9644b30a9d3c9 |
|
21-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Be pessimistic in computing the buffer size when aligning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
5913e6c5dbaff88ac00d5e679382abc72323831a |
|
20-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Cosmetic changes, as suggested by Evan. No functionality changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
dc17ab2bf0c4d325b87ac8130004ab11f3f7106d |
|
18-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Enable jitting with a known memory size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
51cc3c13eac78da242f0518fc42580e48dd5304f |
|
16-Apr-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Correlate stubs with functions in JIT: when emitting a stub, the JIT tells the memory manager which function the stub will resolve. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
3b374489041ac28153c84194dda45e182d8939fc |
|
13-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Fix some serious logic errors that broke the jit on darwin/x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
97b8c40d095c4eb5d8e8ff5ac6da567f043bd8ba |
|
12-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add debugging code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
6098e4be947e0761c6997d98d12535fce85045e9 |
|
11-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
Reenable JIT symbol table. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e52419147abbc696e9d313b6adf18a1be8ff4389 |
|
05-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
disable this for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
8ac66c122b099bc3eab858bfc18f3cb342efc818 |
|
04-Apr-2008 |
Chris Lattner <sabre@nondot.org> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49207 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
0fdaa0b8f194f0ef7cec0610c50672b89bd7c17a |
|
07-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
fix 80 col violations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
afe6c2b001a924cd74bd0aacfed5984d9af004b0 |
|
13-Feb-2008 |
Nicolas Geoffray <nicolas.geoffray@lip6.fr> |
Enable exception handling int JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
1910e2f3ecec461d1eab8c44b16c977539080a6e |
|
25-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
JITEmitter.cpp was trying to sync the icache for function stubs, but was actually passing a completely incorrect size to sys_icache_invalidate. Instead of having the JITEmitter do this (which doesn't have the correct size), just make the target sync its own stubs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46354 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
2a3e08b5961353fa3faeadf81f481ae9f5463427 |
|
05-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
X86 JIT PIC jumptable support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
be8c03fc66b75fa775e1f47d62a1b0d803fced1c |
|
04-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
02aabbf96b1f22144afe2bec8ad480a9b803f6b8 |
|
03-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Change MachineRelocation::DoesntNeedFnStub to NeedStub. This fields will be used for non-function GV relocations that require function address stubs (e.g. Mac OS X in non-static mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45527 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
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/JITEmitter.cpp
|
8907b4ba479bbfbe630a4c3abab32c7d49749a48 |
|
06-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
split the JIT memory management code out from the main JIT logic into its own JITMemoryManager interface. There is no functionality change with this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
514ab348fddcdffa8367685dc608b2f8d5de986d |
|
01-Nov-2007 |
Duncan Sands <baldrick@free.fr> |
Executive summary: getTypeSize -> getTypeStoreSize / getABITypeSize. The meaning of getTypeSize was not clear - clarifying it is important now that we have x86 long double and arbitrary precision integers. The issue with long double is that it requires 80 bits, and this is not a multiple of its alignment. This gives a primitive type for which getTypeSize differed from getABITypeSize. For arbitrary precision integers it is even worse: there is the minimum number of bits needed to hold the type (eg: 36 for an i36), the maximum number of bits that will be overwriten when storing the type (40 bits for i36) and the ABI size (i.e. the storage size rounded up to a multiple of the alignment; 64 bits for i36). This patch removes getTypeSize (not really - it is still there but deprecated to allow for a gradual transition). Instead there is: (1) getTypeSizeInBits - a number of bits that suffices to hold all values of the type. For a primitive type, this is the minimum number of bits. For an i36 this is 36 bits. For x86 long double it is 80. This corresponds to gcc's TYPE_PRECISION. (2) getTypeStoreSizeInBits - the maximum number of bits that is written when storing the type (or read when reading it). For an i36 this is 40 bits, for an x86 long double it is 80 bits. This is the size alias analysis is interested in (getTypeStoreSize returns the number of bytes). There doesn't seem to be anything corresponding to this in gcc. (3) getABITypeSizeInBits - this is getTypeStoreSizeInBits rounded up to a multiple of the alignment. For an i36 this is 64, for an x86 long double this is 96 or 128 depending on the OS. This is the spacing between consecutive elements when you form an array out of this type (getABITypeSize returns the number of bytes). This is TYPE_SIZE in gcc. Since successive elements in a SequentialType (arrays, pointers and vectors) need to be aligned, the spacing between them will be given by getABITypeSize. This means that the size of an array is the length times the getABITypeSize. It also means that GEP computations need to use getABITypeSize when computing offsets. Furthermore, if an alloca allocates several elements at once then these too need to be aligned, so the size of the alloca has to be the number of elements multiplied by getABITypeSize. Logically speaking this doesn't have to be the case when allocating just one element, but it is simpler to also use getABITypeSize in this case. So alloca's and mallocs should use getABITypeSize. Finally, since gcc's only notion of size is that given by getABITypeSize, if you want to output assembler etc the same as gcc then getABITypeSize is the size you want. Since a store will overwrite no more than getTypeStoreSize bytes, and a read will read no more than that many bytes, this is the notion of size appropriate for alias analysis calculations. In this patch I have corrected all type size uses except some of those in ScalarReplAggregates, lib/Codegen, lib/Target (the hard cases). I will get around to auditing these too at some point, but I could do with some help. Finally, I made one change which I think wise but others might consider pointless and suboptimal: in an unpacked struct the amount of space allocated for a field is now given by the ABI size rather than getTypeStoreSize. I did this because every other place that reserves memory for a type (eg: alloca) now uses getABITypeSize, and I didn't want to make an exception for unpacked structs, i.e. I did it to make things more uniform. This only effects structs containing long doubles and arbitrary precision integers. If someone wants to pack these types more tightly they can always use a packed struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
087b72d1bceea0ffe414c0e3d54196aafc7769f8 |
|
19-Jul-2007 |
Reid Spencer <rspencer@reidspencer.com> |
Hush a noisy warning from GCC 4.2 about overflow during conversion by using the type "unsigned" instead of uintptr_t for a 1-bit structure field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e510b3af3a76cd557bb958293f859e4861060fc2 |
|
09-Jul-2007 |
Gabor Greif <ggreif@gmail.com> |
fix typos git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a99be51bf5cdac1438069d4b01766c47704961c8 |
|
05-Jul-2007 |
Gabor Greif <ggreif@gmail.com> |
Here is the bulk of the sanitizing. Almost all occurrences of "bytecode" in the sources have been eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37913 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
9da60f92d916be01c23b8a9a0eeed448523a7c9b |
|
30-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
(For Chris): Fix failure where we rejected compiling stubs when lazy compilation is disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c6551ffdd5bdb9b199fbfe5f72a8003425a72006 |
|
06-Mar-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Implement PR1240 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
5cbf985dcbc89fba3208e7baf8b6f488b06d3ec9 |
|
30-Jan-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid confusion with external linkage types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
fd58e6e2ecebe92804869586d65b27085110f336 |
|
23-Jan-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Moved disassembler to libSystem git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c5633c235e94f69c6a77e894bcc84d8ba71106f0 |
|
20-Jan-2007 |
Chris Lattner <sabre@nondot.org> |
DOUT still evaluates side effects, even though it doesn't print. This means that disassembleBuffer will be called even if NDEBUG, but the result will be ignored. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a9ebd2b91ffdaa52775c4b9a807e7382976aa38b |
|
19-Jan-2007 |
Andrew Lenharth <andrewl@lenharth.org> |
fix build on amd64 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
8cd4c3e6534a14566bf163301fd45bca34e655c1 |
|
19-Jan-2007 |
Anton Korobeynikov <asl@math.spbu.ru> |
Adding disassembler interface and external hook to udis86 library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
36343735cb23680c8f8675deafbbf825d46fd868 |
|
19-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
remove static ctors from Statistic objects git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
b92767afd442a8363a8696e54880ee31c5d48c1e |
|
14-Dec-2006 |
Jim Laskey <jlaskey@mac.com> |
Simplify the fetching of relocation mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32588 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
acd80ac7bb19f8bdfa55336d567c9ecbe695c8b8 |
|
14-Dec-2006 |
Jim Laskey <jlaskey@mac.com> |
1. Tidy up jump table info. 2. Allow the jit to handle PIC relocable jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32581 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
832171cb9724d2d31c8dfb73172e2be8f6dd13ee |
|
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Removing even more <iostream> includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
ac0b6ae358944ae8b2b5a11dc08f52c3ed89f2da |
|
06-Dec-2006 |
Chris Lattner <sabre@nondot.org> |
Detemplatize the Statistic class. The only type it is instantiated with is 'unsigned'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32279 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
9a1e9b91407f4752ff3de392d60a6cf3f1dcc37d |
|
16-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Allow target to specify alignment for function stub. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
9cab56d59e2ed6af5fb5137a6e50d4bf915eaccf |
|
09-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
if lazy compilation is disabled, print an error message and abort if lazy compilation is ever attempted git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
3ed469ccd7b028a030b550d84b7336d146f5d8fa |
|
02-Nov-2006 |
Reid Spencer <rspencer@reidspencer.com> |
For PR786: Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting fall out by removing unused variables. Remaining warnings have to do with unused functions (I didn't want to delete code without review) and unused variables in generated code. Maintainers should clean up the remaining issues when they see them. All changes pass DejaGnu tests and Olden. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c6336273d973ffc5d3bce828a934c6ec99c4630b |
|
15-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Unbreak the JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
b74ed07bfd3af42331b1964c24c39912610a08f4 |
|
14-Sep-2006 |
Anton Korobeynikov <asl@math.spbu.ru> |
Adding dllimport, dllexport and external weak linkage types. DLL* linkages got full (I hope) codegeneration support in C & both x86 assembler backends. External weak linkage added for future use, we don't provide any codegeneration, etc. support for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30374 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
8a650095fcecaf5270231bd376e49ed46249da95 |
|
13-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a ton of jit failures git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
cd5731d98b15c9de236bd0dd6c9c57d9bcecbceb |
|
12-Sep-2006 |
Evan Cheng <evan.cheng@apple.com> |
Reflect MachineConstantPoolEntry changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
019f851ab26511c089e41b61901f743e75f90714 |
|
11-Sep-2006 |
Nate Begeman <natebegeman@mac.com> |
Behold, more work on relocations. Things are looking pretty good now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
fe854034677f59baca1e38075e71f6efca247a03 |
|
16-Aug-2006 |
Chris Lattner <sabre@nondot.org> |
initial changes to support JIT'ing from multiple module providers, implicitly linking the program on the fly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
f141cc46faf6f0525f0baa10b6a6c976301874a5 |
|
27-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
Resolve BB references with relocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
2e9f3686f80232617484c82c83d8317da3e0e294 |
|
27-Jul-2006 |
Jim Laskey <jlaskey@mac.com> |
Fixed a typo in Evan's submisson. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29345 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
55b5053b8e22cf165d1f0ce3aa9a04707e368a15 |
|
27-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
Move synchronizeICache from TargetJITInfo into a static function in JITEmitter.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
55fc28076fa48723bd170e51638b3b5974ca0fa1 |
|
25-Jul-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Refactor the code that resolve basic block references to a TargetJITInfo method. - Added synchronizeICache() to TargetJITInfo. It is called after each block of code is emitted to flush the icache. This ensures correct execution on targets that have separate dcache and icache. - Added PPC / Mac OS X specific code to do icache flushing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29276 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c1780d2a0a22b0b7d9fcc227c3b31c28390ceecc |
|
07-Jul-2006 |
Chris Lattner <sabre@nondot.org> |
Change AllocateRWX/DeallocateRWX do not throw an exception. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
52b510b4c4f36f58c4aa37a1f835eb95e89e0adb |
|
23-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
Added jump table address relocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a827953c32e420740c281b4a38a056d15b180932 |
|
16-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Only count instructions as code size, not constant pools and other per-function stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
870286aa33290c00e55ba479a60251c79f3a7911 |
|
01-Jun-2006 |
Chris Lattner <sabre@nondot.org> |
Fix -pedantic warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
f3af4ff0053cc831650ea917c01a4c2680c8974e |
|
16-May-2006 |
Chris Lattner <sabre@nondot.org> |
Make this print the right start pointer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
bbea1245a1b7e2bce79fe34d9331dab2e42fa3a4 |
|
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fix a hypothetical memory leak, identified by Coverity. In practice, this object is never deleted though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a5f0419b4e7415a579e08f918194b37537cd0e29 |
|
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
For extra sanity checking, fill free'd memory with garbage so we know that people aren't reusing machine code buffers at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
9f3d1ba9ad6bfdd4c0d89d42f8205284156d9940 |
|
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Fix some bugs in the freelist manipulation code. Finally, implement ExecutionEngine::freeMachineCodeForFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e993cc27ad9fd84e6aaf652c94eb9ca0cb63a898 |
|
12-May-2006 |
Chris Lattner <sabre@nondot.org> |
Significantly revamp allocation of machine code to use free lists, real allocation policies and much more. All this complexity, and we have no functionality change, woo! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28225 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e7fd553b3be8b95dc0946cd3267bc2db859cd3d8 |
|
09-May-2006 |
Chris Lattner <sabre@nondot.org> |
Move some methods out of line so that MutexGuard.h isn't needed in a public header. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
d2d5c76753b132c34c71248db2f136b38531bc6d |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
minor cleanups, no functionality change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
b4432f3d4754e16c918428d34a9d8ec18ab79204 |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Suck block address tracking out of targets into the JIT Emitter. This simplifies the MachineCodeEmitter interface just a little bit and makes BasicBlocks work like constant pools and jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a69571c7991813c93cba64e88eced6899ce93d81 |
|
03-May-2006 |
Owen Anderson <resistor@mac.com> |
Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. This fixes PR 759. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
0eb4d6b52e1b5db9a4c86e5a954356ae3507a287 |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Align function bodies correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e6fdcbfc47e32c0f8a2ed9df350ac0c871c575f7 |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Simplify some code. Don't add memory blocks to the Blocks list twice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28071 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
af1563fb62ed76f4818ac172ab1c6cf15fa35a82 |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Change the BasicBlockAddrs map to be a vector, indexed by MBB number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
32ca55f3bc64c1a4424ac2e4710cf4cbcaceea43 |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Simplify some code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
f75f9be3fb89eb6661a0ed8bfee8a6328ee5a4d1 |
|
03-May-2006 |
Chris Lattner <sabre@nondot.org> |
Several related changes: 1. Change several methods in the MachineCodeEmitter class to be pure virtual. 2. Suck emitConstantPool/initJumpTableInfo into startFunction, removing them from the MachineCodeEmitter interface, and reducing the amount of target- specific code. 3. Change the JITEmitter so that it allocates constantpools and jump tables *right* next to the functions that they belong to, instead of in a separate pool of memory. This makes all memory for a function be contiguous, and means the JITEmitter only tracks one block of memory now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
f5d438c1f0e0c0ed44475ab69f03d86a3c818c60 |
|
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Do not make the JIT memory manager manage the memory for globals. Instead just have the JIT malloc them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a726c7f1fd3c3b75bbb3df8faa7676ef09cb15c8 |
|
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Minor cleanups, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28061 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
43b429b05989075b60693d57395c99b0ad789f8d |
|
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Refactor the machine code emitter interface to pull the pointers for the current code emission location into the base class, instead of being in the derived classes. This change means that low-level methods like emitByte/emitWord now are no longer virtual (yaay for speed), and we now have a framework to support growable code segments. This implements feature request #1 of PR469. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
b0cc79d45b1e455b486f8ca5cc68546b7a865eb3 |
|
02-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove dead method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c34b22716be8394cd205e31dfeeb94c6033fb34d |
|
25-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
Fix a warning git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
37efe6764568a3829fee26aba532283131d1a104 |
|
22-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
JumpTable support! What this represents is working asm and jit support for x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
239862ce995adfd3b51062e62e54ef2db92b1150 |
|
09-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
simplify this code now that each constant pool entry is not separately allocated git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
3029f920519e0871a5aad5d7c592281093953733 |
|
09-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
Adjust to MachineConstantPool interface change: instead of keeping a value/alignment pair for each constant, keep a value/offset pair. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
fa77d43ba1d91ed39f46e11caeb28dcabae9e193 |
|
09-Feb-2006 |
Chris Lattner <sabre@nondot.org> |
rename fields of constant pool entries git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26076 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
b8973bd8f50d7321635e1e07b81a880a0828d185 |
|
31-Jan-2006 |
Evan Cheng <evan.cheng@apple.com> |
Allow the specification of explicit alignments for constant pool entries. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
ca26180d393c40c3b84283329f78e90be4b4e27a |
|
23-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Add #include of <iostream> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
2199877563ddf4ddb8defb760b33eb4478449a54 |
|
07-Jan-2006 |
Chris Lattner <sabre@nondot.org> |
Wrap long lines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
2b3b89c28e90ba9637614a398dc0eb743370a1c9 |
|
01-Aug-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
one cannot allocate a global, until one is done initializing the global pointers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
d29b6aa608d69f19b57ebd2ae630b040b1c4951d |
|
30-Jul-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Keep tabs and trailing spaces out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22565 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a00269bc3e97d4e53ed196325ef02e6d1f3d70dc |
|
30-Jul-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
support near allocations for the JIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
6a9746127a168306a670eaff11925605dbea9d4f |
|
28-Jul-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
Like constants, globals on some platforms are GOT relative. This means they have to be allocated near the GOT, which new doesn't do. So break out the allocate into a new function. Also move GOT index handling into JITResolver. This lets it update the mapping when a Lazy function is JITed. It doesn't managed the table, just the mapping. Note that this is still non-ideal, as any function that takes a function address should also take a GOT index, but that is a lot of changes. The relocation resolve process updates any GOT entry it sees is out of date. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
00b16889ab461b7ecef1c91ade101186b7f1fce2 |
|
27-Jul-2005 |
Jeff Cohen <jeffc@jolt-lang.org> |
Eliminate all remaining tabs and trailing spaces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
d6bbac500b069ab3f2b59d3041479176c5a908cd |
|
26-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
fix a warning on 32-bit systems git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
16ec33c6ef630730ad55a4af7242c658e1efb8b3 |
|
22-Jul-2005 |
Andrew Lenharth <andrewl@lenharth.org> |
the JIT memory manager will construct a GOT if you want it too. Also, it places the constants in the allocated memory, rather than a malloc area git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e884dc2c586bc2f6646ffce89fef5100b412326e |
|
20-Jul-2005 |
Chris Lattner <sabre@nondot.org> |
count the number of relocations performed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22480 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
3c94497ec7852eccd68c1bc1663e8ac2a7bb1ab9 |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Convert tabs to spaces git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21440 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
d91ff7cd3b08cfe30b731799da8358dd9f90558c |
|
18-Apr-2005 |
Chris Lattner <sabre@nondot.org> |
Add support for targets that require stubs for external functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
5b3a4553c1da7e417a240379e2f510c77532c5c1 |
|
17-Mar-2005 |
Chris Lattner <sabre@nondot.org> |
Fix the missing symbols problem Bill was hitting. Patch contributed by Bill Wendling!! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
6943570f3a1cbb771f92601d3bbcf9abddeceb5e |
|
20-Feb-2005 |
Chris Lattner <sabre@nondot.org> |
Fix problems running the HowToUseJIT on powerpc, and probably problems with ANY program that does not have all functions internalized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
281a601198f55be89914e64dca0801ba94f925ef |
|
10-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Rework constant pool handling so that function constant pools are no longer leaked to the system. Now they are destroyed with the JITMemoryManager is destroyed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
a8101c163dfb7a8c63f5ac74e878538245802fa4 |
|
08-Jan-2005 |
Chris Lattner <sabre@nondot.org> |
Silence VS warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
4af3da6e6b5607e4ec19c9b3f995feeb6fb70ae5 |
|
13-Dec-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Get rid of some leaks found by VC leak detector. Patch contributed by Morten Ofsted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e518b7170b09b20abf2806b2762019db082471d8 |
|
05-Dec-2004 |
Chris Lattner <sabre@nondot.org> |
Properly implement a fix for PR475 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18537 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
f71755dc56240a393ad822058f439fe120a1ccbd |
|
01-Dec-2004 |
Chris Lattner <sabre@nondot.org> |
Remove unneeded cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18405 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
532343b24e78dc6120921c09151195a59b94058a |
|
30-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Fix the JIT when being used from llvm-db git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
166f2269f5e5e54f8b5df705e7653929374d1893 |
|
22-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Rename Emitter.cpp -> JITEmitter.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
cf88d324a892c8f93ccdac55788afb48b17c728b |
|
22-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Fix the FIXME, nuke the JIT specific forceCompilationOf method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
6f71720be3c67f6bffd3976805e577995d779a2f |
|
22-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
These methods are obsolete git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
b43dbdcb20245db6712b2a5a8b52e9b5d8220fed |
|
22-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Support targets that require stubs for external functions better git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
cb47941556800369216c062dcee8dcab7cd39ee9 |
|
21-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Clean up DEBUG output git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18081 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
5e225588530f641d6627becadffdd7d285bfcdba |
|
21-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Allow targets to avoid emitting a stub for EVERY lazily resolved call. In most cases (e.g. direct calls) no stub is needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
5426652c25a5d960bdd3272aa3b90fc8203a5a66 |
|
21-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Implement relocation support by adding a target independent resolver interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
5be478f360b4c632d1adfccc64df87840e1ccfc1 |
|
20-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Add getCurrentPCOffset() and addRelocation() methods. Add stub support for relocations to finishFunction git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18035 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
45730d71b69646afe0876dd03446b4df8b8d11f2 |
|
19-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Match change in MachineCodeEmitter prototype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
02376e3f29fd393d2e36a2e3bb682bdcecb1c8ab |
|
16-Nov-2004 |
Chris Lattner <sabre@nondot.org> |
Now that we have ghost linkage, we can force resolution of external symbols immediately instead of lazily. In this program, for example: int main() { printf("hello world\n"); printf("hello world\n"); printf("hello world\n"); printf("hello world\n"); } We used to have to go through compilation callback 4 times (once for each call to printf), now we don't go to it at all. Thanks to Misha for noticing this, and for adding the initial ghost linkage patches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17864 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
88560c3a4268937a5362e26d75185d436c93ea0a |
|
29-Oct-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
When emitting debug msgs for function stubs, don't truncate the printed pointer value if sizeof(unsigned) != pointer size. Instead, use uintptr_t. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17338 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
33189e787b98c79bd03be466ec19dfb2f65eb65f |
|
14-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Simplify the sys::Memory interface per Chris' request. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
52b0ba6873c44bd08a43f34068ffdffdb55a6f5c |
|
11-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Convert the Emitter to use the lib/System "Memory" interface instead of the old SystemUtils.h interface to allocate RWX blocks of memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
551ccae044b0ff658fe629dd67edd5ffe75d10e8 |
|
02-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Changes For Bug 352 Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
0cb162b3bb9b5f0fbac40bff4a33fd35083a6673 |
|
28-May-2004 |
Chris Lattner <sabre@nondot.org> |
Use the SystemUtils.h file to do our dirty work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c52663c4edc90a48c7bbba125bf5271072c6bb12 |
|
27-May-2004 |
Chris Lattner <sabre@nondot.org> |
This code is a real mess, but at least get the JIT *building* on platforms (such as plan 9) without mmap. Of course it won't RUN... but that's another step. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13839 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
aea1b58f1ec420ee73b2ed3ef455901eba531e12 |
|
23-Apr-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Implement emitWordAt() for the JIT emitter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
6c0398ed4702fdf33b4b3025c9ae466b558118ad |
|
08-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
There is no reason to #define fd git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
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/JITEmitter.cpp
|
c19aadee66b744311afe6e420847e80822a765f2 |
|
08-Dec-2003 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
2c0a6a19ef42f2ad547dbc0693e55e082a21ac8b |
|
30-Nov-2003 |
Chris Lattner <sabre@nondot.org> |
Emit constants to one contiguous block, but this time, respect alignment constraints. If this doesn't work Misha, feel free to revert it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
91de352796a52e5d18b19f0be322677b1cf6b176 |
|
30-Nov-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Go back to allocating memory for each constant separately. Since SPARCs do not allow unaligned loads, that is probably the problem I've been seeing in numerous SPARC test cases failing. X86, on the other hand, just slows down unaligned accesses, since it must make 2 aligned accesses for each unaligned one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
ef7e57018d63dd7df4c74b91d5b7f717930999ad |
|
17-Nov-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Emit the MachineConstantPool constants in one contiguous memory `pool'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10060 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
b576c94c15af9a440f69d9d03c2afead7971118c |
|
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e738656c0b380e5059cb522927aeb49554d01e46 |
|
20-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Hrm, a relic from the past. How cute :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
6020ddd57e62a8da3eee1210040a3611d52d2889 |
|
17-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Fix a typo in a comment, and zap a blank line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9184 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
364f86d4dff7ec203afcef6ae09f64c468e57804 |
|
11-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Make mmap's fd for anonymous memory acquisition default to -1, except on Linux. This is consistent with what FreeBSD and Solaris both want. This makes the JIT work on FreeBSD 5.1-RELEASE. Whee. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
e24b616faa7fc4242f807669d502a544e9b042fd |
|
10-Oct-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Don't include Config/stdio.h or <stdio.h>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
011efae2f0ff141064e305c55940c9cbec5396c7 |
|
06-Oct-2003 |
Chris Lattner <sabre@nondot.org> |
Actually _PASS IN_ NO_RESERVE if we have it. Thanks to Brian for fixing this obvious oops git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
36d10ef7e7c7267a9289c6f5904fcf85640926f4 |
|
10-Sep-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
* Move include files from middle of file to the top where they belong, moving the #define up there too * Since we're including system headers, use the ones in include/llvm/Config * While we're here, use the canonical LLVM header ordering algorithm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
88b4855499eb98b5510b74897b77691c1e806cb8 |
|
10-Sep-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Fix warning when _POSIX_MAPPED_FILES is already defined in unistd.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
688506de24f04682f9d8563a7d20ab15ab85340b |
|
14-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Implement a _REAL_ memory manager for the code generated by the JIT. This speeds up program execution by 15% pretty consistently for large programs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
3785fad56eb90284d4e930d40e9306391630deb1 |
|
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Specify DEBUG_TYPE's for the JIT debug messages git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
c648dabf65c67d20c208ed0b39b9622387e636c7 |
|
02-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
DEBUG got moved to Debug.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7491 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
89e8be00c5f410d2238d9ad771831684a2b3a314 |
|
29-Jul-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
* Stop hard-coding a value for beginning of emitted code on Sparc since we can now handle far calls (i.e., beyond the 30-bit limit in call instructions). * As a side-effect, this allows us to unify and clean up the mmap() call and code around it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
fd31a78124a0a747b88b49d41ab5e7703c6f9caa |
|
28-Jul-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Add rationale for the MAP_ANONYMOUS vs. MAP_ANON flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
d69c1e6dc28bed3c156f78fee5253748e3d509e2 |
|
28-Jul-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Add ability for external C code to get pointers to functions given their name. This us used by bugpoint -- when code is compiled to a shared object to be JITted, it must use the JIT's lazy resolution method to find function addresses, because some functions will not be available at .so load time, as they are in the bytecode file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
7a73b80b9052136c8cd2234eb3433a07df7cf38e |
|
30-Jun-2003 |
John Criswell <criswell@uiuc.edu> |
Merged in autoconf branch. This provides configuration via the autoconf system. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
02c26b681ec70538fba8b273326e696e6a3dc4d2 |
|
30-Jun-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Get rid of the duplicate '0x' in debug mode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
4399a4982ab8003a6009583b73a2aa38dedb6420 |
|
18-Jun-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Add #ifdef hack for MAP_ANONYMOUS being spelled MAP_ANON on some platforms. (We're already talking about autoconf'ing this, so I'm assuming this hack will be short-lived...I just don't want it to get lost in my working files.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
08d5e1f7182bb53f79bbea7fcc9ed983f47990fd |
|
08-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Add #include for older GCC's git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
1d4408506b5704a64ad76a295ee8f7b94b79ffd0 |
|
06-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Output function address as hex. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
cf614a32d532090d615ecb2574f5990b8f829199 |
|
06-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Removed debug print statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
3a55e8aae4f5f28c624a87e2161b4a825b75ad09 |
|
04-Jun-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
* Institute a hack for the Sparc call to mmap() to get our generated code to be laid out closer to the VM so that calls to library functions (e.g. puts()) and callback (e.g. JITResolver::CompilationCallback) fit into 30 bits of the call instruction. * Abort if architecture is not yet supported (not X86 or Sparc) because it likely requires a different set of parameters to mmap() . * Stop using hard-coded values for page size; use sysconf(_SC_PAGESIZE) instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
d5af63f325b01f31a06d1b1b31df9bbc5fe64926 |
|
02-Jun-2003 |
Chris Lattner <sabre@nondot.org> |
Remove obsolete code git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
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/JITEmitter.cpp
|
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/JITEmitter.cpp
|
eb5a93b86baaeb867942decb3c2902a9ae779e83 |
|
08-May-2003 |
Chris Lattner <sabre@nondot.org> |
Minor speedup by avoiding callbacks to functions already generated git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6052 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
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/JITEmitter.cpp
|
910687ec5582f111305283c6f0a2dafeb469ffb2 |
|
29-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Fix warnings on sparc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
1cc08381f1ab57efdf07248fd5e9fd75ef6f0f99 |
|
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Add support for new types of values git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|
bd199fb1148b9e16c4e6f3d0ee386c2505a55b71 |
|
24-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Initial checkin of new LLI with JIT compiler git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
|