将Pass动态注册到PassBuilder中
调用registerVectorizerStartEPCallback和PM.addPass,在PM.addPass()中更换为自己实现的Pass,就可以向FunctionPassManager添加一个自己实现的Pass的实例,从而动态注册成功了。
extern "C" LLVM_ATTRIBUTE_WEAK ::llvm::PassPluginLibraryInfo llvmGetPassPluginInfo() { return {LLVM_PLUGIN_API_VERSION, "Bye", LLVM_VERSION_STRING, [](PassBuilder &PB) { PB.registerVectorizerStartEPCallback( [](llvm::FunctionPassManager &PM, OptimizationLevel Level) { PM.addPass(Bye()); }); }}; }
父主题: 如何在毕昇编译器中使用自定义Pass