6c1202c459ffa6d693ad92fa84e43902bc780bca |
|
05-Jun-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Handle relocations that don't point to symbols. In ELF (as in MachO), not all relocations point to symbols. Represent this properly by using a symbol_iterator instead of a SymbolRef. Update llvm-readobj ELF's dumper to handle relocatios without symbols. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
a2e40fbd624916c187a95ed76939ca7f02ed3e53 |
|
05-May-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add EH support to the MCJIT. This gets exception handling working on ELF and Macho (x86-64 at least). Other than the EH frame registration, this patch also implements support for GOT relocations which are used to locate the personality function on MachO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
e87dadc44b1544c35e13cf48dfe167109929a944 |
|
30-Apr-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix Addend computation for non external relocations on Macho. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180790 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
8e6e02a41bd21f8e919e812dbd7aa9ed5474bdbf |
|
30-Apr-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Collect the Addend for external relocs. This fixes 2013-04-04-RelocAddend.ll. We don't have a testcase for non external relocs with an Addend. I will try to write one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
ca0e73610056110e9a175c14dd82d6d616fd830f |
|
29-Apr-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use a RelocationRef instead of a relocation_iterator. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180723 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
87b5017139e9d8ac9b046b3284a9cc68c76185d6 |
|
29-Apr-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Propagate relocation info to resolveRelocation. This gets most of the MCJITs tests passing with MachO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
efa91f6475f6e96552986104ab4857db46185a2a |
|
29-Apr-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Replace ObjRelocationInfo with relocation_iterator. For MachO we need information that is not represented in ObjRelocationInfo. Instead of copying the bits we think are needed from a relocation_iterator, just pass the relocation_iterator down to the format specific functions. No functionality change yet as we still drop the information once processRelocationRef returns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
6f6f17197259edbb82cc9b0d800fe0e3cb8e201c |
|
31-Jan-2013 |
Jim Grosbach <grosbach@apple.com> |
RuntimeDyld: Fix errant fallthrough. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174078 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.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/RuntimeDyld/RuntimeDyldMachO.cpp
|
a307a1cf859f4a523951ac887d094039547adeb5 |
|
02-Nov-2012 |
Andrew Kaylor <andrew.kaylor@intel.com> |
Change resolveRelocation parameters so the relocations can find placeholder values in the original object buffer. Some ELF relocations require adding the a value to the original contents of the object buffer at the specified location. In order to properly handle multiple applications of a relocation, the RuntimeDyld code should be grabbing the original value from the object buffer and writing a new value into the loaded section buffer. This patch changes the parameters passed to resolveRelocations to accommodate this need. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
3f23cef24fc9200def464bd4bce820678b5715de |
|
02-Oct-2012 |
Andrew Kaylor <andrew.kaylor@intel.com> |
Clean-up of memory buffer and object ownership model in MCJIT git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
7639f98c5fc903339bf50e574aee999d54340cdf |
|
13-Sep-2012 |
Jim Grosbach <grosbach@apple.com> |
MCJIT: relocation addends encoded in the target aren't quite so easy. The assumption that the target address for the relocation will always be sizeof(intptr_t) and will always contain an addend for the relocation value is very wrong. Default to no addend for now. rdar://12157052 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
01e1a97021da37588ebaf94352984cd566729c4e |
|
13-Sep-2012 |
Jim Grosbach <grosbach@apple.com> |
MCJIT: Make sure to mask off non-type-field bits. When comparing to the macho relocation type enum value, make sure we're only comparing against the bits in the RelType that correspond. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
ba9ba9f9bcb8e627ff9cc4bd11904db21762e5a2 |
|
13-Sep-2012 |
Jim Grosbach <grosbach@apple.com> |
MCJIT: Pass the i386 MachO relocation type properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
c201e6eaf165c83f0092c43b371e509fa8eaf4cc |
|
01-May-2012 |
Eli Bendersky <eli.bendersky@intel.com> |
RuntimeDyld cleanup: - Improved parameter names for clarity - Added comments - emitCommonSymbols should return void because its return value is not being used anywhere - Attempt to reduce the usage of the RelocationValueRef type. Restricts it for a single goal and may serve as a step for eventual removal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
d98c9e918c9750d965c1efe9efcc9e13feacbe13 |
|
01-May-2012 |
Eli Bendersky <eli.bendersky@intel.com> |
RuntimeDyld code cleanup: - There's no point having a different type for the local and global symbol tables. - Renamed SymbolTable to GlobalSymbolTable to clarify the intention - Improved const correctness where relevant git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
6d15e8717767af9a6a20c6ea456119c15c77dd00 |
|
30-Apr-2012 |
Eli Bendersky <eli.bendersky@intel.com> |
Code cleanup in RuntimeDyld: - Add comments - Change field names to be more reasonable - Fix indentation and naming to conform to coding conventions - Remove unnecessary includes / replace them by forward declatations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
689ff9c00f4f3dcf3491778bcdbda79e19e2285d |
|
17-Apr-2012 |
Preston Gurd <preston.gurd@intel.com> |
Implement GDB integration for source level debugging of code JITed using the MCJIT execution engine. The GDB JIT debugging integration support works by registering a loaded object image with a pre-defined function that GDB will monitor if GDB is attached. GDB integration support is implemented for ELF only at this time. This integration requires GDB version 7.0 or newer. Patch by Andy Kaylor! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
0e4fa5ff365fccff46870b7d5d8d4d1d46e77986 |
|
30-Mar-2012 |
Danil Malyshev <dmalyshev@accesssoftek.com> |
Re-factored RuntimeDyLd: 1. The main works will made in the RuntimeDyLdImpl with uses the ObjectFile class. RuntimeDyLdMachO and RuntimeDyLdELF now only parses relocations and resolve it. This is allows to make improvements of the RuntimeDyLd more easily. In addition the support for COFF can be easily added. 2. Added ARM relocations to RuntimeDyLdELF. 3. Added support for stub functions for the ARM, allowing to do a long branch. 4. Added support for external functions that are not loaded from the object files, but can be loaded from external libraries. Now MCJIT can correctly execute the code containing the printf, putc, and etc. 5. The sections emitted instead functions, thanks Jim Grosbach. MemoryManager.startFunctionBody() and MemoryManager.endFunctionBody() have been removed. 6. MCJITMemoryManager.allocateDataSection() and MCJITMemoryManager. allocateCodeSection() used JMM->allocateSpace() instead of JMM->allocateCodeSection() and JMM->allocateDataSection(), because I got an error: "Cannot allocate an allocated block!" with object file contains more than one code or data sections. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153754 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
288967dfac246c8e35dc4f85afb667e74d1d26a8 |
|
30-Mar-2012 |
Bill Wendling <isanbard@gmail.com> |
Revert r153694. It was causing failures in the buildbots. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
4b0b8ef1b0edc2c343145f6b029c43b00a6f5c13 |
|
29-Mar-2012 |
Danil Malyshev <dmalyshev@accesssoftek.com> |
Re-factored RuntimeDyld. Added ExecutionEngine/MCJIT tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
b38aae442f0e3ce11a6231455b180bfc66ab5d3e |
|
26-Mar-2012 |
Sean Callanan <scallanan@apple.com> |
Made RuntimeDyldMachO support vanilla i386 relocations. The algorithm is the same as that for x86_64. Scattered relocations, a feature present in i386 but not on x86_64, are not yet supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
3e29671cca14f8fce1ea6b602175880cb3df7199 |
|
22-Mar-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Revert a series of commits to MCJIT to get the build working in CMake (and hopefully on Windows). The bots have been down most of the day because of this, and it's not clear to me what all will be required to fix it. The commits started with r153205, then r153207, r153208, and r153221. The first commit seems to be the real culprit, but I couldn't revert a smaller number of patches. When resubmitting, r153207 and r153208 should be folded into r153205, they were simple build fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153241 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
799184d8eb140d02385501223cea0a087148b67b |
|
21-Mar-2012 |
Danil Malyshev <dmalyshev@accesssoftek.com> |
Re-factored RuntimeDyld. Added ExecutionEngine/MCJIT tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
5069b21b45d8ec99a1b34b6483d800ba5c2ea598 |
|
20-Mar-2012 |
Sean Callanan <scallanan@apple.com> |
RuntimeDyldMachO has the ability to keep track of relocations (i.e., pieces of data whose addresses are referred to elsewhere in the binary image) and update the references when the section containing the relocations moves. The way this works is that there is a map from section IDs to lists of relocations. Because the relocations are associated with the section containing the data being referred to, they are updated only when the target moves. However, many data references are relative and also depend on the location of the referrer. To solve this problem, I introduced a new data structure, Referrer, which simply contains the section being referred to and the index of the relocation in that section. These referrers are associated with the source containing the reference that needs to be updated, so now regardless of which end of the relocation moves, the relocation will now be updated correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153147 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
61dfa77fce2b6b6261e43334aec060129eac5c6c |
|
08-Mar-2012 |
Sean Callanan <scallanan@apple.com> |
Improved support in RuntimeDyldMachO for generating code that will be relocated into another memory space. Now when relocations are resolved, the address of the relocation in the host memory (where the JIT is) is passed separately from the address that the relocation will be at in the target memory (where the code will run). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
996d6fdfb4242f935a8c97cbfa0af5ba6db4a743 |
|
01-Mar-2012 |
Sean Callanan <scallanan@apple.com> |
Fixed the 32-bit runtime dynamic loader to allocate code sections when needed. It just had a conditional the wrong way around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151777 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
b0934ab7d811e23bf530371976b8b35f3242169c |
|
19-Feb-2012 |
Ahmed Charles <ace2001ac@gmail.com> |
Remove dead code. Improve llvm_unreachable text. Simplify some control flow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150918 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
b83a67e1e3fe210bd99a82eccd3dc5b1b44f1503 |
|
13-Feb-2012 |
Ahmed Charles <ace2001ac@gmail.com> |
Fix various issues (or do cleanups) found by enabling certain MSVC warnings. - Use unsigned literals when the desired result is unsigned. This mostly allows unsigned/signed mismatch warnings to be less noisy even if they aren't on by default. - Remove misplaced llvm_unreachable. - Add static to a declaration of a function on MSVC x86 only. - Change some instances of calling a static function through a variable to simply calling that function while removing the unused variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.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/RuntimeDyld/RuntimeDyldMachO.cpp
|
76463fdeb603e1d89b05f094bfd6fe73b90d0b61 |
|
22-Jan-2012 |
Eli Bendersky <eli.bendersky@intel.com> |
Split the lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h header to smaller logical headers. ELF and MachO implementations of RuntimeDyldImpl go into their own header files now. Reviewed on llvm-commits git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148652 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
93391348dc00b4078463515149eeb214796f553d |
|
21-Jan-2012 |
Jim Grosbach <grosbach@apple.com> |
RuntimeDyld alignment adjustment from MachO file. The MachO file stores section alignment as log2(alignment-in-bytes). The allocation routines want the raw alignment-in-bytes value, so adjust for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148604 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
b442d7c6bf920b892b4b098923c1652700ee07e6 |
|
20-Jan-2012 |
Jim Grosbach <grosbach@apple.com> |
Fix inverted condition. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
4d6ccb5f68cd7c6418a209f1fa4dbade569e4493 |
|
20-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
More dead code removal (using -Wunreachable-code) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
e0934bee3a4f40731169bc42b15a39ce39978175 |
|
17-Jan-2012 |
Jim Grosbach <grosbach@apple.com> |
Tidy up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
020f4e861a9a32059f76377e787703c92ba55a98 |
|
17-Jan-2012 |
Jim Grosbach <grosbach@apple.com> |
ExecutionEngine interface to re-map addresses for engines that support it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148264 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
652ca2fe0c8bd406222d064937adc28b281d7b89 |
|
17-Jan-2012 |
Jim Grosbach <grosbach@apple.com> |
MCJIT handle a few more simple x86 relocations for MachO. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
61425c0a7f4e3608a85f7bbf254cd052a15b7446 |
|
16-Jan-2012 |
Jim Grosbach <grosbach@apple.com> |
MCJIT support for non-function sections. Move to a by-section allocation and relocation scheme. This allows better support for sections which do not contain externally visible symbols. Flesh out the relocation address vs. local storage address separation a bit more as well. Remote process JITs use this to tell the relocation resolution code where the code will live when it executes. The startFunctionBody/endFunctionBody interfaces to the JIT and the memory manager are deprecated. They'll stick around for as long as the old JIT does, but the MCJIT doesn't use them anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148258 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
1eb189b4b2a99fc0b03f4d8df9f469c3ef7ad4f5 |
|
06-Jan-2012 |
Eli Bendersky <eli.bendersky@intel.com> |
Fix typo in string git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147654 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
fadfd7b9776c723357894af00442a35d0a4d0acf |
|
01-Nov-2011 |
Jim Grosbach <grosbach@apple.com> |
Ignore MachO symbol flags in the upper nibble of n_desc. They don't impact the MCJIT rtdyld, so just mask them off for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|
cf852dc49bfadb79a27455f8773dbfda2b96f4f6 |
|
13-Jul-2011 |
Danil Malyshev <dmalyshev@accesssoftek.com> |
Add to RuntimeDyld support different object formats git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
|