[LLVMdev] No of Datastructures

John Criswell criswell at uiuc.edu
Wed Nov 5 06:07:16 PST 2008


Nipun Arora wrote:
> Hi
>
> I was having just one more problem. I would like to find these 
> datastructures/ primitive types etc inside a block, however the 
> valuesymbol table is available only at a functional level. What can I 
> do so as to get the number + type of datastructs(eg. arrays etc) 
> inside a single block?
If by block you mean a source level block (such as the brackets {} in 
C), then you can examine the bitcode file for use of the LLVM Debugging 
Intrinsics.  I believe llvm.dgb.region.start marks the beginning of a 
source level block.

Basically, the debugging intrinsics mark the beginning and end of blocks 
and can map information back to the original source file.  To get 
llvm-gcc to emit them, just use llvm-gcc -emit-llvm -g.

Information on the LLVM debugging intrinsics can be found here: 
http://llvm.org/docs/SourceLevelDebugging.html

-- John T.

>
>
> Thanks
> Nipun
>
> On Fri, Oct 31, 2008 at 12:05 PM, Devang Patel <dpatel at apple.com 
> <mailto: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 <mailto: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 <mailto: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