Summary
In this chapter, we learned lots of useful utilities that can improve our productivity when developing with LLVM. Some of them—such as optimization remarks or timers—are useful for diagnosing problems raised by LLVM, while others—the Error
class, for instance—help you to build more robust code that scales well with the complexity of your own compiler.
In the final chapter of this book, we are going to learn about profile-guided optimization (PGO) and sanitizer development, which are advanced topics that you can't miss.