Book Image

Getting started with LLVM core libraries

Book Image

Getting started with LLVM core libraries

Overview of this book

Table of Contents (17 chapters)
Getting Started with LLVM Core Libraries
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Introducing the llvm::MCJIT framework


The MCJIT class is a novel JIT implementation for LLVM. It differs from the old JIT implementation by the MC framework, explored in Chapter 6, The Backend. MC provides a uniform representation for instructions and is a framework shared among the assembler, disassembler, assembly printer and MCJIT.

The first advantage of using the MC library is that targets need to specify their instruction encodings only once because this information is used by all the subsystems. Therefore, when writing an LLVM backend, if you implement the object code emission for your target, you have the JIT functionality as well.

The llvm::JIT framework is going to be removed after LLVM 3.5 and completely replaced by the llvm::MCJIT framework. So, why did we study the old JIT? Although they are different implementations, the ExecutionEngine class is generic and most concepts apply to both engines. Most importantly, as in the LLVM 3.4 release, the MCJIT design does not support some...