diff --git a/llvm/unittests/ExecutionEngine/MCJIT/CMakeLists.txt b/llvm/unittests/ExecutionEngine/MCJIT/CMakeLists.txt --- a/llvm/unittests/ExecutionEngine/MCJIT/CMakeLists.txt +++ b/llvm/unittests/ExecutionEngine/MCJIT/CMakeLists.txt @@ -2,10 +2,9 @@ Analysis Core ExecutionEngine - IPO - InstCombine MC MCJIT + Passes RuntimeDyld ScalarOpts Support diff --git a/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp b/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp --- a/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp +++ b/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp @@ -16,8 +16,7 @@ #include "llvm-c/Core.h" #include "llvm-c/ExecutionEngine.h" #include "llvm-c/Target.h" -#include "llvm-c/Transforms/PassManagerBuilder.h" -#include "llvm-c/Transforms/Scalar.h" +#include "llvm-c/Transforms/PassBuilder.h" #include "llvm/ExecutionEngine/SectionMemoryManager.h" #include "llvm/Support/Debug.h" #include "llvm/Support/Host.h" @@ -286,40 +285,29 @@ } void buildAndRunPasses() { - LLVMPassManagerRef pass = LLVMCreatePassManager(); - LLVMAddInstructionCombiningPass(pass); - LLVMRunPassManager(pass, Module); - LLVMDisposePassManager(pass); + LLVMPassBuilderOptionsRef Options = LLVMCreatePassBuilderOptions(); + if (LLVMErrorRef E = + LLVMRunPasses(Module, "instcombine", nullptr, Options)) { + char *Msg = LLVMGetErrorMessage(E); + LLVMConsumeError(E); + LLVMDisposePassBuilderOptions(Options); + FAIL() << "Failed to run passes: " << Msg; + } + + LLVMDisposePassBuilderOptions(Options); } void buildAndRunOptPasses() { - LLVMPassManagerBuilderRef passBuilder; - - passBuilder = LLVMPassManagerBuilderCreate(); - LLVMPassManagerBuilderSetOptLevel(passBuilder, 2); - LLVMPassManagerBuilderSetSizeLevel(passBuilder, 0); - - LLVMPassManagerRef functionPasses = - LLVMCreateFunctionPassManagerForModule(Module); - LLVMPassManagerRef modulePasses = - LLVMCreatePassManager(); - - LLVMPassManagerBuilderPopulateFunctionPassManager(passBuilder, - functionPasses); - LLVMPassManagerBuilderPopulateModulePassManager(passBuilder, modulePasses); - - LLVMPassManagerBuilderDispose(passBuilder); - - LLVMInitializeFunctionPassManager(functionPasses); - for (LLVMValueRef value = LLVMGetFirstFunction(Module); - value; value = LLVMGetNextFunction(value)) - LLVMRunFunctionPassManager(functionPasses, value); - LLVMFinalizeFunctionPassManager(functionPasses); - - LLVMRunPassManager(modulePasses, Module); - - LLVMDisposePassManager(functionPasses); - LLVMDisposePassManager(modulePasses); + LLVMPassBuilderOptionsRef Options = LLVMCreatePassBuilderOptions(); + if (LLVMErrorRef E = + LLVMRunPasses(Module, "default", nullptr, Options)) { + char *Msg = LLVMGetErrorMessage(E); + LLVMConsumeError(E); + LLVMDisposePassBuilderOptions(Options); + FAIL() << "Failed to run passes: " << Msg; + } + + LLVMDisposePassBuilderOptions(Options); } LLVMModuleRef Module; diff --git a/llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/MCJIT/BUILD.gn b/llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/MCJIT/BUILD.gn --- a/llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/MCJIT/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/MCJIT/BUILD.gn @@ -8,12 +8,10 @@ "//llvm/lib/ExecutionEngine/RuntimeDyld", "//llvm/lib/IR", "//llvm/lib/MC", + "//llvm/lib/Passes", "//llvm/lib/Support", "//llvm/lib/Target", "//llvm/lib/Target:NativeTarget", - "//llvm/lib/Transforms/IPO", - "//llvm/lib/Transforms/InstCombine", - "//llvm/lib/Transforms/Scalar", ] sources = [ "MCJITCAPITest.cpp",