LLVM в настоящий момент содержит два менеджера проходов.Требуемый проход использует новый (характеризующийся проходом, наследующим PassInfoMixin), и для его использования в проходе new-PM необходимо включить файл заголовка в файл .cpp вашего прохода:
#include "llvm/CodeGen/UnreachableBlockElim.h"
Ваш проходбудет содержать функцию с именем run (), которая, возможно, выглядит следующим образом:
PreservedAnalyses MyPAss::run(Function &F, FunctionAnalysisManager &FAM) {
// some of your code goes here
UnreachableBlockElimPass ube;
ube.run(F, FAM);
// more of your code here
}
Если в вашем проходе используется старый менеджер проходов (для которого характерно наследование FunctionPass, ModulePass и т. д.), тогда он немного сложнее, потому что вынеобходимо предоставить этот FunctionAnalysisManager самостоятельно.В этом случае я бы начал с перехода на новый путь.