<p>Hi Eli,<br>
Thanks for your reply. I once tried to use Value::replaceAllUsesWith() but it'd break my code.<br>
Eduardo</p>
<div class="gmail_quote">On Jan 8, 2013 9:34 PM, "Eli Friedman" <<a href="mailto:eli.friedman@gmail.com">eli.friedman@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Tue, Jan 8, 2013 at 3:06 PM, Eduardo <<a href="mailto:erocha.ssa@gmail.com">erocha.ssa@gmail.com</a>> wrote:<br>
> Hi all,<br>
><br>
> How can I get a reference to an instruction if I have a reference to<br>
> an operand? For example, let suppose I have a reference to the<br>
> ConstantExpr "getelementptr inbounds" in the following instruction:<br>
><br>
>   %4 = getelementptr i32* getelementptr inbounds ([8 x i32]*<br>
> @__mem_grid_MOD_nnyp, i32 0, i32 0), i32 %3<br>
><br>
> then, how can I get a reference to the GetElementPtrInst object?<br>
><br>
> The reason I need that is because I want to change every instruction<br>
> that uses certain variables (in the example above the<br>
> __mem_grid_MOD_nnyp variable). The problem is that for the example I<br>
> showed the actual user of the variable is a ConstantExpr object and<br>
> not the GetElementPtrInst object.<br>
<br>
You can use Value::use_begin()/use_end() recursively.<br>
<br>
That said, have you looked at Value::replaceAllUsesWith()?<br>
<br>
-Eli<br>
</blockquote></div>