mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 05:29:24 +00:00
Add DisableGVCompilation which forces the JIT to assert when it tries to allocate space for a GlobalVariable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56557 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f3cbca279d
commit
446531e7bb
@ -65,6 +65,7 @@ class ExecutionEngine {
|
||||
const TargetData *TD;
|
||||
ExecutionEngineState state;
|
||||
bool LazyCompilationDisabled;
|
||||
bool GVCompilationDisabled;
|
||||
bool SymbolSearchingDisabled;
|
||||
|
||||
protected:
|
||||
@ -254,6 +255,16 @@ public:
|
||||
bool isLazyCompilationDisabled() const {
|
||||
return LazyCompilationDisabled;
|
||||
}
|
||||
|
||||
/// DisableGVCompilation - If called, the JIT will abort if it's asked to allocate
|
||||
/// space and populate a GlobalVariable.
|
||||
void DisableGVCompilation(bool Disabled = true) {
|
||||
GVCompilationDisabled = Disabled;
|
||||
}
|
||||
bool isGVCompilationDisabled() const {
|
||||
return GVCompilationDisabled;
|
||||
}
|
||||
|
||||
/// DisableSymbolSearching - If called, the JIT will not try to lookup unknown
|
||||
/// symbols with dlsym. A client can still use InstallLazyFunctionCreator to
|
||||
/// resolve symbols in a custom way.
|
||||
|
@ -40,6 +40,7 @@ ExecutionEngine::EERegisterFn ExecutionEngine::ExceptionTableRegister = 0;
|
||||
|
||||
ExecutionEngine::ExecutionEngine(ModuleProvider *P) : LazyFunctionCreator(0) {
|
||||
LazyCompilationDisabled = false;
|
||||
GVCompilationDisabled = false;
|
||||
SymbolSearchingDisabled = false;
|
||||
Modules.push_back(P);
|
||||
assert(P && "ModuleProvider is null?");
|
||||
|
@ -552,6 +552,10 @@ void *JIT::getOrEmitGlobalVariable(const GlobalVariable *GV) {
|
||||
addGlobalMapping(GV, Ptr);
|
||||
}
|
||||
} else {
|
||||
if (isGVCompilationDisabled()) {
|
||||
cerr << "Compilation of GlobalVariable is disabled!\n";
|
||||
abort();
|
||||
}
|
||||
// If the global hasn't been emitted to memory yet, allocate space and
|
||||
// emit it into memory. It goes in the same array as the generated
|
||||
// code, jump tables, etc.
|
||||
|
Loading…
Reference in New Issue
Block a user