Date
1 - 1 of 1
Review: restore doInitialization/doFinalization (issue1972042)
larry...@...
Reviewers: ,
Description: LLVM tweaks: I had commented out the doInitialization/doFinalization calls to the pass manager because they didn't seem to do anything useful. But on a hunch after some very rare crashes (maybe 1 in 20, not reliable) decided to restore them. Now no crashes (for at least a couple hundred runs, so at the very least it's much rarer). Please review this at http://codereview.appspot.com/1972042/show Affected files: src/liboslexec/llvm_instance.cpp Index: src/liboslexec/llvm_instance.cpp =================================================================== --- src/liboslexec/llvm_instance.cpp (revision 798) +++ src/liboslexec/llvm_instance.cpp (working copy) @@ -3502,7 +3502,6 @@ fpm.add (llvm::createPromoteMemoryToRegisterPass()); // Always add verifier? fpm.add (llvm::createVerifierPass()); - fpm.doInitialization (); // Change memory references to registers @@ -3523,7 +3522,6 @@ fpmo.add (llvm::createPromoteMemoryToRegisterPass()); // Always add verifier? fpmo.add (llvm::createVerifierPass()); - fpmo.doInitialization (); passes.add (new llvm::TargetData(llvm_module())); @@ -3655,15 +3653,15 @@ ASSERT (m_llvm_passes != NULL && m_llvm_func_passes != NULL); #if 1 -// m_llvm_func_passes->doInitialization(); + m_llvm_func_passes->doInitialization(); m_llvm_func_passes->run (*func); -// m_llvm_func_passes->doFinalization(); + m_llvm_func_passes->doFinalization(); #else for (llvm::Module::iterator i = llvm_module()->begin(); i != llvm_module()->end(); ++i) { -// m_llvm_func_passes->doInitialization(); + m_llvm_func_passes->doInitialization(); m_llvm_func_passes->run (*i); -// m_llvm_func_passes->doFinalization(); + m_llvm_func_passes->doFinalization(); } #endif @@ -3674,11 +3672,11 @@ // Since the passes above inlined function calls, among other // things, we should rerun our whole optimization set on the master // function now. -#if 1 +#if 0 ASSERT (func); -// m_llvm_func_passes_optimized->doInitialization (); + m_llvm_func_passes_optimized->doInitialization (); m_llvm_func_passes_optimized->run (*func); -// m_llvm_func_passes_optimized->doFinalization (); + m_llvm_func_passes_optimized->doFinalization (); #endif } } |
|