---
title: 将Pass动态注册到PassBuilder中
description: "调用registerVectorizerStartEPCallback和PM.addPass，在PM.addPass()中更换为自己实现的Pass，就可以向FunctionPassManager添加一个自己实现的Pass的实例，从而动态注册成功了。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/bisheng/hist-bisheng/kunpengbisheng_06_0085_1.html
sourcePath: /source/zh/kunpengdevkithistory/bisheng/hist-bisheng/kunpengbisheng_06_0085_1.html
indexId: 7bb3cea316faf323e2199695a42c0318ef8d8408ca3c0a1f6ab83ec8b8e52ad182
---
# 将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());
                });
          }};
}
```
