117 lines
6.2 KiB
Diff
117 lines
6.2 KiB
Diff
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 <llvm/Bitcode/BitcodeReader.h>
|
|
#include <llvm/Bitcode/BitcodeWriter.h>
|
|
|
|
-#if defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_120)
|
|
+#if defined(LLVM_100) || defined(LLVM_110) || defined(LLVM_111) || defined(LLVM_120)
|
|
#include <llvm/InitializePasses.h>
|
|
#include <llvm/Support/CodeGen.h>
|
|
#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<string> 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<string, Intrinsic::ID> fUnaryIntrinsicTable; // LLVM unary intrinsic
|
|
map<string, Intrinsic::ID> 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()) {
|
|
|