[llvm-dev] How to generate a .ll file with functions' parameter names

David Chisnall via llvm-dev llvm-dev at lists.llvm.org
Mon Dec 9 04:51:26 PST 2019


Hi,

If you're not worried about the mapping to C parameters, then you should 
be able to start with the SSA values for the parameters and then walk 
the def-use chains to find everything that depends on it (modulo things 
that depend on it as a result of control flow or memory stores and loads).

David

On 09/12/2019 11:29, Alberto Barbaro wrote:
> Hi David,
> Thanks for your email. I'm just trying to perform some basic analysis on 
> the IR. For instance, is it possible to understand if the variable %10 
> depends on the value of the first parameter? I know that the first 
> parameter can be referenced as %0 but a proper name would increase the 
> readability. It is not so crucial for me atm.
> 
> Thanks
> Alberto
> 
> On Mon, Dec 9, 2019, 11:01 David Chisnall via llvm-dev 
> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
> 
>     Hi Alberto,
> 
>     Note that even with this, there isn't necessarily a 1:1 correspondence
>     between LLVM IR parameters and clang parameters.  For example, a struct
>     passed by value in a C function may be one IR parameter per field, or
>     may be packed into an integer large enough to store the whole thing.
>     Similarly, return values may be indirect via sret pointers or they may
>     be explicit return values but of a different type (for example, on i386
>     a return of struct of a pair of int- or pointer-sized values may be
>     returned as a single i64 in LLVM IR).
> 
>     It would help to understand what you are trying to do, because there
>     may
>     be a better way of achieving your goal.
> 
>     David
> 
> 
>     On 08/12/2019 10:19, Alberto Barbaro via llvm-dev wrote:
>      > Hi Tim,
>      > My bad, I have installed a newer version of clang and all worked.
>      >
>      > Thanks
>      >
>      > On Sun, Dec 8, 2019, 10:05 Tim Northover <t.p.northover at gmail.com
>     <mailto:t.p.northover at gmail.com>
>      > <mailto:t.p.northover at gmail.com
>     <mailto:t.p.northover at gmail.com>>> wrote:
>      >
>      >     On Sun, 8 Dec 2019 at 09:54, Alberto Barbaro via llvm-dev
>      >     <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>     <mailto:llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>>>
>     wrote:
>      >      > thanks for your answer. Unfortunately I'm still using llvm 6.0
>      >     and in llvm-dis I don't see that option. I tried reading the full
>      >     list of options but I didn't see an alternative.
>      >
>      >     The option is for Clang. Once you have the IR generated it's
>     too late,
>      >     the names will already have been discarded.
>      >
>      >     Cheers.
>      >
>      >     Tim.
>      >
>      >
>      > _______________________________________________
>      > LLVM Developers mailing list
>      > llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>      > https://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>
>     https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> 


More information about the llvm-dev mailing list