summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Re-factored RuntimeDyld.Danil Malyshev2012-03-211-514/+108
| | | | | | Added ExecutionEngine/MCJIT tests. llvm-svn: 153221
* RuntimeDyldMachO has the ability to keep track ofSean Callanan2012-03-201-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 153147
* Improved support in RuntimeDyldMachO for generatingSean Callanan2012-03-071-16/+48
| | | | | | | | | | | 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). llvm-svn: 152264
* Fixed the 32-bit runtime dynamic loader to allocateSean Callanan2012-03-011-1/+1
| | | | | | | code sections when needed. It just had a conditional the wrong way around. llvm-svn: 151777
* Remove dead code. Improve llvm_unreachable text. Simplify some control flow.Ahmed Charles2012-02-191-1/+0
| | | | llvm-svn: 150918
* Fix various issues (or do cleanups) found by enabling certain MSVC warnings.Ahmed Charles2012-02-131-1/+0
| | | | | | | | | - 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. llvm-svn: 150364
* Convert assert(0) to llvm_unreachableCraig Topper2012-02-071-1/+1
| | | | llvm-svn: 149967
* Split the lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h header to ↵Eli Bendersky2012-01-221-1/+1
| | | | | | | | | | smaller logical headers. ELF and MachO implementations of RuntimeDyldImpl go into their own header files now. Reviewed on llvm-commits llvm-svn: 148652
* RuntimeDyld alignment adjustment from MachO file.Jim Grosbach2012-01-211-2/+4
| | | | | | | | 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. llvm-svn: 148604
* Fix inverted condition.Jim Grosbach2012-01-201-1/+1
| | | | llvm-svn: 148593
* More dead code removal (using -Wunreachable-code)David Blaikie2012-01-201-1/+0
| | | | llvm-svn: 148578
* Tidy up.Jim Grosbach2012-01-161-1/+1
| | | | llvm-svn: 148265
* ExecutionEngine interface to re-map addresses for engines that support it.Jim Grosbach2012-01-161-0/+2
| | | | llvm-svn: 148264
* MCJIT handle a few more simple x86 relocations for MachO.Jim Grosbach2012-01-161-4/+5
| | | | llvm-svn: 148263
* MCJIT support for non-function sections.Jim Grosbach2012-01-161-213/+281
| | | | | | | | | | | | | | | | 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. llvm-svn: 148258
* Fix typo in stringEli Bendersky2012-01-061-1/+1
| | | | llvm-svn: 147654
* Ignore MachO symbol flags in the upper nibble of n_desc.Jim Grosbach2011-11-011-2/+4
| | | | | | They don't impact the MCJIT rtdyld, so just mask them off for now. llvm-svn: 143472
* Add to RuntimeDyld support different object formatsDanil Malyshev2011-07-131-0/+524
llvm-svn: 135037
OpenPOWER on IntegriCloud