Technical requirements
Similar to the other chapters that built an LLVM backend, you need to develop directly in the LLVM code base (or a fork of it). As such, you will need all the same tools as presented in Chapter 1.
Additionally, for all the snippets presented in this chapter, you will find the actual implementation in the GitHub repository at https://github.com/PacktPublishing/LLVM-Code-Generation-by-example. We call this repository the companion repository in the remainder of the chapter.
The changes for this chapter are all included between the begin_ch18
and end_ch18
Git tags of the companion repository. If you are not familiar with Git tags, refer to Chapter 9 for a quick explanation of what you can do with them. Throughout the chapter, we also mention specific tags that we created in this repository so you can easily find the relevant commits.
Let us now introduce the concepts used for instruction scheduling in LLVM.