mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Revert the API changes from r85295 to make it easier for people to build
against both 2.6 and HEAD. The default is still changed to eager jitting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85330 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -319,7 +319,7 @@ public:
|
|||||||
virtual void RegisterJITEventListener(JITEventListener *) {}
|
virtual void RegisterJITEventListener(JITEventListener *) {}
|
||||||
virtual void UnregisterJITEventListener(JITEventListener *) {}
|
virtual void UnregisterJITEventListener(JITEventListener *) {}
|
||||||
|
|
||||||
/// EnableLazyCompilation - When lazy compilation is off (the default), the
|
/// DisableLazyCompilation - When lazy compilation is off (the default), the
|
||||||
/// JIT will eagerly compile every function reachable from the argument to
|
/// JIT will eagerly compile every function reachable from the argument to
|
||||||
/// getPointerToFunction. If lazy compilation is turned on, the JIT will only
|
/// getPointerToFunction. If lazy compilation is turned on, the JIT will only
|
||||||
/// compile the one function and emit stubs to compile the rest when they're
|
/// compile the one function and emit stubs to compile the rest when they're
|
||||||
@@ -332,12 +332,17 @@ public:
|
|||||||
/// stub, and 2) any thread modifying LLVM IR must hold the JIT's lock
|
/// stub, and 2) any thread modifying LLVM IR must hold the JIT's lock
|
||||||
/// (ExecutionEngine::lock) or otherwise ensure that no other thread calls a
|
/// (ExecutionEngine::lock) or otherwise ensure that no other thread calls a
|
||||||
/// lazy stub. See http://llvm.org/PR5184 for details.
|
/// lazy stub. See http://llvm.org/PR5184 for details.
|
||||||
void EnableLazyCompilation(bool Enabled = true) {
|
void DisableLazyCompilation(bool Disabled = true) {
|
||||||
CompilingLazily = Enabled;
|
CompilingLazily = !Disabled;
|
||||||
}
|
}
|
||||||
bool isCompilingLazily() const {
|
bool isCompilingLazily() const {
|
||||||
return CompilingLazily;
|
return CompilingLazily;
|
||||||
}
|
}
|
||||||
|
// Deprecated in favor of isCompilingLazily (to reduce double-negatives).
|
||||||
|
// Remove this in LLVM 2.8.
|
||||||
|
bool isLazyCompilationDisabled() const {
|
||||||
|
return !CompilingLazily;
|
||||||
|
}
|
||||||
|
|
||||||
/// DisableGVCompilation - If called, the JIT will abort if it's asked to
|
/// DisableGVCompilation - If called, the JIT will abort if it's asked to
|
||||||
/// allocate space and populate a GlobalVariable that is not internal to
|
/// allocate space and populate a GlobalVariable that is not internal to
|
||||||
|
@@ -165,7 +165,7 @@ int main(int argc, char **argv, char * const *envp) {
|
|||||||
|
|
||||||
EE->RegisterJITEventListener(createOProfileJITEventListener());
|
EE->RegisterJITEventListener(createOProfileJITEventListener());
|
||||||
|
|
||||||
EE->EnableLazyCompilation(!NoLazyCompilation);
|
EE->DisableLazyCompilation(NoLazyCompilation);
|
||||||
|
|
||||||
// If the user specifically requested an argv[0] to pass into the program,
|
// If the user specifically requested an argv[0] to pass into the program,
|
||||||
// do it now.
|
// do it now.
|
||||||
|
@@ -304,7 +304,7 @@ TEST_F(JITTest, FarCallToKnownFunction) {
|
|||||||
Builder.CreateRet(result);
|
Builder.CreateRet(result);
|
||||||
|
|
||||||
TheJIT->EnableDlsymStubs(false);
|
TheJIT->EnableDlsymStubs(false);
|
||||||
TheJIT->EnableLazyCompilation(false);
|
TheJIT->DisableLazyCompilation(true);
|
||||||
int (*TestFunctionPtr)() = reinterpret_cast<int(*)()>(
|
int (*TestFunctionPtr)() = reinterpret_cast<int(*)()>(
|
||||||
(intptr_t)TheJIT->getPointerToFunction(TestFunction));
|
(intptr_t)TheJIT->getPointerToFunction(TestFunction));
|
||||||
// This used to crash in trying to call PlusOne().
|
// This used to crash in trying to call PlusOne().
|
||||||
@@ -314,7 +314,7 @@ TEST_F(JITTest, FarCallToKnownFunction) {
|
|||||||
#if !defined(__arm__) && !defined(__powerpc__) && !defined(__ppc__)
|
#if !defined(__arm__) && !defined(__powerpc__) && !defined(__ppc__)
|
||||||
// Test a function C which calls A and B which call each other.
|
// Test a function C which calls A and B which call each other.
|
||||||
TEST_F(JITTest, NonLazyCompilationStillNeedsStubs) {
|
TEST_F(JITTest, NonLazyCompilationStillNeedsStubs) {
|
||||||
TheJIT->EnableLazyCompilation(false);
|
TheJIT->DisableLazyCompilation(true);
|
||||||
|
|
||||||
const FunctionType *Func1Ty =
|
const FunctionType *Func1Ty =
|
||||||
cast<FunctionType>(TypeBuilder<void(void), false>::get(Context));
|
cast<FunctionType>(TypeBuilder<void(void), false>::get(Context));
|
||||||
@@ -370,7 +370,7 @@ TEST_F(JITTest, NonLazyCompilationStillNeedsStubs) {
|
|||||||
// Regression test for PR5162. This used to trigger an AssertingVH inside the
|
// Regression test for PR5162. This used to trigger an AssertingVH inside the
|
||||||
// JIT's Function to stub mapping.
|
// JIT's Function to stub mapping.
|
||||||
TEST_F(JITTest, NonLazyLeaksNoStubs) {
|
TEST_F(JITTest, NonLazyLeaksNoStubs) {
|
||||||
TheJIT->EnableLazyCompilation(false);
|
TheJIT->DisableLazyCompilation(true);
|
||||||
|
|
||||||
// Create two functions with a single basic block each.
|
// Create two functions with a single basic block each.
|
||||||
const FunctionType *FuncTy =
|
const FunctionType *FuncTy =
|
||||||
|
Reference in New Issue
Block a user