[LLVMdev] Duplicating a Basic Block
agarwal.ambika at gmail.com
Mon Jun 7 09:49:56 PDT 2010
I have checked the way it is used in other file, but the problem is whenever
I call CloneBasicBlock, after the block is duplicated it tries to delete
some variables and I dont understand that why it does that.
I am just trying to duplicate a single block, and that is giving error. I
really dont understand why does it wants to delete it...
On Fri, Jun 4, 2010 at 10:40 PM, Devang Patel <devang.patel at gmail.com>wrote:
> On Fri, Jun 4, 2010 at 2:15 AM, Ambika Agarwal <agarwal.ambika at gmail.com>
> > Hi,
> > I had asked earlier from my another ID about duplicating a basic block,
> > that server is down for moment.
> > I was given suggestion to use CloneBasicBlock, but when I used it I get
> > error :
> > While deleting: i32* %a
> > Use still stuck around after Def is destroyed: store i32* %a, i32** %p,
> > align 4
> > opt: /home/ambika/llvm_3/llvm-2.6/lib/VMCore/Value.cpp:81: virtual
> > llvm::Value::~Value(): Assertion `use_empty() && "Uses remain when a
> > is destroyed!"' failed.
> > 0 opt 0x08471218
> > Aborted
> > This message is printed inside destructor of class value .
> > Now I dont understand that after all the instructions are duplicated why
> > does thios kind of error come??
> > I will be very thankful if someone can help me.
> As the message says, the value being destroyed is used. Check users of
> this value. You'll have to update them to use something else before
> destroying the value. There is not any magic utility that does
> everything. Take a look at how CloneBasicBlock is used other places
> and try to update your pass accordingly.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev