In this chapter, we will cover the following recipes:
Writing a dead code elimination pass
Writing an inlining transformation pass
Writing a pass for memory optimization
Combining LLVM IR
Transforming and optimizing loops
Reassociating expressions
Vectorizing IR
Other optimization passes