[LLVMdev] whether these transformations are doable and how?

Reid Kleckner rnk at mit.edu
Wed Apr 14 20:09:12 PDT 2010


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
>




More information about the llvm-dev mailing list