[llvm-dev] Check if value operand to store instruction is defined in this instruction

alexp via llvm-dev llvm-dev at lists.llvm.org
Wed Jan 23 10:38:20 PST 2019


Hi Alberto,

i need to check for the difference for all possible types being able to
get stored, so I need a general solution.

Do you think there might be problems with using

getValueOperand.hasOneUse() ?

Thanks!

Alex

On 1/22/19 3:37 PM, alexp via llvm-dev wrote:
> Hi all,
>
> the store instruction allows to define values, e.g.:
>
>
> %ptr = alloca i32                               ; yields i32*:ptr
> store i32 3, i32* %ptr
>
> lets name this 'type1 store'; this is different from 'type2 store'
>
> %val = load i32, i32* %someptr
> %ptr = alloca i32                               ; yields i32*:ptr
> store %val, i32* %ptr                          ; yields void
>
>
> When now later on manipulating the instructions of a function, can I
> tell if I deal with type1 or type 2 store?
>
> In case of type1 I could e.g. alter the value; in type 2 not.
>
> My best guess is something like:
> storeInstructionInstance.getValueOperand.hasOneUse()
>  true: only used within this storeInstruction, else value is
> introduced/used elsewhere.
>
> Is this correct?
>
> Thanks!
>
> Alex
>
>
>
>
> p.s.:
>
> it's been a while since my last post to llvm-dev. Is this still the
> place for such questions? If not, pleas point me where to ask this sort
> of questions.
> Thanks
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


More information about the llvm-dev mailing list