[llvm-dev] distinguish program and temporary variables

John Criswell via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 8 07:35:28 PST 2016


On 2/8/16 9:39 AM, Mohammad Norouzi via llvm-dev wrote:
> Hi,
>
> I need to check if a variable belongs to the program originally. 
> Consider the following code line:
>
> y = x + 4
>
> and its corresponding llvm ir (roughly):
>
> %16 = load i32 %x
> %add = add i32 %16, i32 4
> store i32 %add, %y
>
> I need to distinguish between %16, %add and %x, %y.

You might be able to use the Debug information embedded within the LLVM 
IR to determine what is an original variable and what is a temporary 
added by LLVM.  However, I think that such an approach is fragile.

It sounds like you need to be analyzing Clang ASTs instead of LLVM IR.  
The Clang AST represents a program in its original source form, so you 
can tell what is a program variable, in what file it was defined, its 
original source type, etc.

Regards,

John Criswell

>
> Any help is appreciated.
>
> Best,
> Mohammad
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev


-- 
John Criswell
Assistant Professor
Department of Computer Science, University of Rochester
http://www.cs.rochester.edu/u/criswell

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


More information about the llvm-dev mailing list