mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Add an option to allocate JITed global data separately from code. By
default, this option is not enabled to support clients who rely on this behavior. Fixes http://llvm.org/PR4483 A patch to allocate additional memory for globals after we run out is forthcoming. Patch by Reid Kleckner! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75059 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -527,6 +527,11 @@ namespace {
|
||||
/// allocate a new one of the given size.
|
||||
virtual void *allocateSpace(uintptr_t Size, unsigned Alignment);
|
||||
|
||||
/// allocateGlobal - Allocate memory for a global. Unlike allocateSpace,
|
||||
/// this method does not allocate memory in the current output buffer,
|
||||
/// because a global may live longer than the current function.
|
||||
virtual void *allocateGlobal(uintptr_t Size, unsigned Alignment);
|
||||
|
||||
virtual void addRelocation(const MachineRelocation &MR) {
|
||||
Relocations.push_back(MR);
|
||||
}
|
||||
@@ -1161,6 +1166,11 @@ void* JITEmitter::allocateSpace(uintptr_t Size, unsigned Alignment) {
|
||||
return CurBufferPtr;
|
||||
}
|
||||
|
||||
void* JITEmitter::allocateGlobal(uintptr_t Size, unsigned Alignment) {
|
||||
// Delegate this call through the memory manager.
|
||||
return MemMgr->allocateGlobal(Size, Alignment);
|
||||
}
|
||||
|
||||
void JITEmitter::emitConstantPool(MachineConstantPool *MCP) {
|
||||
if (TheJIT->getJITInfo().hasCustomConstantPool())
|
||||
return;
|
||||
|
Reference in New Issue
Block a user