From 595c033dee316e71f548376f462191d04fbebb0f Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 16 Jul 2026 09:58:28 +0200 Subject: [PATCH] Fix compatibility with LLVM 23 --- .github/workflows/enzyme-mlir.yml | 2 +- enzyme/Enzyme/Enzyme.cpp | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/enzyme-mlir.yml b/.github/workflows/enzyme-mlir.yml index f60d694de77..4107faba469 100644 --- a/.github/workflows/enzyme-mlir.yml +++ b/.github/workflows/enzyme-mlir.yml @@ -45,7 +45,7 @@ jobs: - uses: actions/checkout@v4 with: repository: 'llvm/llvm-project' - ref: '615644763ffcfc939bda59e9f3e71d6e7d9fd264' + ref: 'fb423ba07c3ff51fda3caa41d8bbb78d50f61906' path: 'llvm-project' - name: Set BASE_DIR diff --git a/enzyme/Enzyme/Enzyme.cpp b/enzyme/Enzyme/Enzyme.cpp index 29e95003c1e..1d17c395353 100644 --- a/enzyme/Enzyme/Enzyme.cpp +++ b/enzyme/Enzyme/Enzyme.cpp @@ -3135,7 +3135,7 @@ AnalysisKey EnzymeNewPM::Key; static InlineParams getInlineParamsFromOptLevel(OptimizationLevel Level) { #if LLVM_VERSION_MAJOR >= 23 - return getInlineParams(Level.getSpeedupLevel()); + return getInlineParamsFromOptLevel(static_cast(Level)); #else return getInlineParams(Level.getSpeedupLevel(), Level.getSizeLevel()); #endif @@ -3271,7 +3271,12 @@ void augmentPassBuilder(llvm::PassBuilder &PB) { // system libraries and other oracles. MPM.addPass(InferFunctionAttrsPass()); - if (Level.getSpeedupLevel() > 1) { +#if LLVM_VERSION_MAJOR >= 23 + if (Level > OptimizationLevel::O1) +#else + if (Level.getSpeedupLevel() > 1) +#endif + { MPM.addPass(createModuleToFunctionPassAdaptor(CallSiteSplittingPass(), EagerlyInvalidateAnalyses)); @@ -3345,7 +3350,11 @@ void augmentPassBuilder(llvm::PassBuilder &PB) { // have to resolve varargs calls, etc, so let instcombine do this. FunctionPassManager PeepholeFPM; PeepholeFPM.addPass(InstCombinePass()); +#if LLVM_VERSION_MAJOR >= 23 + if (Level > OptimizationLevel::O1) +#else if (Level.getSpeedupLevel() > 1) +#endif PeepholeFPM.addPass(AggressiveInstCombinePass()); MPM.addPass(createModuleToFunctionPassAdaptor(std::move(PeepholeFPM), @@ -3483,7 +3492,11 @@ void augmentPassBuilder(llvm::PassBuilder &PB) { MainFPM.addPass(MergedLoadStoreMotionPass()); LoopPassManager LPM; +#if LLVM_VERSION_MAJOR >= 23 + if (EnableLoopFlatten && Level > OptimizationLevel::O1) +#else if (EnableLoopFlatten && Level.getSpeedupLevel() > 1) +#endif LPM.addPass(LoopFlattenPass()); LPM.addPass(IndVarSimplifyPass()); LPM.addPass(LoopDeletionPass());