---
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_0.html
sourcePath: /source/zh/kunpengdevkithistory/bisheng/hist-bisheng/kunpengbisheng_06_0085_0.html
indexId: 3ad25313b2c53d39b6565c270048d5ebb19d15bbf664769190e7cfeeace9386682
---
# 将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());
                });
          }};
}
```
