summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Behold, more work on relocations. Things are looking pretty good now.Nate Begeman2006-09-101-1/+1
| | | | llvm-svn: 30240
* initial changes to support JIT'ing from multiple module providers, implicitlyChris Lattner2006-08-161-2/+1
| | | | | | linking the program on the fly. llvm-svn: 29721
* Resolve BB references with relocation.Evan Cheng2006-07-271-5/+2
| | | | llvm-svn: 29351
* Fixed a typo in Evan's submisson.Jim Laskey2006-07-271-1/+1
| | | | llvm-svn: 29345
* Move synchronizeICache from TargetJITInfo into a static function in ↵Evan Cheng2006-07-271-5/+17
| | | | | | JITEmitter.cpp llvm-svn: 29334
* - Refactor the code that resolve basic block references to a TargetJITInfoEvan Cheng2006-07-251-1/+16
| | | | | | | | | | 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. llvm-svn: 29276
* Change AllocateRWX/DeallocateRWX do not throw an exception.Chris Lattner2006-07-071-8/+8
| | | | llvm-svn: 29057
* Added jump table address relocation.Evan Cheng2006-06-231-1/+5
| | | | llvm-svn: 28908
* Only count instructions as code size, not constant pools and other ↵Chris Lattner2006-06-161-6/+10
| | | | | | per-function stuff. llvm-svn: 28827
* Fix -pedantic warnings.Chris Lattner2006-06-011-3/+3
| | | | llvm-svn: 28636
* Make this print the right start pointerChris Lattner2006-05-161-2/+4
| | | | llvm-svn: 28321
* Fix a hypothetical memory leak, identified by Coverity. In practice, thisChris Lattner2006-05-121-1/+3
| | | | | | object is never deleted though. llvm-svn: 28256
* For extra sanity checking, fill free'd memory with garbage so we know thatChris Lattner2006-05-121-0/+3
| | | | | | people aren't reusing machine code buffers at all. llvm-svn: 28228
* Fix some bugs in the freelist manipulation code.Chris Lattner2006-05-111-12/+33
| | | | | | Finally, implement ExecutionEngine::freeMachineCodeForFunction. llvm-svn: 28227
* Significantly revamp allocation of machine code to use free lists, realChris Lattner2006-05-111-51/+340
| | | | | | | allocation policies and much more. All this complexity, and we have no functionality change, woo! :) llvm-svn: 28225
* Move some methods out of line so that MutexGuard.h isn't needed in a public ↵Chris Lattner2006-05-081-1/+9
| | | | | | header. llvm-svn: 28179
* minor cleanups, no functionality changeChris Lattner2006-05-031-7/+7
| | | | llvm-svn: 28087
* Suck block address tracking out of targets into the JIT Emitter. ThisChris Lattner2006-05-031-9/+29
| | | | | | | simplifies the MachineCodeEmitter interface just a little bit and makes BasicBlocks work like constant pools and jump tables. llvm-svn: 28082
* Refactor TargetMachine, pushing handling of TargetData into the ↵Owen Anderson2006-05-031-1/+1
| | | | | | | | target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference. This fixes PR 759. llvm-svn: 28074
* Align function bodies correctly.Chris Lattner2006-05-031-4/+2
| | | | llvm-svn: 28073
* Simplify some code. Don't add memory blocks to the Blocks list twice.Chris Lattner2006-05-031-16/+8
| | | | llvm-svn: 28071
* Change the BasicBlockAddrs map to be a vector, indexed by MBB number.Chris Lattner2006-05-031-3/+3
| | | | llvm-svn: 28069
* Simplify some codeChris Lattner2006-05-031-21/+7
| | | | llvm-svn: 28066
* Several related changes:Chris Lattner2006-05-021-39/+23
| | | | | | | | | | | | | 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. llvm-svn: 28065
* Do not make the JIT memory manager manage the memory for globals. InsteadChris Lattner2006-05-021-35/+3
| | | | | | just have the JIT malloc them. llvm-svn: 28062
* Minor cleanups, no functionality change.Chris Lattner2006-05-021-17/+11
| | | | llvm-svn: 28061
* Refactor the machine code emitter interface to pull the pointers for the currentChris Lattner2006-05-021-52/+31
| | | | | | | | | | 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. llvm-svn: 28059
* Remove dead methodChris Lattner2006-05-021-5/+0
| | | | llvm-svn: 28055
* Fix a warningNate Begeman2006-04-251-1/+1
| | | | llvm-svn: 27967
* JumpTable support! What this represents is working asm and jit support forNate Begeman2006-04-221-1/+82
| | | | | | | | 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. llvm-svn: 27947
* simplify this code now that each constant pool entry is not separately allocatedChris Lattner2006-02-091-15/+16
| | | | llvm-svn: 26079
* Adjust to MachineConstantPool interface change: instead of keeping aChris Lattner2006-02-091-7/+10
| | | | | | value/alignment pair for each constant, keep a value/offset pair. llvm-svn: 26078
* rename fields of constant pool entriesChris Lattner2006-02-091-6/+4
| | | | llvm-svn: 26076
* Allow the specification of explicit alignments for constant pool entries.Evan Cheng2006-01-311-4/+6
| | | | llvm-svn: 25855
* Add #include of <iostream>Chris Lattner2006-01-221-1/+2
| | | | llvm-svn: 25516
* Wrap long lines.Chris Lattner2006-01-071-6/+8
| | | | llvm-svn: 25140
* one cannot allocate a global, until one is done initializing the global pointersAndrew Lenharth2005-08-011-5/+5
| | | | llvm-svn: 22568
* Keep tabs and trailing spaces out.Jeff Cohen2005-07-301-4/+4
| | | | llvm-svn: 22565
* support near allocations for the JITAndrew Lenharth2005-07-291-33/+73
| | | | llvm-svn: 22554
* Like constants, globals on some platforms are GOT relative. This means they ↵Andrew Lenharth2005-07-281-13/+76
| | | | | | | | | | | | | | 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. llvm-svn: 22537
* Eliminate all remaining tabs and trailing spaces.Jeff Cohen2005-07-271-10/+10
| | | | llvm-svn: 22523
* fix a warning on 32-bit systemsChris Lattner2005-07-251-1/+1
| | | | llvm-svn: 22513
* the JIT memory manager will construct a GOT if you want it too. Also, it ↵Andrew Lenharth2005-07-221-9/+51
| | | | | | places the constants in the allocated memory, rather than a malloc area llvm-svn: 22497
* count the number of relocations performed.Chris Lattner2005-07-201-0/+3
| | | | llvm-svn: 22480
* For PR540:Reid Spencer2005-07-121-16/+40
| | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 22404
* Convert tabs to spacesMisha Brukman2005-04-221-1/+1
| | | | llvm-svn: 21440
* Remove trailing whitespaceMisha Brukman2005-04-211-6/+6
| | | | llvm-svn: 21422
* Add support for targets that require stubs for external functions.Chris Lattner2005-04-181-2/+27
| | | | llvm-svn: 21313
* Fix the missing symbols problem Bill was hitting. Patch contributed byChris Lattner2005-03-171-0/+1
| | | | | | Bill Wendling!! llvm-svn: 20649
* Fix problems running the HowToUseJIT on powerpc, and probably problems withChris Lattner2005-02-201-2/+2
| | | | | | ANY program that does not have all functions internalized. llvm-svn: 20258
OpenPOWER on IntegriCloud