[LLVMdev] ICmpInst example?

John Criswell criswell at illinois.edu
Wed Sep 28 07:26:23 PDT 2011


On 9/27/11 10:00 PM, Eli Friedman wrote:
> On Tue, Sep 27, 2011 at 7:28 PM, ret val<retval386 at gmail.com>  wrote:
>> I'm trying to come up with a simple example of using ICmpInst in a
>> Pass. On each of the branches(true, false) I'd like to call a separate
>> function and then resume(to the code that was already there).
>>
>> In this example i is a inst_iterator to Instruction the Pass is
>> currently on. Now it segfaults opt before I can even get a dump() on
>> it. Does anyone see what I am doing wrong?
>>
>>                 BasicBlock *bb = i->getParent();
>>                 Instruction *j = bb->end();
> Your initialization of "j" isn't valid: bb->end() doesn't point at an
> Instruction.

To add to this, if you want to get the last instruction in a basic 
block, just use BasicBlock::getTerminator().  All basic blocks must have 
a terminator instruction as the last instruction.

-- John T.

>
> -Eli
>
> _______________________________________________
> LLVM Developers mailing list
> 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