【发布时间】:2019-04-29 07:42:21
【问题描述】:
假设我有一个有效的 LLVM 模块:
std::unique_ptr<llvm::Module> module;
我想在它上面运行 LLVM 传统优化通道:
llvm::PassBuilder passBuilder;
llvm::ModulePassManager modulePassManager = passBuilder.buildPerModuleDefaultPipeline(llvm::PassBuilder::OptimizationLevel::O3);
llvm::ModuleAnalysisManager moduleAnalysisManager;
passBuilder.registerModuleAnalyses(moduleAnalysisManager);
modulePassManager.run(*module, moduleAnalysisManager);
不幸的是,调用崩溃和调试显示moduleAnalysisManager只有模块通过,但是
不是用代理类包装的函数。
我应该如何设置modulePassManager 来处理特定级别的所有(模块)通行证?我没有单独的函数,所以我不能只在它们上运行函数传递。
【问题讨论】:
标签: c++ llvm compiler-optimization jit llvm-c++-api