Re: [cfe-dev] How to increment a Global Variable in a LLVM module?

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Re: [cfe-dev] How to increment a Global Variable in a LLVM module?

Reid Kleckner-2
Also, this a question for llvm-dev, not cfe-dev.

On Thu, May 14, 2015 at 10:33 AM, Reid Kleckner <[hidden email]> wrote:
Load it, add it, store it, and then for good measure, plug it, play it, burn it, and rip it. :)

You just need to add a store to your IR:
%cell_index = load i32* %cell_index_ptr
%new_cell_index = add i32 1, %cell_index
store i32 %new_cell_index, i32* %cell_index_ptr

On Wed, May 13, 2015 at 9:23 PM, Kolmogorov <[hidden email]> wrote:
I want to add an instruction at the end of a basic block to increment a
GlobalVariable (using the LLVM C++ library). I am pretty new to to the LLVM,
can I do this directly or does this require loading the global variable,
incrementing it by the desired value and writing back to the global variable

Even if I load the variable (with LoadInst constructor), How will the "Add"
instruction know where is the variable ?

For example, look at this IR ocde : %cell_index = load i32* %cell_index_ptr
%new_cell_index = add i32 1, %cell_index

the add instruction knows on which variable to operate (cell_index). But
since I will create the load instruction from the C++ I don't know where the
variable will be created. (I do not operate the IR code directly but using
the C++ it was just for the example

View this message in context:
Sent from the Clang Developers mailing list archive at
cfe-dev mailing list
[hidden email]

LLVM Developers mailing list
[hidden email]