[LLVMdev] No of Datastructures

Nipun Arora nipun2512 at gmail.com
Sun Nov 2 16:21:02 PST 2008


Right now I am writing passes just to look for arrays & structs I am trying
to identify the array by parsing the memory description(use regex's)
ex./ { [20 x i8], i32 } *- for a struct. is a structure with a character
array of size 20 and an integer.
I'm not sure if llvm provides an easier way to do this?
The type id for most arrays comes out to be a pointer rather than an array,
its pretty much the same case for structs.

I haven't yet been able to extend this to "logical" structures, and objects
still looking into it. Any ideas?

Thanks
Nipun

On Sun, Nov 2, 2008 at 4:57 PM, Vikram S. Adve <vadve at cs.uiuc.edu> wrote:

> How do you define a data structure for this purpose?  Do you mean
> individual data types like structs or arrays?  Or higher-level
> "logical" structures like lists, trees, or hash tables?  The former is
> obviously easier but even the latter is possible, in some cases.
>
> --Vikram
> Associate Professor, Computer Science
> University of Illinois at Urbana-Champaign
> http://llvm.org/~vadve
>
>
>
> On Nov 2, 2008, at 12:55 AM, Nipun Arora wrote:
>
> > Hey Devang,
> >
> > Thanks for the assist, I'm trying to extract a signature which
> > uniquely identifies a block of code.... this is required for a
> > project I am doing.
> > The no of data structures is one of the identifying features of this
> > signature.
> >
> > Thanks
> > Nipun
> >
> >
> > On Fri, Oct 31, 2008 at 1:05 PM, Devang Patel <dpatel at apple.com>
> > wrote:
> > Hi Nipun,
> >
> > On Oct 30, 2008, at 9:31 PM, Nipun Arora wrote:
> >
> >> Hi
> >>
> >> I am trying to count the no of datastructures and the type, say for
> >> example the number of arrays in a given code. Which pass would give
> >> me this info? And what do I need to use in it?
> >
> > What are you trying to achieve here with this information ?
> >
> > You can iterate over types to collect the info you need. For example,
> >
> > TypeSymbolTable &TST = MyModule.getTypeSymbolTable();
> > for(TypeSymbolTable::iterator TI = TST.begin(), TE =TST.end(); TI !=
> > TE; ++TI) {
> > const Type *Ty = TI->second;
> >         ...
> > }
> >
> > http://llvm.org/docs/ProgrammersManual.html is very useful document
> > for beginners.
> >
> >>
> >> Thanks for the help
> >>
> >> Cheers
> >> Nipun :)
> >> _______________________________________________
> >> LLVM Developers mailing list
> >> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> >
> > -
> > Devang
> >
> >
> >
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> >
> >
> > <ATT00001.txt>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081102/3b4d9651/attachment.html>


More information about the llvm-dev mailing list