@@ -57,9 +57,6 @@ void LLVMCompilerContext::initJit()
5757#endif
5858
5959 // Optimize
60- const auto &functions = m_module->getFunctionList ();
61- std::vector<std::string> lookupNames;
62-
6360 llvm::PassBuilder passBuilder;
6461 llvm::LoopAnalysisManager loopAnalysisManager;
6562 llvm::FunctionAnalysisManager functionAnalysisManager;
@@ -72,33 +69,15 @@ void LLVMCompilerContext::initJit()
7269 passBuilder.registerLoopAnalyses (loopAnalysisManager);
7370 passBuilder.crossRegisterProxies (loopAnalysisManager, functionAnalysisManager, cGSCCAnalysisManager, moduleAnalysisManager);
7471
75- // Use O0 for the entire module
76- llvm::ModulePassManager modulePassManager = passBuilder.buildPerModuleDefaultPipeline (llvm::OptimizationLevel::O0);
77-
78- // Create a FunctionPassManager for O3 optimizations
79- llvm::FunctionPassManager functionPassManager = passBuilder.buildFunctionSimplificationPipeline (llvm::OptimizationLevel::O3, llvm::ThinOrFullLTOPhase::None);
80-
81- // Run the O0 pipeline for the module
72+ llvm::ModulePassManager modulePassManager = passBuilder.buildPerModuleDefaultPipeline (llvm::OptimizationLevel::O3);
8273 modulePassManager.run (*m_module, moduleAnalysisManager);
8374
84- // Run the O3 pipeline for specific functions
85- for (llvm::Function &func : m_module->functions ()) {
86- if (!func.isDeclaration ()) {
87- if (func.hasExternalLinkage ()) {
88- lookupNames.push_back (func.getName ().str ());
89-
90- if (func.hasFnAttribute (llvm::Attribute::OptimizeNone)) {
91- // Remove this attribute to avoid JIT hangs
92- // TODO: Optimize all functions, maybe it doesn't take so long
93- func.removeFnAttr (llvm::Attribute::OptimizeNone);
94- } else {
95- #ifndef NDEBUG
96- std::cout << " debug: optimizing function: " << func.getName ().str () << std::endl;
97- #endif
98- functionPassManager.run (func, functionAnalysisManager);
99- }
100- }
101- }
75+ const auto &functions = m_module->getFunctionList ();
76+ std::vector<std::string> lookupNames;
77+
78+ for (const llvm::Function &func : functions) {
79+ if (func.hasExternalLinkage () && !func.isDeclaration ())
80+ lookupNames.push_back (func.getName ().str ());
10281 }
10382
10483 // Init JIT compiler
0 commit comments