Reading from the memory

Now, since we have the address, we are ready to read the data from that address and assign the read value to a variable.

In LLVM the load instruction is used to read from a memory location. This simple instruction or combination of similar instructions may then be mapped to some of the sophisticated memory read instructions in low-level assembly.

A load instruction takes an argument, which is the memory address from which the data should be read. We obtained the address in the previous section by the getelementptr instruction in a1.

The load instruction looks like the following:

%val = load i32, i32* a1

This means that the load will take the data pointed by a1 and save in %val.

To emit this we can use the API provided by LLVM ...

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.