================
@@ -233,6 +234,20 @@ bool ExecuteCompilerInvocation(CompilerInstance *Clang) {
Clang->LoadRequestedPlugins();
+ // Load and store pass plugins for the back-end. Store the loaded pass
plugins
+ // here and store references to these in CodeGenOpts to avoid pulling in the
+ // entire PassPlugin dependency chain in CodeGenOpts.
+ std::vector<std::unique_ptr<llvm::PassPlugin>> PassPlugins;
+ for (const std::string &Path : Clang->getCodeGenOpts().PassPlugins) {
+ if (auto PassPlugin = llvm::PassPlugin::Load(Path)) {
+
PassPlugins.emplace_back(std::make_unique<llvm::PassPlugin>(*PassPlugin));
+ Clang->getPassPlugins().push_back(PassPlugins.back().get());
----------------
tarunprabhu wrote:
Instead of getting the plugins and pushing back, it may be better to create an
`addPassPlugin` method.
https://github.com/llvm/llvm-project/pull/171868
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits