Hi,<br>
<br>
when I delete some instruction, I got some error prompt message.<br>
<br>
-  %i.0.reg2mem.0 = phi i32 [ 0, %bb5 ], [ %indvar.next, %bb12 ] ; <i32> [#uses=2]<br>
-  %s.0.reg2mem.0 = phi i32 [ 0, %bb5 ], [ %tmp16, %bb12 ] ; <i32> [#uses=1]<br>
-  %tmp14 = tail call i32 @foobar(i32 %i.0.reg2mem.0) nounwind ; <i32> [#uses=1]<br>
-  %tmp16 = add i32 %tmp14, %s.0.reg2mem.0         ; <i32> [#uses=2]<br>
   %indvar.next = add i32 %i.0.reg2mem.0, 1        ; <i32> [#uses=2]<br>
   %exitcond = icmp eq i32 %indvar.next, %n        ; <i1> [#uses=1]<br>

   br i1 %exitcond, label %bb25, label %bb12<br>
<br>
For example, I want to delete the instructions above with symbol '-' in
front, but when I delete the first one, I got the next prompt message:<br>
<br>
While deleting: i32 %s.0.reg2mem.0<br>
Use still stuck around after Def is destroyed:  %tmp16 = add i32 %tmp14, %s.0.reg2mem.0         ; <i32> [#uses=1]<br>
opt: Value.cpp:81: virtual llvm::Value::~Value(): Assertion
`use_empty() && "Uses remain when a value is destroyed!"'
failed.<br>
<br>
Program received signal SIGABRT, Aborted.<br>
<br>
I know I should do some work before the deletion to guarantee that no
other instructions will use the instruction being deleted. Who can tell
me what I should do?<br>
<br>
With Best Regards!<br>
<br>
<br>
<div class="gmail_quote">
<br>
</div><br>