[llvm-dev] distinguish program and temporary variables

Mohammad Norouzi via llvm-dev llvm-dev at lists.llvm.org
Mon Feb 8 07:54:49 PST 2016


> 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.
>

yes, Debug info provides lots of useful info and i think there should be
sth about this case. But I don't know which api or method does this.


>
> 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.
>

I'm not sure about Clang ASTs but this is part of an llvm pass which
analyzes llvm IR. So, i doubt if i can use Clang AST.

Best,
Mohammad


>
> Regards,
>
> John Criswell
>
>
> Any help is appreciated.
>
> Best,
> Mohammad
>
>
> _______________________________________________
> LLVM Developers mailing listllvm-dev at lists.llvm.orghttp://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
>
> --
> John Criswell
> Assistant Professor
> Department of Computer Science, University of Rochesterhttp://www.cs.rochester.edu/u/criswell
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160208/bcd38785/attachment.html>


More information about the llvm-dev mailing list