mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-12 01:25:10 +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:
@@ -87,7 +87,8 @@ protected:
|
||||
// libraries, the JIT and Interpreter set these functions to ctor pointers
|
||||
// at startup time if they are linked in.
|
||||
typedef ExecutionEngine *(*EECtorFn)(ModuleProvider*, std::string*,
|
||||
CodeGenOpt::Level OptLevel);
|
||||
CodeGenOpt::Level OptLevel,
|
||||
bool GVsWithCode);
|
||||
static EECtorFn JITCtor, InterpCtor;
|
||||
|
||||
/// LazyFunctionCreator - If an unknown function is needed, this function
|
||||
@@ -118,8 +119,18 @@ public:
|
||||
bool ForceInterpreter = false,
|
||||
std::string *ErrorStr = 0,
|
||||
CodeGenOpt::Level OptLevel =
|
||||
CodeGenOpt::Default);
|
||||
|
||||
CodeGenOpt::Default,
|
||||
// Allocating globals with code breaks
|
||||
// freeMachineCodeForFunction and is probably
|
||||
// unsafe and bad for performance. However,
|
||||
// we have clients who depend on this
|
||||
// behavior, so we must support it.
|
||||
// Eventually, when we're willing to break
|
||||
// some backwards compatability, this flag
|
||||
// should be flipped to false, so that by
|
||||
// default freeMachineCodeForFunction works.
|
||||
bool GVsWithCode = true);
|
||||
|
||||
/// create - This is the factory method for creating an execution engine which
|
||||
/// is appropriate for the current machine. This takes ownership of the
|
||||
/// module.
|
||||
@@ -132,7 +143,8 @@ public:
|
||||
std::string *ErrorStr = 0,
|
||||
JITMemoryManager *JMM = 0,
|
||||
CodeGenOpt::Level OptLevel =
|
||||
CodeGenOpt::Default);
|
||||
CodeGenOpt::Default,
|
||||
bool GVsWithCode = true);
|
||||
|
||||
/// addModuleProvider - Add a ModuleProvider to the list of modules that we
|
||||
/// can JIT from. Note that this takes ownership of the ModuleProvider: when
|
||||
|
Reference in New Issue
Block a user