[arch-commits] Commit in faust/trunk (PKGBUILD llvm7.patch)

David Runge dvzrv at archlinux.org
Sun Apr 7 14:21:18 UTC 2019


    Date: Sunday, April 7, 2019 @ 14:21:17
  Author: dvzrv
Revision: 450292

upgpkg: faust 2.15.11-1

Upgrading to 2.15.11. Adding optdepends for faust2* scripts. Removing llvm7 patch and moving back to current llvm.

Modified:
  faust/trunk/PKGBUILD
Deleted:
  faust/trunk/llvm7.patch

-------------+
 PKGBUILD    |   45 +-
 llvm7.patch |  946 ----------------------------------------------------------
 2 files changed, 28 insertions(+), 963 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-04-07 12:24:56 UTC (rev 450291)
+++ PKGBUILD	2019-04-07 14:21:17 UTC (rev 450292)
@@ -4,34 +4,45 @@
 # Contributor: bjoern lindig (bjoern _dot_ lindig _at_ google.com)
 
 pkgname=faust
-pkgver=2.5.23
-pkgrel=5
+pkgver=2.15.11
+pkgrel=1
 pkgdesc="A functional programming language for realtime audio signal processing."
 arch=('x86_64')
 url="https://faust.grame.fr/"
 license=('GPL2')
 groups=('pro-audio')
-depends=('llvm7-libs' 'libsndfile' 'libmicrohttpd')
-makedepends=('llvm7' 'xxd')
-optdepends=('clang: needed for sound2reader'
-            'java-environment=8: needed for faust2android'
-            'python2: needed for faust2md and faust2atomsnippets'
-            'ruby: needed for faust2sc and scbuilder')
+depends=('llvm-libs' 'libsndfile' 'libmicrohttpd')
+makedepends=('cmake' 'llvm' 'xxd')
+optdepends=('clang: for sound2reader'
+            'csound: for faust2csound'
+            'graphviz: for faust2sig{,viewer}'
+            'gtk2: for faust2{jack,rosgtk}'
+            'inkscape: for faust2{pdf,png}'
+            'jack: for faust2{api,jack{,console,internal,server,rust},jaqt,netjackqt,nodejs,ros,rosgtk,rpinetjackconsole}'
+            'swig: for faust2android'
+            'libsndfile: for faust2{dummy,sndfile}'
+            'octave: for faust2octave'
+            'pd: for faust2puredata'
+            'portaudio: for faust2paqt'
+            'python2: for faust2md and faust2atomsnippets'
+            'qt5-tools: for faust2{faustvst,jaqt,lv2}'
+            'rtaudio: for faust2raqt'
+            'ruby: for faust2sc and scbuilder'
+            'rust: for faust2jackrust'
+            'supercollider: for faust2supercollider'
+            'texlive-core: for faust2pdf')
 options=('staticlibs')
