[llvm-dev] setOperands(int, Value*)

Abid Malik via llvm-dev llvm-dev at lists.llvm.org
Thu Feb 13 04:40:25 PST 2020


Thanks
I tried it and it also went to an endless loop. Here is an example of what
I am trying to achieve:



*store i32 0, i32* %15, align 4  call void
@__kmpc_for_static_init_4(%struct.ident_t* @0, i32 %17, i32 34, i32* %15,
i32* %12, i32* %13, i32* %14, i32 1, i32 1)  %41 = load i32, i32* %13,
align 4*

I am trying to replace *i32* %15 and i32* %13 with another operand values
say i32* %18 and i32* 23. FYI, i32* %15== i32* %18 and . i32* %18==i32* %23
in terms of content values.*


On Thu, Feb 13, 2020 at 7:28 AM Ryan Taylor <ryta1203 at gmail.com> wrote:

> Value::replaceAllUsesWith(Value*) ?
>
> On Thu, Feb 13, 2020, 7:24 AM Abid Malik via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> Hello,
>>
>> I am trying to reset the operands of instructions. What I am doing is, I
>> am finding all Uses of a specific operand in an Instruction and resetting
>> it with a new value using "setOperands(int, Value*)". I am doing as:
>>
>> for (auto vmitr=vm.begin(), vsitr=vs.begin(); vmitr!=vm.end() &&
>> vsitr!=vs.end(); vmitr++, vsitr++){
>> // I have two *Value ( operands)
>>
>> for ( auto myitr =(*vsitr)->user_begin(); myitr!=(*vsitr)->user_end();
>> ++myitr){
>> // Finding the uses of one operand
>> for ( int k = 0; k < (*myitr)->getNumOperands(); k++){
>> // going through the operands of the Instructions that uses it
>> if ((*myitr)->getOperand(k) == *vsitr){
>> // Find the operand and its position in the instruction
>> (*myitr)->setOperand(k,*vmitr);
>> // Replacing it with the other operand value
>> }
>> }
>>
>> }
>>
>> The problem is that it goes into the end loop.
>> ps. *vsitr and *vmitr are arguments of different call instructions but
>> pointing to the same values.
>>
>> Thanks
>> --
>> Abid M. Malik
>> ******************************************************
>> "I have learned silence from the talkative, toleration from the
>> intolerant, and kindness from the unkind"---Gibran
>> "Success is not for the chosen few, but for the few who choose" --- John
>> Maxwell
>> "Being a good person does not depend on your religion or status in life,
>> your race or skin color, political views or culture. IT DEPENDS ON HOW GOOD
>> YOU TREAT OTHERS"--- Abid
>> "The Universe is talking to us, and the language of the Universe is
>> mathematics."----Abid
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>

-- 
Abid M. Malik
******************************************************
"I have learned silence from the talkative, toleration from the intolerant,
and kindness from the unkind"---Gibran
"Success is not for the chosen few, but for the few who choose" --- John
Maxwell
"Being a good person does not depend on your religion or status in life,
your race or skin color, political views or culture. IT DEPENDS ON HOW GOOD
YOU TREAT OTHERS"--- Abid
"The Universe is talking to us, and the language of the Universe is
mathematics."----Abid
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200213/1c55afca/attachment.html>


More information about the llvm-dev mailing list