In this chapter, we concluded the optimizer part of the compiler where we had seen block level optimizations. We took the examples of loop optimization, Scalar Evolution, Vectorization, and LLVM Intrinsic functions. We also saw how SLP Vectorization is handled in LLVM. However, there are many other such optimizations that you can look into and get a hold of.
In the next chapter, we will see how this IR is converted to Directed Acyclic Graph. We have some optimizations at selectionDAG
level as well, which we will take a look at.
3.15.168.214