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"
69 // JIT lazy compilation code.
79 llvm_unreachable("The JIT doesn't know how to handle a"
111 /// Instance of the JIT this ResolverState serves.
112 JIT *TheJIT;
115 JITResolverState(JIT *jit) : FunctionToLazyStubMap(this),
117 TheJIT(jit) {}
189 /// Instance of JIT corresponding to this Resolver.
190 JIT *TheJIT;
193 explicit JITResolver(JIT &jit, JITEmitter &je)
194 : state(&jit), nextGOTIndex(0), JE(je), TheJIT(&jit) {
195 LazyResolverFn = jit.getJITInfo().getLazyResolverFunction(JITCompilerFn);
276 /// JITEmitter - The JIT implementation of the MachineCodeEmitter, which is
285 // When reattempting to JIT a function after running out of space, we store
286 // the estimated size of the function we're trying to JIT here, so we can
323 /// DE - The dwarf emitter for the jit.
358 /// Instance of the JIT
359 JIT *TheJIT;
364 JITEmitter(JIT &jit, JITMemoryManager *JMM, TargetMachine &TM)
365 : SizeEstimate(0), Resolver(jit, *this), MMI(0), CurFn(0),
366 EmittedFunctions(this), TheJIT(&jit),
369 if (jit.getJITInfo().needsGOT()) {
371 DEBUG(dbgs() << "JIT is managing a GOT\n");
375 DE.reset(new JITDwarfEmitter(jit));
424 DEBUG(dbgs() << "JIT: Emitting BB" << MBB->getNumber() << " at ["
528 // Call the lazy resolver function if we are JIT'ing lazily. Otherwise we
552 // address of the stub in the GlobalAddressMap for the JIT, not the address
557 DEBUG(dbgs() << "JIT: Lazy stub emitted at [" << Stub << "] for function '"
569 // If we are JIT'ing non-lazily but need to call a function that does not
570 // exist yet, add it to the JIT's work list so that we can fill in the
593 DEBUG(dbgs() << "JIT: Indirect symbol emitted at [" << IndirectSym
611 DEBUG(dbgs() << "JIT: Stub emitted at [" << Stub
621 DEBUG(dbgs() << "JIT: Adding GOT entry " << idx << " for addr ["
640 // JIT lock to be unlocked.
659 report_fatal_error("LLVM JIT requested to do lazy compilation of"
664 DEBUG(dbgs() << "JIT: Lazily resolving function '" << F->getName()
724 // If this is an external function pointer, we can force the JIT to
777 DEBUG(dbgs() << "JIT: Starting CodeGen of Function "
844 DEBUG(dbgs() << "JIT: Map \'" << MR.getExternalSymbol() << "\' to ["
877 DEBUG(dbgs() << "JIT: GOT was out of date for " << ResultPtr
894 DEBUG(dbgs() << "JIT: GOT was out of date for " << (void*)BufferBegin
926 DEBUG(dbgs() << "JIT: Finished CodeGen of [" << (void*)FnStart
939 dbgs() << "JIT: Disassembled code:\n";
943 dbgs() << "JIT: Binary code:\n";
949 dbgs() << "JIT: " << (long)(q - FnStart) << ": ";
998 DEBUG(dbgs() << "JIT: Ran out of space for native code. Reattempting.\n");
1063 DEBUG(dbgs() << "JIT: Emitted constant pool at [" << ConstantPoolBase
1081 DEBUG(dbgs() << "JIT: CP" << i << " at [0x";
1127 "Cross JIT'ing?");
1146 assert(MJTI->getEntrySize(*TheJIT->getTargetData()) == 4&&"Cross JIT'ing?");
1239 llvm_unreachable("The JIT doesn't know how to handle a"
1248 JITCodeEmitter *JIT::createEmitter(JIT &jit, JITMemoryManager *JMM,
1250 return new JITEmitter(jit, JMM, tm);
1257 void *JIT::getPointerToFunctionOrStub(Function *F) {
1268 void JIT::updateFunctionStub(Function *F) {
1276 // Tell the target jit info to rewrite the stub at the specified address,
1286 void JIT::freeMachineCodeForFunction(Function *F) {