forked from OSchip/llvm-project
Implement the TargetMachine::getJITStubForFunction method for X86, finegrainify
namespacification. llvm-svn: 10430
This commit is contained in:
parent
538dffd9fa
commit
2e7416cb04
|
@ -23,8 +23,7 @@
|
|||
#include "Support/Debug.h"
|
||||
#include "Support/Statistic.h"
|
||||
#include "Config/alloca.h"
|
||||
|
||||
namespace llvm {
|
||||
using namespace llvm;
|
||||
|
||||
namespace {
|
||||
Statistic<>
|
||||
|
@ -54,6 +53,12 @@ namespace {
|
|||
JITResolver *TheJITResolver;
|
||||
}
|
||||
|
||||
void *X86TargetMachine::getJITStubForFunction(Function *F,
|
||||
MachineCodeEmitter &MCE) {
|
||||
if (TheJITResolver == 0)
|
||||
TheJITResolver = new JITResolver(MCE);
|
||||
return (void*)TheJITResolver->getLazyResolver(F);
|
||||
}
|
||||
|
||||
/// addFunctionReference - This method is called when we need to emit the
|
||||
/// address of a function that has not yet been emitted, so we don't know the
|
||||
|
@ -591,5 +596,3 @@ void Emitter::emitInstruction(MachineInstr &MI) {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
} // End llvm namespace
|
||||
|
|
|
@ -55,6 +55,12 @@ public:
|
|||
virtual bool addPassesToEmitAssembly(PassManager &PM, std::ostream &Out);
|
||||
|
||||
virtual void replaceMachineCodeForFunction (void *Old, void *New);
|
||||
|
||||
/// getJITStubForFunction - Create or return a stub for the specified
|
||||
/// function. This stub acts just like the specified function, except that it
|
||||
/// allows the "address" of the function to be taken without having to
|
||||
/// generate code for it.
|
||||
virtual void *getJITStubForFunction(Function *F, MachineCodeEmitter &MCE);
|
||||
};
|
||||
|
||||
} // End llvm namespace
|
||||
|
|
Loading…
Reference in New Issue