Home | History | Annotate | Download | only in JIT

Lines Matching refs:JIT

10 // This file defines a MachineCodeEmitter object that is used by the JIT to
15 #define DEBUG_TYPE "jit"
16 #include "JIT.h"
68 // JIT lazy compilation code.
78 llvm_unreachable("The JIT doesn't know how to handle a"
111 /// Instance of the JIT this ResolverState serves.
112 JIT *TheJIT;
116 JITResolverState(JIT *jit) : FunctionToLazyStubMap(this),
119 TheJIT = jit;
193 /// Instance of JIT corresponding to this Resolver.
194 JIT *TheJIT;
197 explicit JITResolver(JIT &jit, JITEmitter &je)
198 : state(&jit), nextGOTIndex(0), JE(je), TheJIT(&jit) {
199 LazyResolverFn = jit.getJITInfo().getLazyResolverFunction(JITCompilerFn);
280 /// JITEmitter - The JIT implementation of the MachineCodeEmitter, which is
289 // When reattempting to JIT a function after running out of space, we store
290 // the estimated size of the function we're trying to JIT here, so we can
359 /// Instance of the JIT
360 JIT *TheJIT;
363 JITEmitter(JIT &jit, JITMemoryManager *JMM, TargetMachine &TM)
364 : SizeEstimate(0), Resolver(jit, *this), MMI(0), CurFn(0),
365 EmittedFunctions(this), TheJIT(&jit) {
367 if (jit.getJITInfo().needsGOT()) {
369 DEBUG(dbgs() << "JIT is managing a GOT\n");
414 DEBUG(dbgs() << "JIT: Emitting BB" << MBB->getNumber() << " at ["
517 // Call the lazy resolver function if we are JIT'ing lazily. Otherwise we
541 // address of the stub in the GlobalAddressMap for the JIT, not the address
546 DEBUG(dbgs() << "JIT: Lazy stub emitted at [" << Stub << "] for function '"
558 // If we are JIT'ing non-lazily but need to call a function that does not
559 // exist yet, add it to the JIT's work list so that we can fill in the
582 DEBUG(dbgs() << "JIT: Indirect symbol emitted at [" << IndirectSym
600 DEBUG(dbgs() << "JIT: Stub emitted at [" << Stub
610 DEBUG(dbgs() << "JIT: Adding GOT entry " << idx << " for addr ["
629 // JIT lock to be unlocked.
648 report_fatal_error("LLVM JIT requested to do lazy compilation of"
653 DEBUG(dbgs() << "JIT: Lazily resolving function '" << F->getName()
713 // If this is an external function pointer, we can force the JIT to
766 DEBUG(dbgs() << "JIT: Starting CodeGen of Function "
833 DEBUG(dbgs() << "JIT: Map \'" << MR.getExternalSymbol() << "\' to ["
866 DEBUG(dbgs() << "JIT: GOT was out of date for " << ResultPtr
883 DEBUG(dbgs() << "JIT: GOT was out of date for " << (void*)BufferBegin
915 DEBUG(dbgs() << "JIT: Finished CodeGen of [" << (void*)FnStart
928 dbgs() << "JIT: Disassembled code:\n";
932 dbgs() << "JIT: Binary code:\n";
938 dbgs() << "JIT: " << (long)(q - FnStart) << ": ";
963 DEBUG(dbgs() << "JIT: Ran out of space for native code. Reattempting.\n");
1023 DEBUG(dbgs() << "JIT: Emitted constant pool at [" << ConstantPoolBase
1041 DEBUG(dbgs() << "JIT: CP" << i << " at [0x";
1087 "Cross JIT'ing?");
1106 assert(MJTI->getEntrySize(*TheJIT->getDataLayout()) == 4&&"Cross JIT'ing?");
1199 llvm_unreachable("The JIT doesn't know how to handle a"
1208 JITCodeEmitter *JIT::createEmitter(JIT &jit, JITMemoryManager *JMM,
1210 return new JITEmitter(jit, JMM, tm);
1217 void *JIT::getPointerToFunctionOrStub(Function *F) {
1227 void JIT::updateFunctionStub(Function *F) {
1234 // Tell the target jit info to rewrite the stub at the specified address,
1244 void JIT::freeMachineCodeForFunction(Function *F) {