удалить цикл командой eraseFromParent в llvm

* Я бы удалил Цикл. Я использовал следующий код:

cout << "begin to delete loop" << endl;
for (Loop::block_iterator bi = L->block_begin(), bi2; bi != L->block_end(); bi = bi2) {
    bi2 = bi;
    bi2++;
    BasicBlock * BB = *bi;
    for (BasicBlock::iterator ii = BB->begin(), ii2; ii != BB->end(); ii= ii2) {
        ii2 = ii;
        ii2++;
        Instruction *inst = ii;
        inst->eraseFromParent();
    }
    BB->eraseFromParent();
}

Но я получаю следующую ошибку:

Использование все еще застряло после уничтожения Def:% t1 = icmp sle i32% t0, 9 opt: / home / llvm / src / lib / VMCore / Value.cpp: 75: virtual llvm :: Value :: ~ Value (): Assertion `use_empty () &&" Использование остается после уничтожения значения! "'не удалось. 0 opt 0x0848e569 Дамп стека:

Какие предложения вы можете предложить для решения этой проблемы? *

5
задан neda 6 October 2011 в 07:39
поделиться