[LLVMdev] def-use chain for Instruction

John Criswell
Sat, 07 May 2011 16:42:30 -0000

On 5/7/11 11:14 AM, neda 8664 wrote:
> Hello all,
>
> I am a LLVM newer whowant to obtain the use-def chain for all
> instruction of a sample code, for this purpose i use the following code.

Disassemble the LLVM bitcode for the file and see what the function
looks like after optimization.  It's possible that the optimizations
removed all the computation.

-- John T.

>
> ///////////////sample code://///////////////////////
> #include <stdlib.h>
> #include <stdio.h>
> #include <time.h>
>
> #define ARRAY_SIZE 5
>
>
> int main() {
>  int x, y, holder;
>  int k,z,f,i;
>   z=0;
>   f=0;
>   k=0;
>
>   for(x = 0; x < ARRAY_SIZE; x++)
>     for(y = 0; y < ARRAY_SIZE-1; y++)
>       if(x+y>10) {
>         holder = x+y;
>         k=z+1;
>     f=k+x;
>     if (i>k)
>         i=i+1;
>       }
> // return 1;
>
> }
>
> ////////////////////////pass code://///////////////////////////////
>   virtual bool runOnFunction(Function &F) {
>     std::vector<Instruction*> worklist;
>
>     for(inst_iterator I = inst_begin(F), E = inst_end(F); I != E; ++I){
>                 worklist.push_back(&*I);
>             }
>
>
>             for(std::vector<Instruction*>::iterator iter =
> worklist.begin(); iter != worklist.end(); ++iter){
>                 Instruction* instr = *iter;
>                 errs() << "def: " <<*instr <<
"\n";
>                 for(Value::use_iterator i = instr->use_begin(), ie =
> instr->use_end(); i!=ie; ++i){
>                     Value *v = *i;
>                     Instruction *vi = dyn_cast<Instruction>(*i);
>                     errs() << "\t\t" << *vi <<
"\n";
>                 }
>             }
>
>     return false;
>     }
>
> //////////////output///////////////
> def:   ret void
>
>
> but my output isn't my aim, can anyone help me?
>
> Thanks
>
>
>
> _______________________________________________
> 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/20110507/279e5d09/attachment.html>