diff -ruN a/compiler/generator/llvm/llvm_code_container.cpp b/compiler/generator/llvm/llvm_code_container.cpp --- a/compiler/generator/llvm/llvm_code_container.cpp 2021-01-12 15:20:11.000000000 +0100 +++ b/compiler/generator/llvm/llvm_code_container.cpp 2021-04-16 18:28:55.131765843 +0200 @@ -77,7 +77,7 @@ // Set "-fast-math" FastMathFlags FMF; -#if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120) +#if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) FMF.setFast(); // has replaced the following function #else FMF.setUnsafeAlgebra(); diff -ruN a/compiler/generator/llvm/llvm_dsp_aux.cpp b/compiler/generator/llvm/llvm_dsp_aux.cpp --- a/compiler/generator/llvm/llvm_dsp_aux.cpp 2021-01-12 15:20:11.000000000 +0100 +++ b/compiler/generator/llvm/llvm_dsp_aux.cpp 2021-04-16 18:30:44.412026167 +0200 @@ -116,7 +116,7 @@ { if (llvm_dsp_factory_aux::gInstance++ == 0) { // Install an LLVM error handler - #if defined(__APPLE__) && (defined(LLVM_110) || defined(LLVM_120)) + #if defined(__APPLE__) && (defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120)) #warning Crash on OSX with LLVM_11 or LLVM_12, so deactivated in this case #else LLVMInstallFatalErrorHandler(llvm_dsp_factory_aux::LLVMFatalErrorHandler); diff -ruN a/compiler/generator/llvm/llvm_dynamic_dsp_aux.cpp b/compiler/generator/llvm/llvm_dynamic_dsp_aux.cpp --- a/compiler/generator/llvm/llvm_dynamic_dsp_aux.cpp 2021-01-12 15:20:11.000000000 +0100 +++ b/compiler/generator/llvm/llvm_dynamic_dsp_aux.cpp 2021-04-16 18:29:59.778586506 +0200 @@ -65,7 +65,7 @@ #include #include -#if defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120) +#if defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) #include #include #endif @@ -114,7 +114,7 @@ string res; raw_string_ostream out_str(res); if (binary) { -#if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120) +#if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) WriteBitcodeToFile(*fModule, out_str); #else WriteBitcodeToFile(fModule, out_str); @@ -130,7 +130,7 @@ { string res; raw_string_ostream out(res); -#if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120) +#if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) WriteBitcodeToFile(*fModule, out); #else WriteBitcodeToFile(fModule, out); @@ -147,7 +147,7 @@ cerr << "ERROR : writeDSPFactoryToBitcodeFile could not open file : " << err.message(); return false; } -#if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120) +#if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) WriteBitcodeToFile(*fModule, out); #else WriteBitcodeToFile(fModule, out); @@ -285,11 +285,11 @@ targetOptions.GuaranteedTailCallOpt = true; targetOptions.NoTrappingFPMath = true; -#if defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120) +#if defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) targetOptions.NoSignedZerosFPMath = true; #endif -#if defined(LLVM_110) || defined(LLVM_120) +#if defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) targetOptions.setFPDenormalMode(DenormalMode::getIEEE()); #else targetOptions.FPDenormalMode = FPDenormal::IEEE; @@ -434,7 +434,7 @@ legacy::PassManager pass; -#if defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120) +#if defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) if (TheTargetMachine->addPassesToEmitFile(pass, dest, nullptr, CGFT_ObjectFile)) { #elif defined(LLVM_80) || defined(LLVM_90) if (TheTargetMachine->addPassesToEmitFile(pass, dest, nullptr, TargetMachine::CGFT_ObjectFile)) { diff -ruN a/compiler/generator/llvm/llvm_instructions.hh b/compiler/generator/llvm/llvm_instructions.hh --- a/compiler/generator/llvm/llvm_instructions.hh 2021-01-12 15:20:11.000000000 +0100 +++ b/compiler/generator/llvm/llvm_instructions.hh 2021-04-16 18:30:28.765322226 +0200 @@ -238,7 +238,7 @@ list fMathLibTable; // All standard math functions -#if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120) +#if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) map fUnaryIntrinsicTable; // LLVM unary intrinsic map fBinaryIntrinsicTable; // LLVM binary intrinsic #endif @@ -312,7 +312,7 @@ fTypeMap[Typed::kObj_ptr] = dsp_ptr; fAllocaBuilder = new IRBuilder<>(fModule->getContext()); - #if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120) + #if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) /* This does not work in visit(FunCallInst* inst) for intrinsic, which are deactivated for now call_inst->addAttribute(AttributeList::FunctionIndex, Attribute::Builtin); @@ -839,7 +839,7 @@ fCurValue = generateFunPolymorphicMinMax(fun_args[0], fun_args[1], kLT); } else if (checkMax(inst->fName) && fun_args.size() == 2) { fCurValue = generateFunPolymorphicMinMax(fun_args[0], fun_args[1], kGT); - #if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120) + #if defined(LLVM_80) || defined(LLVM_90) || defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120) // LLVM unary intrinsic } else if (fUnaryIntrinsicTable.find(inst->fName) != fUnaryIntrinsicTable.end()) {