LLVM Code Generation: A deep dive into compiler backend development

LLVM Code Generation:A deep dive into compiler backend development

LLVM Code Generation:A deep dive into compiler backend development

by: Quentin Colombet (Author)

Publisher: Packt Publishing

Publication Date: 2025-05-23

Language: English

Print Length: 608 pages

ISBN-10: 1837637784

ISBN-13: 9781837637782

Book Description

Explore the world of code generation with the LLVM infrastructure, and learn how to extend existing backends or develop your ownKey FeaturesUnderstand the steps involved in generating assembly code from LLVM IRLearn the key constructs needed to leverage LLVM for your hardware or backendStrengthen your understanding with targeted exercises and practical examples in every chapterPurchase of the print or Kindle book includes a free PDF eBookBook DescriptionThe LLVM infrastructure is a popular compiler ecosystem widely used in the tech industry and academia. This technology is crucial for both experienced and aspiring compiler developers looking to make an impact in the field. Written by Quentin Colombet, a veteran LLVM contributor and architect of the GlobalISel framework, this book provides a primer on the main aspects of LLVM, with an emphasis on its backend infrastructure; that is, everything needed to transform the intermediate representation (IR) produced by frontends like Clang into assembly code and object files.You’ll learn how to write an optimizing code generator for a toy backend in LLVM. The chapters will guide you step by step through building this backend while exploring key concepts, such as the ABI, cost model, and register allocation. You’ll also find out how to express these concepts using LLVM's existing infrastructure and how established backends address these challenges. Furthermore, the book features code snippets that demonstrate the actual APIs.By the end of this book, you’ll have gained a deeper understanding of LLVM. The concepts presented are expected to remain stable across different LLVM versions, making this book a reliable quick reference guide for understanding LLVM.What you will learnUnderstand essential compiler concepts, such as SSA, dominance, and ABIBuild and extend LLVM backends for creating custom compiler featuresOptimize code by manipulating LLVM's Intermediate RepresentationContribute effectively to LLVM open-source projects and developmentDevelop debugging skills for LLVM optimizations and passesGrasp how encoding and (dis)assembling work in the context of compilersUtilize LLVM's TableGen DSL for creating custom compiler modelsWho this book is forThis book is for both beginners to LLVM and experienced LLVM developers. If you’re new to LLVM, it offers a clear, approachable guide to compiler backends, starting with foundational concepts. For seasoned LLVM developers, it dives into less-documented areas such as TableGen, MachineIR, and MC, enabling you to solve complex problems and expand your expertise. Whether you’re starting out or looking to deepen your knowledge, this book has something for you.Table of ContentsBuilding LLVM and Understanding the Directory StructureContributing to LLVMCompiler Basics and How They Map to LLVM APIsWriting Your First OptimizationDealing with Pass ManagersTableGen – LLVM Swiss Army Knife for ModelingUnderstanding LLVM IRSurvey of the Existing PassesIntroducing Target-Specific ConstructsHands-On Debugging LLVM IR PassesLegacy Instruction Selection Framework - SelectionDAGGetting Started with the Machine Code LayerThe Machine Pass PipelineGetting Started with Instruction SelectionInstruction Selection:The IR Building PhaseInstruction Selection:The Legalization PhaseInstruction Selection:The Selection Phase and BeyondInstruction SchedulingRegister AllocationLowering of the Stack LayoutGetting Started with the Assembler

Editorial Reviews

Explore the world of code generation with the LLVM infrastructure, and learn how to extend existing backends or develop your ownKey FeaturesUnderstand the steps involved in generating assembly code from LLVM IRLearn the key constructs needed to leverage LLVM for your hardware or backendStrengthen your understanding with targeted exercises and practical examples in every chapterPurchase of the print or Kindle book includes a free PDF eBookBook DescriptionThe LLVM infrastructure is a popular compiler ecosystem widely used in the tech industry and academia. This technology is crucial for both experienced and aspiring compiler developers looking to make an impact in the field. Written by Quentin Colombet, a veteran LLVM contributor and architect of the GlobalISel framework, this book provides a primer on the main aspects of LLVM, with an emphasis on its backend infrastructure; that is, everything needed to transform the intermediate representation (IR) produced by frontends like Clang into assembly code and object files.You’ll learn how to write an optimizing code generator for a toy backend in LLVM. The chapters will guide you step by step through building this backend while exploring key concepts, such as the ABI, cost model, and register allocation. You’ll also find out how to express these concepts using LLVM's existing infrastructure and how established backends address these challenges. Furthermore, the book features code snippets that demonstrate the actual APIs.By the end of this book, you’ll have gained a deeper understanding of LLVM. The concepts presented are expected to remain stable across different LLVM versions, making this book a reliable quick reference guide for understanding LLVM.What you will learnUnderstand essential compiler concepts, such as SSA, dominance, and ABIBuild and extend LLVM backends for creating custom compiler featuresOptimize code by manipulating LLVM's Intermediate RepresentationContribute effectively to LLVM open-source projects and developmentDevelop debugging skills for LLVM optimizations and passesGrasp how encoding and (dis)assembling work in the context of compilersUtilize LLVM's TableGen DSL for creating custom compiler modelsWho this book is forThis book is for both beginners to LLVM and experienced LLVM developers. If you’re new to LLVM, it offers a clear, approachable guide to compiler backends, starting with foundational concepts. For seasoned LLVM developers, it dives into less-documented areas such as TableGen, MachineIR, and MC, enabling you to solve complex problems and expand your expertise. Whether you’re starting out or looking to deepen your knowledge, this book has something for you.Table of ContentsBuilding LLVM and Understanding the Directory StructureContributing to LLVMCompiler Basics and How They Map to LLVM APIsWriting Your First OptimizationDealing with Pass ManagersTableGen – LLVM Swiss Army Knife for ModelingUnderstanding LLVM IRSurvey of the Existing PassesIntroducing Target-Specific ConstructsHands-On Debugging LLVM IR PassesLegacy Instruction Selection Framework - SelectionDAGGetting Started with the Machine Code LayerThe Machine Pass PipelineGetting Started with Instruction SelectionInstruction Selection:The IR Building PhaseInstruction Selection:The Legalization PhaseInstruction Selection:The Selection Phase and BeyondInstruction SchedulingRegister AllocationLowering of the Stack LayoutGetting Started with the Assembler

Amazon Page

代发服务PDF电子书10立即求助
1111
打赏
未经允许不得转载:Wow! eBook » LLVM Code Generation: A deep dive into compiler backend development

觉得文章有用就打赏一下文章作者

支付宝扫一扫

微信扫一扫