从LLVM IR中删除指令时进行堆栈转储

从LLVM IR中删除指令时进行堆栈转储,llvm,Llvm,谁能告诉我如何从IR中永久删除指令。当我尝试删除带有以下代码的mul指令时,会得到一个堆栈转储: Instruction *mul = BinaryOperator::CreateMul(op1,op1,"mul",tmp); //Creating new mul instruction I2 = cast<Instruction>(i); //i is an Instruction iterator. I2->replaceAllUsesWith(mul); I2->e

谁能告诉我如何从IR中永久删除指令。当我尝试删除带有以下代码的mul指令时,会得到一个堆栈转储:

Instruction *mul = BinaryOperator::CreateMul(op1,op1,"mul",tmp); //Creating new mul instruction
I2 = cast<Instruction>(i); //i is an Instruction iterator.
I2->replaceAllUsesWith(mul);
I2->eraseFromParent(); //Getting StackDump for this instruction
Instruction*mul=binarymoperator::CreateMul(op1,op1,“mul”,tmp)//创建新的mul指令
I2=铸件(i)//我是一个指令迭代器。
I2->替换为(mul);
I2->eraseFromParent()//正在获取此指令的堆栈转储

i属于BasicBlock::Iterator类型,它对基本块中的指令进行迭代。很抱歉,这里很难在没有额外信息的情况下确定任何内容。尝试在这里添加堆栈转储,尝试使用valgrind检查代码。