-source=("https://github.com/grame-cncm/${pkgname}/releases/download/${pkgver}/${pkgname}-${pkgver}.tar.gz"
-        'llvm7.patch')
-sha512sums=('7ffa165b865cea09b923cb1687e5b48a48186644f9efcf8b532f948368c825f0ce829a8d6ef64d9a59c81bac0597dbd6b05bd1ac40198f5d4e6403eda1e57e69'
-            'db5465db46ee5cf1f20bfba7d54e373f02e7a23848a9af7bd613e6b1589fac47f437582b6934b21469ba082a6f8c54d8528a33c48a5a747a20b2fa0bf7479337')
+source=("https://github.com/grame-cncm/${pkgname}/releases/download/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+sha512sums=('24590a2f726e5aff577a8be57293940a2cb80bcacff7e33986c66c0aa1e4d27bbba6b1335b2855efc35e83b3a8206a12f4f3bb83aa813a817a648e174a3c15fc')
 
 prepare() {
   cd "${pkgname}-${pkgver}"
-  # fix scripts requiring python2
+  # fix scripts requiring python2:
+  # https://github.com/grame-cncm/faust/issues/301
   sed -e '1s/python/&2/' \
-    -i "tools/${pkgname}2appls/${pkgname}2"{md,atomsnippets}
-  # fix for llvm7 (derived partially from upstream fix of HEAD):
-  # https://github.com/grame-cncm/faust/issues/220
-  patch -Np1 -i ../llvm7.patch
+      -i "tools/${pkgname}2appls/${pkgname}2atomsnippets"
   # RELRO for sound2faust and sound2file
+  # https://github.com/grame-cncm/faust/issues/302
   sed -e "/\$(LIBS)/ s/$/ $LDFLAGS/g" \
       -i tools/sound2faust/Makefile
 }

Deleted: llvm7.patch
===================================================================
--- llvm7.patch	2019-04-07 12:24:56 UTC (rev 450291)
+++ llvm7.patch	2019-04-07 14:21:17 UTC (rev 450292)
@@ -1,946 +0,0 @@
-diff -ruN faust-2.5.23/compiler/Makefile.unix faust-2.5.23-b/compiler/Makefile.unix
---- faust-2.5.23/compiler/Makefile.unix	2018-03-06 10:39:29.000000000 +0100
-+++ faust-2.5.23-b/compiler/Makefile.unix	2018-09-20 23:42:17.101639018 +0200
-@@ -160,6 +160,11 @@
-     CLANGLIBS=$(CLANGLIBSLIST)
-     CXXFLAGS += -std=gnu++11
- 
-+else ifeq ($(LLVM_VERSION),$(filter $(LLVM_VERSION), 7.0.1 7.0.0 7.0.0svn))
-+    LLVM_VERSION = LLVM_70
-+    CLANGLIBS=$(CLANGLIBSLIST)
-+    CXXFLAGS += -std=gnu++11
-+
- else
-     $(error "Unknown LLVM version $(LLVM_VERSION)")
- 
-diff -ruN faust-2.5.23/compiler/generator/llvm/llvm_code_container.cpp faust-2.5.23-b/compiler/generator/llvm/llvm_code_container.cpp
---- faust-2.5.23/compiler/generator/llvm/llvm_code_container.cpp	2018-03-06 10:39:29.000000000 +0100
-+++ faust-2.5.23-b/compiler/generator/llvm/llvm_code_container.cpp	2018-09-23 18:03:49.035915270 +0200
-@@ -35,7 +35,7 @@
-  TODO: in -mem mode, classInit and classDestroy will have to be called once at factory init and destroy time
- */
- 
--#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #define ModulePTR std::unique_ptr<Module>
-     #define MovePTR(ptr) std::move(ptr)
- #else
-@@ -67,15 +67,15 @@
- #endif
-     fBuilder = new IRBuilder<>(getContext());
-     
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60))
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70))
-     // Set "-fast-math"
-     FastMathFlags FMF;
--#if defined(LLVM_60)
-+#if (defined(LLVM_60) || defined(LLVM_70))
-     FMF.setFast(); // has replaced the below function
- #else
-     FMF.setUnsafeAlgebra();
- #endif
--#if (defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60))
-+#if (defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70))
-     fBuilder->setFastMathFlags(FMF);
- #else
-     fBuilder->SetFastMathFlags(FMF);
-@@ -98,15 +98,15 @@
-     fContext = context;
-     fBuilder = new IRBuilder<>(getContext());
-     
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60))
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70))
-     // Set "-fast-math"
-     FastMathFlags FMF;
--#if defined(LLVM_60)
-+#if (defined(LLVM_60) || defined(LLVM_70))
-     FMF.setFast(); // has replaced the below function
- #else
-     FMF.setUnsafeAlgebra();
- #endif
--#if (defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60))
-+#if (defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70))
-     fBuilder->setFastMathFlags(FMF);
- #else
-     fBuilder->SetFastMathFlags(FMF);
-@@ -222,8 +222,8 @@
-     Function* llvm_compute = Function::Create(llvm_compute_type, GlobalValue::ExternalLinkage, "compute" + fKlassName, fModule);
-     llvm_compute->setCallingConv(CallingConv::C);
- 
--#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
--#if !defined(LLVM_50) && !defined(LLVM_60)
-+#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-+#if !defined(LLVM_50) && !defined(LLVM_60) && !defined(LLVM_70)
-     llvm_compute->setDoesNotAlias(3U);
-     llvm_compute->setDoesNotAlias(4U);
- #endif
-@@ -294,7 +294,7 @@
- 
-     BasicBlock* block = BasicBlock::Create(getContext(), "entry_block", sr_fun);
-     fBuilder->SetInsertPoint(block);
--#if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     Value* zone_ptr = fBuilder->CreateStructGEP(0, dsp, field_index);
- #else
-     Value* zone_ptr = fBuilder->CreateStructGEP(dsp, field_index);
-@@ -656,7 +656,7 @@
- 
-         Value* idx2[3];
-         idx2[0] = load_meta_ptr;
--    #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+    #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-         idx2[1] = fBuilder->CreateConstGEP2_32(type_def1, llvm_label1, 0, 0);
-         idx2[2] = fBuilder->CreateConstGEP2_32(type_def2, llvm_label2, 0, 0);
-     #else
-@@ -1231,7 +1231,7 @@
- 
-     Function* llvm_computethreadInternal = fModule->getFunction("computeThread");
-     faustassert(llvm_computethreadInternal);
--#if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     Value* fun_args[] = { fBuilder->CreateBitCast(arg1, fStructDSP), arg2 };
-     CallInst* call_inst = fBuilder->CreateCall(llvm_computethreadInternal, fun_args);
- #else
-diff -ruN faust-2.5.23/compiler/generator/llvm/llvm_code_container.hh faust-2.5.23-b/compiler/generator/llvm/llvm_code_container.hh
---- faust-2.5.23/compiler/generator/llvm/llvm_code_container.hh	2018-03-06 10:39:29.000000000 +0100
-+++ faust-2.5.23-b/compiler/generator/llvm/llvm_code_container.hh	2018-09-21 00:10:08.190282639 +0200
-@@ -29,7 +29,7 @@
- #include "wss_code_container.hh"
- #include "llvm_dynamic_dsp_aux.hh"
- 
--#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/Support/FileSystem.h>
-     #define sysfs_binary_flag sys::fs::F_None
- #elif defined(LLVM_34)
-@@ -38,7 +38,7 @@
-     #define sysfs_binary_flag raw_fd_ostream::F_Binary
- #endif
- 
--#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #define STREAM_ERROR std::error_code
- #else
-     #define STREAM_ERROR std::string
-@@ -118,7 +118,7 @@
- 
-         LlvmValue genFloat(const string& number)
-         {
--        #if defined(LLVM_60)
-+        #if defined(LLVM_60) || defined(LLVM_70)
-             return ConstantFP::get(getContext(), APFloat(APFloat::IEEEsingle(), number));
-         #elif defined(LLVM_40) || defined(LLVM_50)
-             return ConstantFP::get(getContext(), APFloat(APFloat::IEEEsingle(), number));
-diff -ruN faust-2.5.23/compiler/generator/llvm/llvm_dsp_aux.cpp faust-2.5.23-b/compiler/generator/llvm/llvm_dsp_aux.cpp
---- faust-2.5.23/compiler/generator/llvm/llvm_dsp_aux.cpp	2018-03-06 10:39:29.000000000 +0100
-+++ faust-2.5.23-b/compiler/generator/llvm/llvm_dsp_aux.cpp	2018-09-25 22:59:57.342028461 +0200
-@@ -41,7 +41,7 @@
- //#include <llvm/Transforms/IPO/PassManagerBuilder.h>
- //#include <llvm/Support/Threading.h>
- 
--#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     //#include <llvm/IR/Module.h>
-     //#include <llvm/IR/LLVMContext.h>
-     //#include <llvm/IRReader/IRReader.h>
-@@ -61,7 +61,7 @@
-     #include <llvm/Support/IRReader.h>
- #endif
- 
--#if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     /*
-     #include <llvm/Analysis/TargetLibraryInfo.h>
-     #include <llvm/Analysis/TargetTransformInfo.h>
-@@ -77,7 +77,7 @@
-     #define FUNCTION_PASS_MANAGER FunctionPassManager
- #endif
- 
--#if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
- 
-     #include <llvm/Bitcode/BitcodeWriter.h>
-     #include <llvm/Bitcode/BitcodeReader.h>
-@@ -94,20 +94,20 @@
-  */
- #if defined(LLVM_32)
-     #include <llvm/DataLayout.h>
--#elif !defined(LLVM_33) && !defined(LLVM_34) && !defined(LLVM_35) && !defined(LLVM_36) && !defined(LLVM_37) && !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60)
-+#elif !defined(LLVM_33) && !defined(LLVM_34) && !defined(LLVM_35) && !defined(LLVM_36) && !defined(LLVM_37) && !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60) && !defined(LLVM_70)
-     #ifndef _WIN32
-     //#include <llvm/Target/TargetData.h>
-     #endif
- #endif
- 
--#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/ExecutionEngine/MCJIT.h>
-     //#include <llvm/ExecutionEngine/ObjectCache.h>
- #else
-     #include <llvm/ExecutionEngine/JIT.h>
- #endif
- 
--#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     /*
-     #include <llvm/IR/LegacyPassNameParser.h>
-     #include <llvm/Linker/Linker.h>
-@@ -130,11 +130,11 @@
-     #define GET_CPU_NAME llvm::sys::getHostCPUName()
- #endif
- 
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     //#include <llvm/ExecutionEngine/ObjectCache.h>
- #endif
- 
--#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #define sysfs_binary_flag sys::fs::F_None
- #elif defined(LLVM_34)
-     #define sysfs_binary_flag sys::fs::F_Binary
-@@ -142,7 +142,7 @@
-     #define sysfs_binary_flag raw_fd_ostream::F_Binary
- #endif
- 
--#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #define STREAM_ERROR std::error_code
-     #define MEMORY_BUFFER MemoryBufferRef
-     #define MEMORY_BUFFER_GET(buffer) (buffer.getBuffer())
-@@ -156,7 +156,7 @@
-     #define MEMORY_BUFFER_CREATE(stringref) (MemoryBuffer::getMemBuffer(stringref))
- #endif
- 
--#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #define ModulePTR std::unique_ptr<Module>
-     #define MovePTR(ptr) std::move(ptr)
- #else
-@@ -177,7 +177,7 @@
- 
- void* llvm_dsp_factory_aux::loadOptimize(const string& function)
- {
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     void* fun = (void*)fJIT->getFunctionAddress(function);
-     if (fun) {
-         return fun;
-@@ -196,7 +196,7 @@
- 
- bool llvm_dsp_factory_aux::crossCompile(const string& target)
- {
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     delete fObjectCache;
-     fObjectCache = new FaustObjectCache();
-     setTarget(target);
-@@ -211,10 +211,10 @@
- {
-     if (llvm_dsp_factory_aux::gInstance++ == 0) {
-         // Install a LLVM error handler
--    #if defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+    #if defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-         LLVMInstallFatalErrorHandler(llvm_dsp_factory_aux::LLVMFatalErrorHandler);
-     #endif
--    #if (!defined(LLVM_35) && !defined(LLVM_36) && !defined(LLVM_37) && !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60)) // In LLVM 3.5 this is gone.
-+    #if (!defined(LLVM_35) && !defined(LLVM_36) && !defined(LLVM_37) && !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60) && !defined(LLVM_70)) // In LLVM 3.5 this is gone.
-         if (!llvm_start_multithreaded()) {
-             std::cerr << "llvm_start_multithreaded error...\n";
-         }
-@@ -225,16 +225,16 @@
- void llvm_dsp_factory_aux::stopLLVMLibrary()
- {
-     if (--llvm_dsp_factory_aux::gInstance == 0) {
--    #if  (!defined(LLVM_35)) && (!defined(LLVM_36)) && (!defined(LLVM_37)) && (!defined(LLVM_38)) && (!defined(LLVM_39)) && (!defined(LLVM_40)) && (!defined(LLVM_50) && !defined(LLVM_60)) // In LLVM 3.5 this is gone.
-+    #if  (!defined(LLVM_35)) && (!defined(LLVM_36)) && (!defined(LLVM_37)) && (!defined(LLVM_38)) && (!defined(LLVM_39)) && (!defined(LLVM_40)) && (!defined(LLVM_50) && !defined(LLVM_60) && !defined(LLVM_70)) // In LLVM 3.5 this is gone.
-         llvm_stop_multithreaded();
-     #endif
--    #if defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+    #if defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-         LLVMResetFatalErrorHandler();
-     #endif
-     }
- }
- 
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
- llvm_dsp_factory_aux::llvm_dsp_factory_aux(const string& sha_key, const string& machine_code, const string& target)
-     :dsp_factory_imp("MachineDSP", sha_key, "")
- {
-@@ -271,14 +271,14 @@
-     fModule = module;
-     fContext = context;
-     
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     fObjectCache = nullptr;
- #endif
- }
- 
- llvm_dsp_factory_aux::~llvm_dsp_factory_aux()
- {
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     delete fObjectCache;
- #endif
-     if (fJIT) {
-@@ -290,7 +290,7 @@
-     stopLLVMLibrary();
- }
- 
--#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
- void llvm_dsp_factory_aux::LLVMFatalErrorHandler(const char* reason)
- {
-     throw faustexception(reason);
-@@ -344,7 +344,11 @@
-     string res;
-     raw_string_ostream out_str(res);
-     if (binary) {
-+    #if defined(LLVM_70)
-+        WriteBitcodeToFile(*fModule, out_str);
-+    #else
-         WriteBitcodeToFile(fModule, out_str);
-+    #endif
-     } else {
-         out_str << *fModule;
-     }
-@@ -532,7 +536,7 @@
- 
- string llvm_dsp_factory_aux::writeDSPFactoryToMachineAux(const string& target)
- {
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     if (target == "" || target == getTarget()) {
-         return fObjectCache->getMachineCode();
-     } else {
-@@ -563,7 +567,7 @@
-     out.flush();
- }
- 
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     
- static llvm_dsp_factory* readDSPFactoryFromMachineAux(MEMORY_BUFFER buffer, const string& target)
- {
-@@ -606,7 +610,7 @@
- {
-     TLock lock(llvm_dsp_factory_aux::gDSPFactoriesLock);
-     
--#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     ErrorOr<OwningPtr<MemoryBuffer>> buffer = MemoryBuffer::getFileOrSTDIN(machine_code_path);
-     if (error_code ec = buffer.getError()) {
-         std::cerr << "readDSPFactoryFromMachineFile failed : " << ec.message() << std::endl;
-@@ -790,7 +794,7 @@
-     }
- }
- 
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
- EXPORT llvm_dsp_factory* readCDSPFactoryFromMachine(const char* machine_code, const char* target)
- {
-     return readDSPFactoryFromMachine(machine_code, target);
-diff -ruN faust-2.5.23/compiler/generator/llvm/llvm_dsp_aux.hh faust-2.5.23-b/compiler/generator/llvm/llvm_dsp_aux.hh
---- faust-2.5.23/compiler/generator/llvm/llvm_dsp_aux.hh	2018-03-06 10:39:29.000000000 +0100
-+++ faust-2.5.23-b/compiler/generator/llvm/llvm_dsp_aux.hh	2018-09-20 23:42:17.164971704 +0200
-@@ -36,11 +36,11 @@
- #include "dsp_factory.hh"
- #include "TMutex.h"
- 
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
- #include <llvm/ExecutionEngine/ObjectCache.h>
- #endif
- 
--#if defined(LLVM_34) || defined(LLVM_35)  || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_34) || defined(LLVM_35)  || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #define LLVM_MAX_OPT_LEVEL 5
- #else
-     #define LLVM_MAX_OPT_LEVEL 4
-@@ -133,7 +133,7 @@
- };
- #endif
- 
--#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
- 
- /*
-  static std::string getFeaturesStr()
-@@ -199,7 +199,7 @@
-     
-         llvm::ExecutionEngine* fJIT;
- 
--    #if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+    #if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-         FaustObjectCache* fObjectCache;
-     #endif
-     
-@@ -233,7 +233,7 @@
-     
-         bool crossCompile(const std::string& target);
-     
--    #if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+    #if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-         static void LLVMFatalErrorHandler(const char* reason);
-     #endif
-     
-@@ -251,7 +251,7 @@
-                              const std::string& target,
-                              int opt_level = 0);
-         
--    #if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+    #if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-         llvm_dsp_factory_aux(const std::string& sha_key, const std::string& machine_code, const std::string& target);
-     #endif
-     
-diff -ruN faust-2.5.23/compiler/generator/llvm/llvm_dynamic_dsp_aux.cpp faust-2.5.23-b/compiler/generator/llvm/llvm_dynamic_dsp_aux.cpp
---- faust-2.5.23/compiler/generator/llvm/llvm_dynamic_dsp_aux.cpp	2018-03-06 10:39:29.000000000 +0100
-+++ faust-2.5.23-b/compiler/generator/llvm/llvm_dynamic_dsp_aux.cpp	2018-09-25 23:13:17.146825104 +0200
-@@ -43,7 +43,7 @@
- #include <llvm/Transforms/IPO/PassManagerBuilder.h>
- #include <llvm/Support/Threading.h>
- 
--#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/IR/Module.h>
-     #include <llvm/IR/LLVMContext.h>
-     #include <llvm/IRReader/IRReader.h>
-@@ -62,7 +62,7 @@
-     #include <llvm/Support/IRReader.h>
- #endif
- 
--#if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/Analysis/TargetLibraryInfo.h>
-     #include <llvm/Analysis/TargetTransformInfo.h>
-     #include <llvm/IR/PassManager.h>
-@@ -76,7 +76,7 @@
-     #define FUNCTION_PASS_MANAGER FunctionPassManager
- #endif
- 
--#if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/Bitcode/BitcodeWriter.h>
-     #include <llvm/Bitcode/BitcodeReader.h>
-     #include <llvm/Transforms/IPO/AlwaysInliner.h>
-@@ -90,20 +90,20 @@
-  */
- #if defined(LLVM_32)
-     #include <llvm/DataLayout.h>
--#elif !defined(LLVM_33) && !defined(LLVM_34) && !defined(LLVM_35) && !defined(LLVM_36) && !defined(LLVM_37) && !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60)
-+#elif !defined(LLVM_33) && !defined(LLVM_34) && !defined(LLVM_35) && !defined(LLVM_36) && !defined(LLVM_37) && !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60) && !defined(LLVM_70)
-     #ifndef _WIN32
-     #include <llvm/Target/TargetData.h>
-     #endif
- #endif
- 
--#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/ExecutionEngine/MCJIT.h>
-     #include <llvm/ExecutionEngine/ObjectCache.h>
- #else
-     #include <llvm/ExecutionEngine/JIT.h>
- #endif
- 
--#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/IR/LegacyPassNameParser.h>
-     #include <llvm/Linker/Linker.h>
-     #include <llvm/IR/IRPrintingPasses.h>
-@@ -123,11 +123,11 @@
-     #define GET_CPU_NAME llvm::sys::getHostCPUName()
- #endif
- 
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     #include "llvm/ExecutionEngine/ObjectCache.h"
- #endif
- 
--#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #define sysfs_binary_flag sys::fs::F_None
- #elif defined(LLVM_34)
-     #define sysfs_binary_flag sys::fs::F_Binary
-@@ -135,7 +135,7 @@
-     #define sysfs_binary_flag raw_fd_ostream::F_Binary
- #endif
- 
--#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #define STREAM_ERROR std::error_code
-     #define MEMORY_BUFFER MemoryBufferRef
-     #define MEMORY_BUFFER_GET(buffer) (buffer.getBuffer())
-@@ -149,7 +149,7 @@
-     #define MEMORY_BUFFER_CREATE(stringref) (MemoryBuffer::getMemBuffer(stringref))
- #endif
- 
--#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #define ModulePTR std::unique_ptr<Module>
-     #define MovePTR(ptr) std::move(ptr)
- #else
-@@ -211,7 +211,7 @@
- }
- #endif
- 
--#if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
- 
- static Module* ParseBitcodeFile(MEMORY_BUFFER Buffer,
-                                 LLVMContext& Context,
-@@ -250,7 +250,11 @@
- {
-     string res;
-     raw_string_ostream out(res);
-+#if (LLVM_70)
-+    WriteBitcodeToFile(*fModule, out);
-+#else
-     WriteBitcodeToFile(fModule, out);
-+#endif
-     out.flush();
-     return base64_encode(res);
- }
-@@ -259,7 +263,11 @@
- {
-     STREAM_ERROR err;
-     raw_fd_ostream out(bit_code_path.c_str(), err, sysfs_binary_flag);
-+#if (LLVM_70)
-+    WriteBitcodeToFile(*fModule, out);
-+#else
-     WriteBitcodeToFile(fModule, out);
-+#endif
- }
- 
- // IR
-@@ -302,12 +310,12 @@
-     fModule = module;
-     fContext = context;
-     
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     fObjectCache = nullptr;
- #endif
- }
- 
--#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
- /// AddOptimizationPasses - This routine adds optimization passes
- /// based on selected optimization level, OptLevel. This routine
- /// duplicates llvm-gcc behaviour.
-@@ -336,7 +344,7 @@
-         }
-         Builder.Inliner = createFunctionInliningPass(Threshold);
-     } else {
--    #if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+    #if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-         Builder.Inliner = createAlwaysInlinerLegacyPass();
-     #else
-         Builder.Inliner = createAlwaysInlinerPass();
-@@ -377,22 +385,22 @@
-     InitializeNativeTargetAsmParser();
-     
-     // For ObjectCache to work...
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     LLVMLinkInMCJIT();
- #endif
-     
-     // Restoring from machine code
--#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+#if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-     if (fObjectCache) {
-     
-         // JIT
--    #if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+    #if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-         EngineBuilder builder((unique_ptr<Module>(fModule)));
-     #else
-         EngineBuilder builder(fModule);
-     #endif
-         builder.setEngineKind(EngineKind::JIT);
--    #if !defined(LLVM_36) && !defined(LLVM_37) && !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60)
-+    #if !defined(LLVM_36) && !defined(LLVM_37) && !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60) && !defined(LLVM_70)
-         builder.setUseMCJIT(true);
-     #endif
-         TargetMachine* tm = builder.selectTarget();
-@@ -417,7 +425,7 @@
-         initializeVectorization(Registry);
-         initializeIPO(Registry);
-         initializeAnalysis(Registry);
--    #if !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60)
-+    #if !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60) && !defined(LLVM_70)
-         initializeIPA(Registry);
-     #endif
-         initializeTransformUtils(Registry);
-@@ -425,14 +433,14 @@
-         initializeInstrumentation(Registry);
-         initializeTarget(Registry);
-        
--    #if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+    #if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-         EngineBuilder builder((unique_ptr<Module>(fModule)));
-     #else
-         EngineBuilder builder(fModule);
-     #endif
-         builder.setOptLevel(CodeGenOpt::Aggressive);
-         builder.setEngineKind(EngineKind::JIT);
--    #if !defined(LLVM_60)
-+    #if !defined(LLVM_60) && !defined(LLVM_70)
-         builder.setCodeModel(CodeModel::JITDefault);
-     #endif
-         
-@@ -442,7 +450,7 @@
-         // MCJIT does not work correctly (incorrect float numbers ?) when used with dynamic libLLVM
-     #if (defined(LLVM_34) || defined(LLVM_35)) && !defined(_MSC_VER)
-         builder.setUseMCJIT(true);
--    #elif !defined(LLVM_36) && !defined(LLVM_37) && !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60)
-+    #elif !defined(LLVM_36) && !defined(LLVM_37) && !defined(LLVM_38) && !defined(LLVM_39) && !defined(LLVM_40) && !defined(LLVM_50) && !defined(LLVM_60) && !defined(LLVM_70)
-         builder.setUseMCJIT(false);
-     #endif
-     
-@@ -473,8 +481,8 @@
-         
-         // -fastmath is activated at IR level, and has to be setup at JIT level also
-         
--    #if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
--    #if !defined(LLVM_50) && !defined(LLVM_60)
-+    #if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-+    #if !defined(LLVM_50) && !defined(LLVM_60) && !defined(LLVM_70)
-         targetOptions.LessPreciseFPMADOption = true;
-     #endif
-         targetOptions.AllowFPOpFusion = FPOpFusion::Fast;
-@@ -484,7 +492,7 @@
-         targetOptions.GuaranteedTailCallOpt = true;
-     #endif
-     
--    #if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+    #if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-         targetOptions.NoTrappingFPMath = true;
-         targetOptions.FPDenormalMode = FPDenormal::IEEE;
-     #endif
-@@ -512,7 +520,7 @@
-             PASS_MANAGER pm;
-             FUNCTION_PASS_MANAGER fpm(fModule);
-             
--        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) // Code taken from opt.cpp
-+        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70) // Code taken from opt.cpp
-             TargetLibraryInfoImpl TLII(Triple(fModule->getTargetTriple()));
-             pm.add(new TargetLibraryInfoWrapperPass(TLII));
-         #else
-@@ -521,7 +529,7 @@
-             pm.add(tli);
-         #endif
- 
--        #if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+        #if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             fModule->setDataLayout(fJIT->getDataLayout());
-         #elif defined(LLVM_37) // Code taken from opt.cpp
-             fModule->setDataLayout(*fJIT->getDataLayout());
-@@ -535,7 +543,7 @@
-         #endif
-           
-             // Add internal analysis passes from the target machine (mandatory for vectorization to work)
--        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) // Code taken from opt.cpp
-+        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70) // Code taken from opt.cpp
-             pm.add(createTargetTransformInfoWrapperPass(tm->getTargetIRAnalysis()));
-         #else
-             tm->addAnalysisPasses(pm);
-@@ -546,7 +554,7 @@
-             }
-             
-             if ((debug_var != "") && (debug_var.find("FAUST_LLVM1") != string::npos)) {
--            #if defined(LLVM_60)
-+            #if defined(LLVM_60) | defined(LLVM_70)
-               // TargetRegistry::printRegisteredTargetsForVersion(std::cout);
-             #else
-                 TargetRegistry::printRegisteredTargetsForVersion();
-@@ -563,7 +571,7 @@
-             pm.add(createVerifierPass());
-             
-             if ((debug_var != "") && (debug_var.find("FAUST_LLVM4") != string::npos)) {
--            #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+            #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-                 // TODO
-             #else
-                 tm->addPassesToEmitFile(pm, fouts(), TargetMachine::CGFT_AssemblyFile, true);
-@@ -578,7 +586,7 @@
-             }
-         }
-         
--    #if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)) && !defined(_MSC_VER)
-+    #if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)) && !defined(_MSC_VER)
-         fObjectCache = new FaustObjectCache();
-         fJIT->setObjectCache(fObjectCache);
-     }
-@@ -877,7 +885,7 @@
- {
-     TLock lock(llvm_dsp_factory_aux::gDSPFactoriesLock);
-   
--#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     ErrorOr<OwningPtr<MemoryBuffer>> buffer = MemoryBuffer::getFileOrSTDIN(bit_code_path);
-     if (error_code ec = buffer.getError()) {
-         std::cerr << "readDSPFactoryFromBitcodeFile failed : " << ec.message() << std::endl;
-@@ -920,7 +928,7 @@
-         setlocale(LC_ALL, "C");
-         LLVMContext* context = new LLVMContext();
-         SMDiagnostic err;
--    #if defined(LLVM_36) || defined(LLVM_37) ||defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+    #if defined(LLVM_36) || defined(LLVM_37) ||defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-         Module* module = parseIR(buffer, err, *context).release();  // parseIR takes ownership of the given buffer, so don't delete it
-     #else
-         Module* module = ParseIR(buffer, err, *context);            // ParseIR takes ownership of the given buffer, so don't delete it
-@@ -962,7 +970,7 @@
- {
-     TLock lock(llvm_dsp_factory_aux::gDSPFactoriesLock);
-  
-- #if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+ #if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     ErrorOr<OwningPtr<MemoryBuffer>> buffer = MemoryBuffer::getFileOrSTDIN(ir_code_path);
-     if (error_code ec = buffer.getError()) {
-         std::cerr << "readDSPFactoryFromIRFile failed : " << ec.message() << std::endl;
-@@ -1009,7 +1017,7 @@
- ModulePTR loadSingleModule(const string filename, LLVMContext* context)
- {
-     SMDiagnostic err;
--#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     ModulePTR module = parseIRFile(filename, err, *context);
- #elif defined(LLVM_36) || defined(LLVM_37)
-     ModulePTR module = parseIRFile(filename, err, *context).release();
-@@ -1047,7 +1055,7 @@
- {
-     bool res = false;
-     
--#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     if (Linker::linkModules(*dst, MovePTR(src))) {
-         snprintf(error_msg, 256, "cannot link module");
-         
-diff -ruN faust-2.5.23/compiler/generator/llvm/llvm_instructions.hh faust-2.5.23-b/compiler/generator/llvm/llvm_instructions.hh
---- faust-2.5.23/compiler/generator/llvm/llvm_instructions.hh	2018-03-06 10:39:29.000000000 +0100
-+++ faust-2.5.23-b/compiler/generator/llvm/llvm_instructions.hh	2018-09-20 23:42:17.171638303 +0200
-@@ -41,7 +41,7 @@
- #include <llvm/Support/Host.h>
- #include <llvm/Support/TargetSelect.h>
- 
--#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/IR/IRBuilder.h>
-     #include <llvm/IR/DataLayout.h>
-     #include <llvm/IR/DerivedTypes.h>
-@@ -57,25 +57,25 @@
-     #include <llvm/Module.h>
- #endif
- 
--#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/IR/Verifier.h>
- #else
-     #include <llvm/Analysis/Verifier.h>
- #endif
- 
--#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/ExecutionEngine/MCJIT.h>
- #else
-     #include <llvm/ExecutionEngine/JIT.h>
- #endif
- 
--#if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/IR/PassManager.h>
- #else
-     #include <llvm/PassManager.h>
- #endif
- 
--#if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #include <llvm/Bitcode/BitcodeWriter.h>
-     #include <llvm/Bitcode/BitcodeReader.h>
- #else
-@@ -90,7 +90,7 @@
-     #define LLVM_FREE   "free"
- #endif
- 
--#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-     #define GET_ITERATOR(it) &(*(it))
- #else
-     #define GET_ITERATOR(it) it
-@@ -291,7 +291,7 @@
-         VECTOR_OF_TYPES fDSPFields;
-         int fDSPFieldsCounter;
-         string fPrefix;
--    #if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+    #if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-         DataLayout* fDataLayout;
-     #endif
- 
-@@ -396,7 +396,7 @@
-             // llvm_create_dsp block
-             BasicBlock* entry_func_llvm_create_dsp = BasicBlock::Create(fModule->getContext(), "entry", func_llvm_create_dsp);
- 
--        #if defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+        #if defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             llvm::CallInst* call_inst1 = CallInst::Create(func_malloc, genInt64(fModule, fDataLayout->getTypeSizeInBits(dsp_type)), "", entry_func_llvm_create_dsp);
-         #else
-             // Dynamically computed object size (see http://nondot.org/sabre/LLVMNotes/SizeOf-OffsetOf-VariableSizedStructs.txt)
-@@ -614,7 +614,7 @@
-             initTypes(module);
-         #if defined(LLVM_35) || defined(LLVM_36)
-             fDataLayout = new DataLayout(*module->getDataLayout());
--        #elif defined(LLVM_34)  || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+        #elif defined(LLVM_34)  || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             fDataLayout = new DataLayout(module->getDataLayout());
-         #endif
-         }
-@@ -623,7 +623,7 @@
-         {
-             // External object not covered by Garbageable, so delete it here
-             delete fBuilder;
--        #if defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+        #if defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             delete fDataLayout;
-         #endif
-         }
-@@ -1001,7 +1001,7 @@
-             GlobalVariable* llvm_key = addStringConstant(inst->fKey, type_def1);
-             GlobalVariable* llvm_value = addStringConstant(inst->fValue, type_def2);
- 
--         #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+         #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             Value* const_string1 = fBuilder->CreateConstGEP2_32(type_def1, llvm_key, 0, 0);
-             Value* const_string2 = fBuilder->CreateConstGEP2_32(type_def2, llvm_value, 0, 0);
-          #else
-@@ -1015,7 +1015,7 @@
-                 zone_ptr = Constant::getNullValue((itfloat() == Typed::kFloat) ? fTypeMap[Typed::kFloat_ptr] : fTypeMap[Typed::kDouble_ptr]);
-             } else {
-                 int field_index = fDSPFieldsNames[inst->fZone];
--            #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+            #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-                 zone_ptr = fBuilder->CreateStructGEP(0, dsp, field_index);
-             #else
-                 zone_ptr = fBuilder->CreateStructGEP(dsp, field_index);
-@@ -1043,7 +1043,7 @@
-             string name = replaceSpacesWithUnderscore(inst->fName);
-             llvm::Type* type_def = 0;
-             GlobalVariable* llvm_name = addStringConstant(inst->fName, type_def);
--       #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+       #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             Value* const_string = fBuilder->CreateConstGEP2_32(type_def, llvm_name, 0, 0);
-        #else
-             Value* const_string = fBuilder->CreateConstGEP2_32(llvm_name, 0, 0);
-@@ -1065,7 +1065,7 @@
-             idx[1] = mth_index;
-             Value* mth_ptr = fBuilder->CreateInBoundsGEP(ui, MAKE_IXD(idx, idx+2));
-             LoadInst* mth = fBuilder->CreateLoad(mth_ptr);
--        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             Value* fun_args[] = { fUIInterface_ptr, const_string };
-             CallInst* call_inst = fBuilder->CreateCall(mth, fun_args);
-         #else
-@@ -1102,7 +1102,7 @@
-             string name = replaceSpacesWithUnderscore(label);
-             llvm::Type* type_def = 0;
-             GlobalVariable* llvm_label = addStringConstant(label, type_def);
--       #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+       #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             Value* const_string = fBuilder->CreateConstGEP2_32(type_def, llvm_label, 0, 0);
-        #else
-             Value* const_string = fBuilder->CreateConstGEP2_32(llvm_label, 0, 0);
-@@ -1116,7 +1116,7 @@
- 
-             // Generates access to zone
-             int field_index = fDSPFieldsNames[zone];
--        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             Value* zone_ptr = fBuilder->CreateStructGEP(0, dsp, field_index);
-             Value* fun_args[] = { fUIInterface_ptr, const_string, zone_ptr };
-             CallInst* call_inst = fBuilder->CreateCall(mth, fun_args);
-@@ -1153,7 +1153,7 @@
-             string name = replaceSpacesWithUnderscore(label);
-             llvm::Type* type_def = 0;
-             GlobalVariable* llvm_label = addStringConstant(label, type_def);
--       #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+       #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             Value* const_string = fBuilder->CreateConstGEP2_32(type_def, llvm_label, 0, 0);
-        #else
-             Value* const_string = fBuilder->CreateConstGEP2_32(llvm_label, 0, 0);
-@@ -1166,7 +1166,7 @@
- 
-             // Generates access to zone
-             int field_index = fDSPFieldsNames[zone];
--        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             Value* zone_ptr = fBuilder->CreateStructGEP(0, dsp, field_index);
-         #else
-             Value* zone_ptr = fBuilder->CreateStructGEP(dsp, field_index);
-@@ -1213,7 +1213,7 @@
-             string name = replaceSpacesWithUnderscore(label);
-             llvm::Type* type_def = 0;
-             GlobalVariable* llvm_label = addStringConstant(label, type_def);
--       #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+       #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             Value* const_string = fBuilder->CreateConstGEP2_32(type_def, llvm_label, 0, 0);
-        #else
-             Value* const_string = fBuilder->CreateConstGEP2_32(llvm_label, 0, 0);
-@@ -1227,7 +1227,7 @@
- 
-             // Generates access to zone
-             int field_index = fDSPFieldsNames[zone];
--        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+        #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-             Value* zone_ptr = fBuilder->CreateStructGEP(0, dsp, field_index);
-         #else
-             Value* zone_ptr = fBuilder->CreateStructGEP(dsp, field_index);
-@@ -1378,7 +1378,7 @@
-                                                     inst->fName, fModule);
-                 function->setCallingConv(CallingConv::C);
-                 
--            #if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+            #if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-                 // In order for auto-vectorization to correctly work with vectorizable math functions
-                 if (find(gMathLibTable.begin(), gMathLibTable.end(), inst->fName) != gMathLibTable.end()) {
-                     function->setDoesNotAccessMemory();
-@@ -1499,7 +1499,7 @@
-         {
-             if (named_address->fAccess & Address::kStruct) {
-                 int field_index = fDSPFieldsNames[named_address->fName];
--            #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+            #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-                 return fBuilder->CreateStructGEP(0, getDSP(), field_index);
-             #else
-                 return fBuilder->CreateStructGEP(getDSP(), field_index);
-@@ -1672,7 +1672,7 @@
-                 
-             if (named_address->fAccess & Address::kStruct) {
-                 int field_index = fDSPFieldsNames[named_address->fName];
--            #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+            #if defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
-                 Value* store_ptr = fBuilder->CreateStructGEP(0, getDSP(), field_index);
-             #else
-                 Value* store_ptr = fBuilder->CreateStructGEP(getDSP(), field_index);
-@@ -2362,7 +2362,7 @@
-                 // Inst result for comparison
-                 return generateScalarSelect(opcode, comp_value, genInt32(fModule, 1, size), genInt32(fModule, 0, size), size);
-             } else {
--            #if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) ||defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60))
-+            #if (defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) ||defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70))
-                 LlvmValue value = fBuilder->CreateBinOp((Instruction::BinaryOps)gBinOpTable[opcode]->fLLVMFloatInst, arg1, arg2);
-                 Instruction* inst = cast<Instruction>(value);
-                 inst->setMetadata(LLVMContext::MD_fpmath, fBuilder->getDefaultFPMathTag());
-diff -ruN faust-2.5.23/compiler/signals/binop.cpp faust-2.5.23-b/compiler/signals/binop.cpp
---- faust-2.5.23/compiler/signals/binop.cpp	2018-03-06 10:39:29.000000000 +0100
-+++ faust-2.5.23-b/compiler/signals/binop.cpp	2018-09-20 23:42:17.064972726 +0200
-@@ -32,7 +32,7 @@
- 
- #if LLVM_BUILD
- 
--#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60)
-+#if defined(LLVM_33) || defined(LLVM_34) || defined(LLVM_35) || defined(LLVM_36) || defined(LLVM_37) || defined(LLVM_38) || defined(LLVM_39) || defined(LLVM_40) || defined(LLVM_50) || defined(LLVM_60) || defined(LLVM_70)
- #include <llvm/IR/Instructions.h>
- #else
- #include <llvm/Instructions.h>



More information about the arch-commits mailing list