mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-14 11:32:34 +00:00
Simple refactorings to prepare for lazy global emission
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10546 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2828970819
commit
3ddc05bdde
@ -21,9 +21,10 @@
|
||||
|
||||
namespace llvm {
|
||||
|
||||
union GenericValue;
|
||||
class Constant;
|
||||
class Function;
|
||||
union GenericValue;
|
||||
class GlobalVariable;
|
||||
class GlobalValue;
|
||||
class Module;
|
||||
class ModuleProvider;
|
||||
@ -60,8 +61,8 @@ public:
|
||||
|
||||
static ExecutionEngine *create(ModuleProvider *MP, bool ForceInterpreter);
|
||||
|
||||
void addGlobalMapping(const Function *F, void *Addr) {
|
||||
void *&CurVal = GlobalAddress[(const GlobalValue*)F];
|
||||
void addGlobalMapping(const GlobalValue *GV, void *Addr) {
|
||||
void *&CurVal = GlobalAddress[GV];
|
||||
assert(CurVal == 0 && "GlobalMapping already established!");
|
||||
CurVal = Addr;
|
||||
}
|
||||
@ -107,6 +108,12 @@ public:
|
||||
|
||||
protected:
|
||||
void emitGlobals();
|
||||
|
||||
// EmitGlobalVariable - This method emits the specified global variable to the
|
||||
// address specified in GlobalAddresses, or allocates new memory if it's not
|
||||
// already in the map.
|
||||
void EmitGlobalVariable(GlobalVariable *GV);
|
||||
|
||||
GenericValue getConstantValue(const Constant *C);
|
||||
GenericValue LoadValueFromMemory(GenericValue *Ptr, const Type *Ty);
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user