<div class="post-text">
        <p>Hello everyone !<br></p><p>In my pass I inspect the penultimate instruction from every 
basic block in runOnFunction(). I am interested in ICMP instructions 
only.</p>

<pre><code>if(BB->size()>1)
    if(last->getPrevNode())
    {
        previous = last->getPrevNode();
        ok=1;
    }
</code></pre>

<p>I want to get the operands of previous, which is of type 
Instruction*. Due tests based on getNumOperands, ICMP has 2 (as normal).</p>

<pre><code>if ( ok && ((previous->getNumOperands())>=2) )

    errs()<<"\nTTTTT "<<previous->getOperand(0)->getName()<<" | " 
          <<previous->getOperand(0)->getValueName()<<" | "
          <<previous->getOperand(0)->getValueID()<<" | "
          <<previous->getOperand(0)->getNumUses()<<" TTTTT\n";
</code></pre>

<p>The results with getOperand(1) are similar.
The output is:</p>

<pre><code>*PREVIOUS:   store i32 %conv15, i32* %i, align 4
TTTTT conv15 | 0x9b69090 | 59 | 1 TTTTT
...
*PREVIOUS:   store i32 %inc13, i32* %i, align 4
TTTTT inc13 | 0x9b76478 | 30 | 1 TTTTT
...
*PREVIOUS:   %cmp11 = icmp sgt i32 %8, 3
TTTTT  | 0x0 | 49 | 1 TTTTT
...
*PREVIOUS:   store i32 %dec, i32* %i, align 4
TTTTT dec | 0x9b69130 | 30 | 1 TTTTT
...
*PREVIOUS:   %cmp8 = icmp sle i32 %6, 2
TTTTT  | 0x0 | 49 | 1 TTTTT
...
*PREVIOUS:   store i32 %inc, i32* %i, align 4
TTTTT inc | 0x9b761c8 | 30 | 1 TTTTT
</code></pre>

<p>Do you know how I can get the operands from ICMP instructions? I need to use them in some conditions? (also their attributes).
Thank you a lot !</p>

    </div><br clear="all"><br>-- <br><font style="background-color:rgb(255,255,255);color:rgb(153,153,153)">Best regards,</font><br style="background-color:rgb(255,255,255);color:rgb(153,153,153)"><font style="background-color:rgb(255,255,255);color:rgb(153,153,153)">Alexandru Ionut Diaconescu</font><br>