[llvm-dev] How to get the value for casting in a bitcast instruction more efficiently?

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Thu Dec 15 13:31:21 PST 2016


> On Dec 15, 2016, at 12:10 PM, Shen Liu via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> Hi Ryan,
> 
> Thanks for your reply!  Yes i can use llvm::Use.get() API to do this, i just want to know whether there's a better way(e.g. an existed API like getValue()) to make my code look more professional. 

CastInst->getOperand(0) ?

— 
Mehdi




> 
> On Thu, Dec 15, 2016 at 2:58 PM, Ryan Taylor via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> This might help:
> 
> http://llvm.org/docs/ProgrammersManual.html#the-value-class <http://llvm.org/docs/ProgrammersManual.html#the-value-class>
> 
> Or maybe I'm misunderstanding what you mean by "efficient way to get the value". When you say 'value', I'm assuming you mean the class. In your case, AllocaInst inherits from value.
> 
> -Ryan
> 
> On Thu, Dec 15, 2016 at 10:24 AM, Shen Liu via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> Hi everyone,
> 
> This is a simple question but is there an efficient way to get the value for casting directly from a bitcast instruction?
> 
> bitcast format :<result> = bitcast <ty> <value> to <ty2>
> 
> For example, if i have 
> 
> MemAddr
> ...
> 0x3d61238   %key = alloca [16 x i8], align 16
> 0x3d612a8   %plain_text = alloca [64 x i8], align 16
> 0x3d61318   %key1 = bitcast [16 x i8]* %key to i8*
> ...
> The way i am using is processing all opcodes in %key1, and go back to find %key along the def-use chain. But is there a better way for doing this?
> Thanks very much!
> 
> Best 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> 
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161215/ea9d40b5/attachment.html>


More information about the llvm-dev mailing list