Emitting a simple arithmetic statement in a basic block

A basic block consists of a list of instructions. For example, an instruction can be a simple statement performing tasks based on some simple arithmetic instruction. We will see how the LLVM API can be used to emit arithmetic instructions.

For example, if we want to multiply first argument a with integer value 16, we will create a constant integer value 16 with the following API:

Value *constant = Builder.getInt32(16);

We already have a from the function argument list:

Value *Arg1 = fooFunc->arg_begin();

LLVM provides a rich list of API's to create binary operations. You can go through the include/llvm/IR/IRBuild.h file for more details on the APIs.

Value *createArith(IRBuilder<> &Builder, ...

Get LLVM Essentials now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.