Stop building RTTI information for *most* llvm libraries. Notable

missing ones are libsupport, libsystem and libvmcore.  libvmcore is
currently blocked on bugpoint, which uses EH.  Once it stops using
EH, we can switch it off.

This #if 0's out 3 unit tests, because gtest requires RTTI information.
Suggestions welcome on how to fix this.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94164 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner
2010-01-22 06:49:46 +00:00
parent 6eeb7345f2
commit e73a31f667
89 changed files with 126 additions and 8 deletions

View File

@@ -23,6 +23,9 @@
using namespace llvm;
int dummy;
#if 0
namespace {
struct FunctionEmittedEvent {
@@ -235,3 +238,4 @@ testing::Environment* const jit_env =
testing::AddGlobalTestEnvironment(new JITEnvironment);
} // anonymous namespace
#endif

View File

@@ -58,6 +58,7 @@ std::string DumpFunction(const Function *F) {
return Result;
}
#if 0
class RecordingJITMemoryManager : public JITMemoryManager {
const OwningPtr<JITMemoryManager> Base;
public:
@@ -178,6 +179,7 @@ public:
return Base->endExceptionTable(F, TableStart, TableEnd, FrameRegister);
}
};
#endif
bool LoadAssemblyInto(Module *M, const char *assembly) {
SMDiagnostic Error;
@@ -195,11 +197,15 @@ class JITTest : public testing::Test {
virtual void SetUp() {
M = new Module("<main>", Context);
MP = new ExistingModuleProvider(M);
#if 0
RJMM = new RecordingJITMemoryManager;
RJMM->setPoisonMemory(true);
#endif
std::string Error;
TheJIT.reset(EngineBuilder(MP).setEngineKind(EngineKind::JIT)
#if 0
.setJITMemoryManager(RJMM)
#endif
.setErrorStr(&Error).create());
ASSERT_TRUE(TheJIT.get() != NULL) << Error;
}
@@ -211,7 +217,9 @@ class JITTest : public testing::Test {
LLVMContext Context;
Module *M; // Owned by MP.
ModuleProvider *MP; // Owned by ExecutionEngine.
#if 0
RecordingJITMemoryManager *RJMM;
#endif
OwningPtr<ExecutionEngine> TheJIT;
};
@@ -430,6 +438,7 @@ TEST_F(JITTest, ModuleDeletion) {
TheJIT->getPointerToFunction(func);
TheJIT->deleteModuleProvider(MP);
#if 0
SmallPtrSet<const void*, 2> FunctionsDeallocated;
for (unsigned i = 0, e = RJMM->deallocateFunctionBodyCalls.size();
i != e; ++i) {
@@ -463,6 +472,7 @@ TEST_F(JITTest, ModuleDeletion) {
}
EXPECT_EQ(RJMM->startExceptionTableCalls.size(),
NumTablesDeallocated);
#endif
}
// ARM and PPC still emit stubs for calls since the target may be too far away
@@ -497,14 +507,18 @@ TEST_F(JITTest, NoStubs) {
// We should now allocate no more stubs, we have the code to foo
// and the existing stub for bar.
#if 0
int stubsBefore = RJMM->stubsAllocated;
#endif
Function *func = M->getFunction("main");
TheJIT->getPointerToFunction(func);
Function *bar = M->getFunction("bar");
TheJIT->getPointerToFunction(bar);
#if 0
ASSERT_EQ(stubsBefore, RJMM->stubsAllocated);
#endif
}
#endif // !ARM && !PPC

View File

@@ -32,6 +32,10 @@
#include "llvm/Assembly/PrintModulePass.h"
#include "gtest/gtest.h"
int dummy;
#if 0
namespace llvm {
namespace {
// ND = no deps
@@ -525,3 +529,4 @@ namespace llvm {
}
}
#endif