diff --git a/tools/llvm-ld/Optimize.cpp b/tools/llvm-ld/Optimize.cpp index c676809f771..5dc9424be90 100644 --- a/tools/llvm-ld/Optimize.cpp +++ b/tools/llvm-ld/Optimize.cpp @@ -163,6 +163,9 @@ void Optimize(Module* M) { // Cleanup and simplify the code after the scalar optimizations. addPass(Passes, createInstructionCombiningPass()); + // Delete basic blocks, which optimization passes may have killed... + addPass(Passes, createCFGSimplificationPass()); + // Now that we have optimized the program, discard unreachable functions... addPass(Passes, createGlobalDCEPass()); }