@@ -795,6 +795,20 @@ LLVMRustOptimize(
795
795
CGSCCAnalysisManager CGAM;
796
796
ModuleAnalysisManager MAM;
797
797
798
+ if (LLVMPluginsLen) {
799
+ auto PluginsStr = StringRef (LLVMPlugins, LLVMPluginsLen);
800
+ SmallVector<StringRef> Plugins;
801
+ PluginsStr.split (Plugins, ' ,' , -1 , false );
802
+ for (auto PluginPath: Plugins) {
803
+ auto Plugin = PassPlugin::Load (PluginPath.str ());
804
+ if (!Plugin) {
805
+ LLVMRustSetLastError ((" Failed to load pass plugin" + PluginPath.str ()).c_str ());
806
+ return LLVMRustResult::Failure;
807
+ }
808
+ Plugin->registerPassBuilderCallbacks (PB);
809
+ }
810
+ }
811
+
798
812
FAM.registerPass ([&] { return PB.buildDefaultAAPipeline (); });
799
813
800
814
Triple TargetTriple (TheModule->getTargetTriple ());
@@ -918,20 +932,6 @@ LLVMRustOptimize(
918
932
}
919
933
}
920
934
921
- if (LLVMPluginsLen) {
922
- auto PluginsStr = StringRef (LLVMPlugins, LLVMPluginsLen);
923
- SmallVector<StringRef> Plugins;
924
- PluginsStr.split (Plugins, ' ,' , -1 , false );
925
- for (auto PluginPath: Plugins) {
926
- auto Plugin = PassPlugin::Load (PluginPath.str ());
927
- if (!Plugin) {
928
- LLVMRustSetLastError ((" Failed to load pass plugin" + PluginPath.str ()).c_str ());
929
- return LLVMRustResult::Failure;
930
- }
931
- Plugin->registerPassBuilderCallbacks (PB);
932
- }
933
- }
934
-
935
935
ModulePassManager MPM;
936
936
bool NeedThinLTOBufferPasses = UseThinLTOBuffers;
937
937
if (!NoPrepopulatePasses) {
0 commit comments