diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2012-05-20 17:24:08 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2012-05-20 17:24:08 +0000 |
commit | 76004e69a6c5f1d5ad92a82b3f6fae80a9e024ab (patch) | |
tree | f133a947644db98f1a5e24a2b289d1becc55b5c6 | |
parent | 601f555eeeebb2093b19c0238b8935ef6fc41a27 (diff) | |
download | bcm5719-llvm-76004e69a6c5f1d5ad92a82b3f6fae80a9e024ab.tar.gz bcm5719-llvm-76004e69a6c5f1d5ad92a82b3f6fae80a9e024ab.zip |
Plug a leak when using MCJIT.
Found by valgrind.
llvm-svn: 157160
-rw-r--r-- | llvm/lib/CodeGen/LLVMTargetMachine.cpp | 2 | ||||
-rw-r--r-- | llvm/tools/lli/lli.cpp | 5 |
2 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/CodeGen/LLVMTargetMachine.cpp b/llvm/lib/CodeGen/LLVMTargetMachine.cpp index 313d362d94e..30963a2ea90 100644 --- a/llvm/lib/CodeGen/LLVMTargetMachine.cpp +++ b/llvm/lib/CodeGen/LLVMTargetMachine.cpp @@ -273,7 +273,7 @@ bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM, // Create the code emitter for the target if it exists. If not, .o file // emission fails. - const MCRegisterInfo &MRI = *getTarget().createMCRegInfo(getTargetTriple()); + const MCRegisterInfo &MRI = *getRegisterInfo(); const MCSubtargetInfo &STI = getSubtarget<MCSubtargetInfo>(); MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(*getInstrInfo(), MRI, STI, *Ctx); diff --git a/llvm/tools/lli/lli.cpp b/llvm/tools/lli/lli.cpp index 7f7c37f50e2..b6c9299c65b 100644 --- a/llvm/tools/lli/lli.cpp +++ b/llvm/tools/lli/lli.cpp @@ -419,8 +419,6 @@ int main(int argc, char **argv, char * const *envp) { builder.setRelocationModel(RelocModel); builder.setCodeModel(CMModel); builder.setErrorStr(&ErrorMsg); - builder.setJITMemoryManager(ForceInterpreter ? 0 : - JITMemoryManager::CreateDefaultMemManager()); builder.setEngineKind(ForceInterpreter ? EngineKind::Interpreter : EngineKind::JIT); @@ -435,6 +433,9 @@ int main(int argc, char **argv, char * const *envp) { builder.setUseMCJIT(true); JMM = new LLIMCJITMemoryManager(); builder.setJITMemoryManager(JMM); + } else { + builder.setJITMemoryManager(ForceInterpreter ? 0 : + JITMemoryManager::CreateDefaultMemManager()); } CodeGenOpt::Level OLvl = CodeGenOpt::Default; |