This tutorial serves as a tour of LLVM, geared towards beginners interested in implementing LLVM passes. Both LLVM middle-end (IR) and back-end (MIR) passes are covered. At the end of this tutorial, newcomers will be armed with the tools necessary to create their own passes, and improve upon existing passes. This tutorial contains - A brief, high-level explanation of LLVM’s pass-based architecture. - An explanation of analysis and tranformation passes, and how they interact. - Examples of important analysis passes, such as Dominator Trees and Target Transform Information. - An introduction to fundamental data structures and APIs for LLVM pass development. - A sample project which ties together the tutorial material, for use as a reference.