| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 30240
|
|
|
|
|
|
| |
linking the program on the fly.
llvm-svn: 29721
|
|
|
|
| |
llvm-svn: 29351
|
|
|
|
| |
llvm-svn: 29345
|
|
|
|
|
|
| |
JITEmitter.cpp
llvm-svn: 29334
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 29057
|
|
|
|
| |
llvm-svn: 28908
|
|
|
|
|
|
| |
per-function stuff.
llvm-svn: 28827
|
|
|
|
| |
llvm-svn: 28636
|
|
|
|
| |
llvm-svn: 28321
|
|
|
|
|
|
| |
object is never deleted though.
llvm-svn: 28256
|
|
|
|
|
|
| |
people aren't reusing machine code buffers at all.
llvm-svn: 28228
|
|
|
|
|
|
| |
Finally, implement ExecutionEngine::freeMachineCodeForFunction.
llvm-svn: 28227
|
|
|
|
|
|
|
| |
allocation policies and much more. All this complexity, and we have no
functionality change, woo! :)
llvm-svn: 28225
|
|
|
|
|
|
| |
header.
llvm-svn: 28179
|
|
|
|
| |
llvm-svn: 28087
|
|
|
|
|
|
|
| |
simplifies the MachineCodeEmitter interface just a little bit and makes
BasicBlocks work like constant pools and jump tables.
llvm-svn: 28082
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 28073
|
|
|
|
| |
llvm-svn: 28071
|
|
|
|
| |
llvm-svn: 28069
|
|
|
|
| |
llvm-svn: 28066
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
just have the JIT malloc them.
llvm-svn: 28062
|
|
|
|
| |
llvm-svn: 28061
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 28055
|
|
|
|
| |
llvm-svn: 27967
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 26079
|
|
|
|
|
|
| |
value/alignment pair for each constant, keep a value/offset pair.
llvm-svn: 26078
|
|
|
|
| |
llvm-svn: 26076
|
|
|
|
| |
llvm-svn: 25855
|
|
|
|
| |
llvm-svn: 25516
|
|
|
|
| |
llvm-svn: 25140
|
|
|
|
| |
llvm-svn: 22568
|
|
|
|
| |
llvm-svn: 22565
|
|
|
|
| |
llvm-svn: 22554
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 22523
|
|
|
|
| |
llvm-svn: 22513
|
|
|
|
|
|
| |
places the constants in the allocated memory, rather than a malloc area
llvm-svn: 22497
|
|
|
|
| |
llvm-svn: 22480
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 21440
|
|
|
|
| |
llvm-svn: 21422
|
|
|
|
| |
llvm-svn: 21313
|
|
|
|
|
|
| |
Bill Wendling!!
llvm-svn: 20649
|
|
|
|
|
|
| |
ANY program that does not have all functions internalized.
llvm-svn: 20258
|