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