Je souhaite supprimer les instructions de branchement dans le code IR via LLVM pass.LLVM PASS: SUPPRIMER toute la branche dans l'IR se produit erreurs
Le code ci-dessous est ma carte de fonction (Github):
virtual bool runOnFunction(Function &F) {
for (auto &B : F) {
for (auto &I : B) {
auto op_name = I.getOpcodeName();
if(strcmp(op_name, "br")==0) {
I.eraseFromParent();
}
}
}
return true;
}
Le col de fonction est compilé avec succès, mais quand je l'utilise sur test.c, il se produit l'erreur comme Pastebin
Je ne suis pas tout à fait sûr de ce conteneur est utilisé pour stocker des instructions, mais peut-il avoir à faire avec le fait que vous modifiez essentiellement le conteneur d'instructions dans le bloc de base en effaçant tout en itérer sur le même conteneur? – PaulR