[LLVMdev] obtain programer-defined structure name.

NAKAMURA Takumi geek4civic at gmail.com
Thu May 27 21:06:07 PDT 2010


Hello Tian,

I assume you might try writing an analyzer for C-compiled bitcode.

> Hi, I intend to trace the Use instructions of a variable object in its lifecycle, so, the first step is to obtain the type of the object. However, the datastructure object is complicated typed value, such as "struct file *f" in linux kernel.

At first, types with same type layout each other shall be treated
identically on LLVM type system.
And *name* is not ID but label(symbol) on the system. eg.

struct A {int a; int b;};
struct B {unsigned u; unsigned v;};

Both A and B are treated as same type.

You may see pretty type presentation with llvm::WriteTypeSymbolic()
http://llvm.org/doxygen/namespacellvm.html#ac5866be1ccf6effdfe9ff1c393e60969
But you might meet only either of names A or B.
See http://llvm.org/docs/LangRef.html#namedtypes


>  The problerm is what operations should be taken to obtain the type of Value "struct *file", and locate or such type Values in a procedure.

Good. It would be needed to track not only GEP but several pointer
operation! (eg. bitcast, inttoptr)
also I am trying a sort of type analysis now.


886,
Takumi


2010年5月24日 22:55:32 UTC+9 田硕 <tianshuo9 at gmail.com>:
> Hi, I intend to trace the Use instructions of a variable object in its lifecycle, so, the first step is to obtain the type of the object. However, the datastructure object is complicated typed value, such as "struct file *f" in linux kernel.
>  The problerm is what operations should be taken to obtain the type of Value "struct *file", and locate or such type Values in a procedure.
> Have I made myself clear? thanks.
>
>
> Tian Shuo
> 2010-5-24
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list