[LLVMdev] Regarding scope information for variable declaration.

Pankaj Gode godepankaj at yahoo.com
Sun Jul 14 23:32:41 PDT 2013

Hi Eric,
 I was considering machine instructions to get scope information. And variable declaration does not correspond to machine instruction, hence the problem i.e. no scope associated with it. 
If 'i' is initialized in the 'if-scope' then we get 'variable i' mapped to correct scope as corresponding machine instruction is generated for this. 
This is not a problem as we can't expect variable declaration in a machine instruction, I thought.

I had written code to collect scope information based on LLVM Instructions. 
I did this by iterating over 'Function->BasicBlock' instead of 'MachineFunction->MachineBasicBlock'.
const Function *F1 =  MF->getFunction();
for(Function::const_iterator BB = F1->begin(), E = F1->end();
                                BB != E; ++BB)
     for(BasicBlock::const_iterator ii = BB->begin(), ie = BB->end();
        ii != ie; ++ii)
        const Instruction *I = ii;  //I->dump();//debug
        DebugLoc MIDB = I->getDebugLoc();
Though this is an overhead as scope information exists, 
but I need to collect specific information such as 'start line, end line, start column, end column' 
(End line information should be derived as is not obvious).
Collecting information this way allowed me to get correct scope information, 
and hence I was able to map the variable declaration to the scope. It worked for me this way.



From: eric.lew <eirc.lew at gmail.com>
To: llvmdev at cs.uiuc.edu 
Sent: Friday, July 12, 2013 8:30 AM
Subject: Re: [LLVMdev] Regarding scope information for variable declaration.

I have the same demand. Have you resolved this problems? if so, would you
share me the solution?

Best Regards.


View this message in context: http://llvm.1065342.n5.nabble.com/Regarding-scope-information-for-variable-declaration-tp47707p59268.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu        http://llvm.cs.uiuc.edu/

o instead of using machine instructions to collect scope information, (as used by LexicalScope pass), 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130714/ecd3ed6a/attachment.html>

More information about the llvm-dev mailing list