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:
Jeffrey Yasskin
2009-10-27 22:39:42 +00:00
parent 1ff2c485e2
commit 18fec73e29
3 changed files with 12 additions and 7 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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 =