Emitting LLVM IR for loop

Similar to the if-else statement, loops can also be emitted using LLVM API's, with slight modification of the code. For example, we want to have LLVM IR for the following Loops:

for(i=1; i< b; i++)  {body}

The loop has induction variable i, which has some initial value that updates after each iteration. The induction variable is updated after each iteration by a step value that is 1 in the preceding example. Then there is a loop ending condition. In the preceding example, 'i=1' is the initial value, 'i<b' is the end condition of the loop, and 'i++' is the step value by which the induction variable 'i' is incremented after every iteration of the loop.

Before writing a function to create a loop, some Value and BasicBlock need ...

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.