MINGW-packages/mingw-w64-triton-git/001-remove-legacy.patch

45 lines
1.8 KiB
Diff

--- triton/src/libtriton/includes/triton/tritonToLLVM.hpp.orig 2023-12-18 10:10:45.627931500 +0300
+++ triton/src/libtriton/includes/triton/tritonToLLVM.hpp 2023-12-18 10:10:50.668006900 +0300
@@ -19,9 +19,10 @@
#include <llvm/IR/IRBuilder.h>
#include <llvm/IR/LLVMContext.h>
-#include <llvm/IR/LegacyPassManager.h>
#include <llvm/IR/Module.h>
-#include <llvm/Transforms/IPO/PassManagerBuilder.h>
+#include <llvm-c/TargetMachine.h>
+#include <llvm-c/Transforms/PassBuilder.h>
+#include <llvm/Support/CBindingWrapping.h>
--- triton/src/libtriton/ast/llvm/tritonToLLVM.cpp.orig 2023-12-18 10:41:32.749828600 +0300
+++ triton/src/libtriton/ast/llvm/tritonToLLVM.cpp 2023-12-19 10:50:25.693682600 +0300
@@ -100,12 +100,20 @@
/* Apply LLVM optimizations (-03 -Oz) if enabled */
if (optimize) {
- llvm::legacy::PassManager pm;
- llvm::PassManagerBuilder pmb;
- pmb.OptLevel = 3;
- pmb.SizeLevel = 2;
- pmb.populateModulePassManager(pm);
- pm.run(*this->llvmModule);
+ LLVMTargetRef targ;
+ char *err_message;
+ if (LLVMGetTargetFromTriple(this->llvmModule->getTargetTriple().c_str(), &targ, &err_message)) {
+ LLVMTargetMachineRef tm = LLVMCreateTargetMachine(targ, this->llvmModule->getTargetTriple().c_str(),
+ "", "", LLVMCodeGenLevelAggressive,
+ LLVMRelocDefault, LLVMCodeModelDefault);
+
+ if (tm) {
+ LLVMPassBuilderOptionsRef opts = LLVMCreatePassBuilderOptions();
+ LLVMRunPasses(wrap(this->llvmModule.get()), "default<O3>", tm, opts);
+
+ LLVMDisposeTargetMachine(tm);
+ }
+ }
}
return this->llvmModule;