[LLVMdev] whether these transformations are doable and how?

Reid Kleckner
2010-04-15T03:09:12Z

The code you're looking for is Value::replaceAllUsesWith(Value*).
Values maintain backpointers to users, so it doesn't need to search
for users in the rest of the function, making this an efficient
operation.

Reid

On Wed, Apr 14, 2010 at 10:51 PM, Eli Friedman <eli.friedman at gmail.com>
wrote:
> On Wed, Apr 14, 2010 at 5:45 PM, Neal  N. Wang <neal.wang at
gmail.com> wrote:
>> Thanks for all the replies which are really helpful.
>>
>> one more question regarding transformation:
>>
>> 4.  Given an instruction  %x1 = I1,  can I replace the rhs
"I1"  with  "I2"
>> and get a new instruction %x1 = I2?   Alternatively, I can add a new
>> instruction %x2 = I2, and replace all uses of %x1 with %x2, and then
delete
>> %x1 = I1, but it seems the former is simpler or faster if it's
doable.
>
> Creating a new instruction, replacing all the uses, and deleting the
> old instruction is the standard procedure; for various reasons, LLVM
> doesn't allow editing certain aspects of an Instruction.
>
> -Eli
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>