[LLVMdev] No of Datastructures

Vikram S. Adve vadve at cs.uiuc.edu
Sun Nov 2 20:29:24 PST 2008


For a conservative way to identify logical structures, see Chris  
Lattner's thesis and the references therein:

	"Macroscopic Data Structure Analysis and Optimization"
	http://llvm.org/pubs/2005-05-04-LattnerPHDThesis.html

The code is available in SVN, in the llvm-poolalloc project.

--Vikram
Associate Professor, Computer Science
University of Illinois at Urbana-Champaign
http://llvm.org/~vadve



On Nov 2, 2008, at 6:21 PM, Nipun Arora wrote:

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




More information about the llvm-dev mailing list