JIT: upgrade LLVM version to 3.7 07/17207/2
Calixte DENIZET [Tue, 15 Sep 2015 13:22:20 +0000 (15:22 +0200)]
Change-Id: I8f240b69d45f4c40ba243f7297f10bd5d8dd7b0f

97 files changed:
scilab/Makefile.in
scilab/aclocal.m4
scilab/configure
scilab/contrib/Makefile.in
scilab/desktop/Makefile.in
scilab/desktop/images/icons/Makefile.in
scilab/m4/llvm.m4
scilab/modules/Makefile.in
scilab/modules/action_binding/Makefile.in
scilab/modules/api_scilab/Makefile.in
scilab/modules/arnoldi/Makefile.in
scilab/modules/ast/ast.vcxproj
scilab/modules/ast/includes/ast/debugvisitor.hxx
scilab/modules/ast/includes/jit/JITVisitor.hxx
scilab/modules/ast/includes/jit/ScilabJITEventListener.hxx
scilab/modules/ast/src/cpp/ast/debugvisitor.cpp
scilab/modules/ast/src/cpp/jit/JITForExp.cpp
scilab/modules/ast/src/cpp/jit/JITVisitor.cpp
scilab/modules/ast/src/cpp/jit/JITZeros.cpp
scilab/modules/ast/src/cpp/jit/ScilabJITEventListener.cpp
scilab/modules/ast/src/cpp/jit/jit_windows.cpp
scilab/modules/atoms/Makefile.in
scilab/modules/boolean/Makefile.in
scilab/modules/cacsd/Makefile.in
scilab/modules/call_scilab/Makefile.in
scilab/modules/commons/Makefile.in
scilab/modules/compatibility_functions/Makefile.in
scilab/modules/completion/Makefile.in
scilab/modules/console/Makefile.in
scilab/modules/core/Makefile.in
scilab/modules/data_structures/Makefile.in
scilab/modules/demo_tools/Makefile.in
scilab/modules/development_tools/Makefile.in
scilab/modules/development_tools/src/fake/Makefile.in
scilab/modules/differential_equations/Makefile.in
scilab/modules/dynamic_link/Makefile.in
scilab/modules/elementary_functions/Makefile.in
scilab/modules/external_objects/Makefile.in
scilab/modules/external_objects_java/Makefile.in
scilab/modules/fftw/Makefile.in
scilab/modules/fileio/Makefile.in
scilab/modules/functions/Makefile.in
scilab/modules/functions/sci_gateway/cpp/functions_gw.vcxproj
scilab/modules/functions/src/cpp/jit_windows.cpp
scilab/modules/functions_manager/Makefile.in
scilab/modules/genetic_algorithms/Makefile.in
scilab/modules/graph/Makefile.in
scilab/modules/graphic_export/Makefile.in
scilab/modules/graphic_objects/Makefile.in
scilab/modules/graphics/Makefile.in
scilab/modules/gui/Makefile.in
scilab/modules/hdf5/Makefile.in
scilab/modules/helptools/Makefile.in
scilab/modules/history_browser/Makefile.in
scilab/modules/history_manager/Makefile.in
scilab/modules/integer/Makefile.in
scilab/modules/interpolation/Makefile.in
scilab/modules/io/Makefile.in
scilab/modules/javasci/Makefile.in
scilab/modules/jvm/Makefile.in
scilab/modules/linear_algebra/Makefile.in
scilab/modules/localization/Makefile.in
scilab/modules/m2sci/Makefile.in
scilab/modules/matio/Makefile.in
scilab/modules/mexlib/Makefile.in
scilab/modules/modules_manager/Makefile.in
scilab/modules/mpi/Makefile.in
scilab/modules/optimization/Makefile.in
scilab/modules/output_stream/Makefile.in
scilab/modules/overloading/Makefile.in
scilab/modules/parallel/Makefile.in
scilab/modules/parameters/Makefile.in
scilab/modules/polynomials/Makefile.in
scilab/modules/prebuildjava/Makefile.in
scilab/modules/preferences/Makefile.in
scilab/modules/randlib/Makefile.in
scilab/modules/renderer/Makefile.in
scilab/modules/scicos/Makefile.in
scilab/modules/scicos_blocks/Makefile.in
scilab/modules/scinotes/Makefile.in
scilab/modules/signal_processing/Makefile.in
scilab/modules/simulated_annealing/Makefile.in
scilab/modules/sound/Makefile.in
scilab/modules/sparse/Makefile.in
scilab/modules/special_functions/Makefile.in
scilab/modules/spreadsheet/Makefile.in
scilab/modules/statistics/Makefile.in
scilab/modules/string/Makefile.in
scilab/modules/tclsci/Makefile.in
scilab/modules/threads/Makefile.in
scilab/modules/time/Makefile.in
scilab/modules/types/Makefile.in
scilab/modules/ui_data/Makefile.in
scilab/modules/umfpack/Makefile.in
scilab/modules/windows_tools/Makefile.in
scilab/modules/xcos/Makefile.in
scilab/modules/xml/Makefile.in

index 68b895d..d9ef3e1 100644 (file)
@@ -803,6 +803,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 4fe0882..cc12bae 100644 (file)
@@ -422,7 +422,7 @@ AC_DEFUN([AM_GNU_GETTEXT_NEED],
 dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
 AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
 
-# iconv.m4 serial 18 (gettext-0.18.2)
+# iconv.m4 serial 19 (gettext-0.18.2)
 dnl Copyright (C) 2000-2002, 2007-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -496,27 +496,33 @@ AC_DEFUN([AM_ICONV_LINK],
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
       fi
-      AC_RUN_IFELSE(
-        [AC_LANG_SOURCE([[
+      am_cv_func_iconv_works=no
+      for ac_iconv_const in '' 'const'; do
+        AC_RUN_IFELSE(
+          [AC_LANG_PROGRAM(
+             [[
 #include <iconv.h>
 #include <string.h>
-int main ()
-{
-  int result = 0;
+
+#ifndef ICONV_CONST
+# define ICONV_CONST $ac_iconv_const
+#endif
+             ]],
+             [[int result = 0;
   /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
      returns.  */
   {
     iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
     if (cd_utf8_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
         char buf[10];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_utf8_to_88591,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 1;
@@ -529,14 +535,14 @@ int main ()
     iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
     if (cd_ascii_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\263";
+        static ICONV_CONST char input[] = "\263";
         char buf[10];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_ascii_to_88591,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 2;
@@ -548,14 +554,14 @@ int main ()
     iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
     if (cd_88591_to_utf8 != (iconv_t)(-1))
       {
-        static const char input[] = "\304";
+        static ICONV_CONST char input[] = "\304";
         static char buf[2] = { (char)0xDE, (char)0xAD };
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = 1;
         char *outptr = buf;
         size_t outbytesleft = 1;
         size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
           result |= 4;
@@ -568,14 +574,14 @@ int main ()
     iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
     if (cd_88591_to_utf8 != (iconv_t)(-1))
       {
-        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
         char buf[50];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if ((int)res > 0)
           result |= 8;
@@ -595,17 +601,14 @@ int main ()
       && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
     result |= 16;
   return result;
-}]])],
-        [am_cv_func_iconv_works=yes],
-        [am_cv_func_iconv_works=no],
-        [
-changequote(,)dnl
-         case "$host_os" in
-           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
-           *)            am_cv_func_iconv_works="guessing yes" ;;
-         esac
-changequote([,])dnl
-        ])
+]])],
+          [am_cv_func_iconv_works=yes], ,
+          [case "$host_os" in
+             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+             *)            am_cv_func_iconv_works="guessing yes" ;;
+           esac])
+        test "$am_cv_func_iconv_works" = no || break
+      done
       LIBS="$am_save_LIBS"
     ])
     case "$am_cv_func_iconv_works" in
@@ -749,7 +752,7 @@ AC_DEFUN([gt_INTL_MACOSX],
 ])
 
 # lib-link.m4 serial 26 (gettext-0.18.2)
-dnl Copyright (C) 2001-2014 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2015 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -1527,7 +1530,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
 ])
 
 # lib-prefix.m4 serial 7 (gettext-0.18)
-dnl Copyright (C) 2001-2005, 2008-2014 Free Software Foundation, Inc.
+dnl Copyright (C) 2001-2005, 2008-2015 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -1784,7 +1787,7 @@ AC_DEFUN([AM_NLS],
   AC_SUBST([USE_NLS])
 ])
 
-# po.m4 serial 22 (gettext-0.19)
+# po.m4 serial 24 (gettext-0.19)
 dnl Copyright (C) 1995-2014 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -2239,7 +2242,7 @@ AC_DEFUN([AM_XGETTEXT_OPTION],
 ])
 
 # progtest.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1996-2003, 2005, 2008-2014 Free Software Foundation, Inc.
+dnl Copyright (C) 1996-2003, 2005, 2008-2015 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
index b98c06b..97f7f7b 100755 (executable)
@@ -977,6 +977,7 @@ infodir
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -1140,6 +1141,7 @@ datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1392,6 +1394,15 @@ do
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1529,7 +1540,7 @@ fi
 for ac_var in  exec_prefix prefix bindir sbindir libexecdir datarootdir \
                datadir sysconfdir sharedstatedir localstatedir includedir \
                oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-               libdir localedir mandir
+               libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1682,6 +1693,7 @@ Fine tuning of the installation directories:
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
@@ -10656,7 +10668,7 @@ LLVM_MINOR="`echo  ${LLVM_VERSION} | sed 's/\([0-9]*\).\([0-9]*\).*/\2/'`"
 LLVM_SUBMINOR="`echo  ${LLVM_VERSION} | sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\).*/\3/'`"
 
 CHK_LLVM_MAJOR=3
-CHK_LLVM_MINOR=4
+CHK_LLVM_MINOR=7
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if LLVM is version $CHK_LLVM_MAJOR.$CHK_LLVM_MINOR or later" >&5
 $as_echo_n "checking if LLVM is version $CHK_LLVM_MAJOR.$CHK_LLVM_MINOR or later... " >&6; }
@@ -11785,7 +11797,7 @@ $as_echo "$ac_java_classpath" >&6; }
 $as_echo_n "checking to see if the java compiler works... " >&6; }
 
     cat << \EOF > conftest.java
-// #line 11788 "configure"
+// #line 11800 "configure"
 import java.util.regex.Pattern;
 
 
@@ -11872,7 +11884,7 @@ $as_echo_n "checking type of jvm... " >&6; }
     if test "x$ac_java_jvm_name" = "x" ; then
 
     cat << \EOF > conftest.java
-// #line 11875 "configure"
+// #line 11887 "configure"
 import java.util.regex.Pattern;
 
 import gnu.java.io.EncodingManager;
@@ -11956,7 +11968,7 @@ $as_echo_n "checking java API version... " >&6; }
     # The class java.nio.charset.Charset is new to 1.4
 
     cat << \EOF > conftest.java
-// #line 11959 "configure"
+// #line 11971 "configure"
 import java.util.regex.Pattern;
 
 import java.nio.charset.Charset;
@@ -12021,7 +12033,7 @@ EOF
     # The class java.lang.StringBuilder is new to 1.5
 
     cat << \EOF > conftest.java
-// #line 12024 "configure"
+// #line 12036 "configure"
 import java.util.regex.Pattern;
 
 import java.lang.StringBuilder;
@@ -12086,7 +12098,7 @@ EOF
     # The class java.util.ArrayDeque is new to 1.6
 
     cat << \EOF > conftest.java
-// #line 12089 "configure"
+// #line 12101 "configure"
 import java.util.regex.Pattern;
 
 import java.util.ArrayDeque;
@@ -12151,7 +12163,7 @@ EOF
     # The class java.nio.file.Path is new to 1.7
 
     cat << \EOF > conftest.java
-// #line 12154 "configure"
+// #line 12166 "configure"
 import java.util.regex.Pattern;
 
 import java.nio.file.Path;
@@ -12216,7 +12228,7 @@ EOF
     # The class java.util.stream.DoubleStream is new to 1.8
 
     cat << \EOF > conftest.java
-// #line 12219 "configure"
+// #line 12231 "configure"
 import java.util.regex.Pattern;
 
 import java.util.stream.DoubleStream;
@@ -13694,7 +13706,7 @@ $as_echo_n "checking jgraphx... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13697 "configure"
+// #line 13709 "configure"
 import java.util.regex.Pattern;
 
 import com.mxgraph.model.mxCell;
@@ -13801,7 +13813,7 @@ $as_echo_n "checking minimal version (2.0.0.1) of jgraphx... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 13804 "configure"
+// #line 13816 "configure"
 import java.util.regex.Pattern;
 
 import com.mxgraph.view.mxGraph;
@@ -13873,7 +13885,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 13876 "configure"
+// #line 13888 "configure"
 import java.util.regex.Pattern;
 
 import com.mxgraph.view.mxGraph;
@@ -13967,7 +13979,7 @@ $as_echo_n "checking scirenderer... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 13970 "configure"
+// #line 13982 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.scirenderer.PackageInfo;
@@ -14074,7 +14086,7 @@ $as_echo_n "checking minimal version (1.1.0) of scirenderer... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 14077 "configure"
+// #line 14089 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.scirenderer.PackageInfo;
@@ -14146,7 +14158,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 14149 "configure"
+// #line 14161 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.scirenderer.PackageInfo;
@@ -14245,7 +14257,7 @@ $as_echo_n "checking flexdock... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14248 "configure"
+// #line 14260 "configure"
 import java.util.regex.Pattern;
 
 import org.flexdock.docking.DockingManager;
@@ -14352,7 +14364,7 @@ $as_echo_n "checking minimal version (1.2.4) of flexdock... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 14355 "configure"
+// #line 14367 "configure"
 import java.util.regex.Pattern;
 
 import org.flexdock.util.Utilities;
@@ -14424,7 +14436,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 14427 "configure"
+// #line 14439 "configure"
 import java.util.regex.Pattern;
 
 import org.flexdock.util.Utilities;
@@ -14515,7 +14527,7 @@ $as_echo_n "checking looks... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14518 "configure"
+// #line 14530 "configure"
 import java.util.regex.Pattern;
 
 import com.jgoodies.looks.common.MenuItemRenderer;
@@ -14632,7 +14644,7 @@ $as_echo_n "checking jgoodies-looks... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14635 "configure"
+// #line 14647 "configure"
 import java.util.regex.Pattern;
 
 import com.jgoodies.looks.common.MenuItemRenderer;
@@ -14750,7 +14762,7 @@ $as_echo_n "checking skinlf... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14753 "configure"
+// #line 14765 "configure"
 import java.util.regex.Pattern;
 
 import com.l2fprod.util.AccessUtils;
@@ -14867,7 +14879,7 @@ $as_echo_n "checking jogl2... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 14870 "configure"
+// #line 14882 "configure"
 import java.util.regex.Pattern;
 
 import javax.media.opengl.glu.GLUnurbs;
@@ -14973,7 +14985,7 @@ $as_echo_n "checking minimal version (Specification-Version 2.2) of jogl2... " >
     if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 14976 "configure"
+// #line 14988 "configure"
 import java.util.regex.Pattern;
 
 import java.io.IOException;
@@ -15050,7 +15062,7 @@ EOF
     else
 
     cat << \EOF > conftest.java
-// #line 15053 "configure"
+// #line 15065 "configure"
 import java.util.regex.Pattern;
 
 import java.io.IOException;
@@ -15252,7 +15264,7 @@ $as_echo_n "checking gluegen2-rt... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15255 "configure"
+// #line 15267 "configure"
 import java.util.regex.Pattern;
 
 import jogamp.common.os.MachineDescriptionRuntime;
@@ -15426,7 +15438,7 @@ $as_echo_n "checking jhall... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15429 "configure"
+// #line 15441 "configure"
 import java.util.regex.Pattern;
 
 import javax.help.JHelp;
@@ -15541,7 +15553,7 @@ $as_echo_n "checking javahelp2... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15544 "configure"
+// #line 15556 "configure"
 import java.util.regex.Pattern;
 
 import javax.help.JHelp;
@@ -15659,7 +15671,7 @@ $as_echo_n "checking jrosetta-API... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15662 "configure"
+// #line 15674 "configure"
 import java.util.regex.Pattern;
 
 import com.artenum.rosetta.interfaces.core.ConsoleConfiguration;
@@ -15773,7 +15785,7 @@ $as_echo_n "checking jrosetta-api... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15776 "configure"
+// #line 15788 "configure"
 import java.util.regex.Pattern;
 
 import com.artenum.rosetta.interfaces.core.ConsoleConfiguration;
@@ -15891,7 +15903,7 @@ $as_echo_n "checking jrosetta-engine... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 15894 "configure"
+// #line 15906 "configure"
 import java.util.regex.Pattern;
 
 import com.artenum.rosetta.core.action.AbstractConsoleAction;
@@ -15997,7 +16009,7 @@ $as_echo_n "checking minimal version (1.0.4) of jrosetta-engine... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 16000 "configure"
+// #line 16012 "configure"
 import java.util.regex.Pattern;
 
 import com.artenum.rosetta.util.ConfigurationBuilder;
@@ -16069,7 +16081,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 16072 "configure"
+// #line 16084 "configure"
 import java.util.regex.Pattern;
 
 import com.artenum.rosetta.util.ConfigurationBuilder;
@@ -16162,7 +16174,7 @@ $as_echo_n "checking jeuclid-core... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16165 "configure"
+// #line 16177 "configure"
 import java.util.regex.Pattern;
 
 import net.sourceforge.jeuclid.LayoutContext;
@@ -16281,7 +16293,7 @@ $as_echo_n "checking fop... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16284 "configure"
+// #line 16296 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.fop.pdf.PDFInfo;
@@ -16405,7 +16417,7 @@ $as_echo_n "checking freehep-graphics2d... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16408 "configure"
+// #line 16420 "configure"
 import java.util.regex.Pattern;
 
 import org.freehep.graphics2d.VectorGraphics;
@@ -16522,7 +16534,7 @@ $as_echo_n "checking freehep-graphicsio-emf... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16525 "configure"
+// #line 16537 "configure"
 import java.util.regex.Pattern;
 
 import org.freehep.graphicsio.emf.EMFGraphics2D;
@@ -16639,7 +16651,7 @@ $as_echo_n "checking freehep-graphicsio... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16642 "configure"
+// #line 16654 "configure"
 import java.util.regex.Pattern;
 
 import org.freehep.graphicsio.VectorGraphicsIO;
@@ -16756,7 +16768,7 @@ $as_echo_n "checking freehep-io... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16759 "configure"
+// #line 16771 "configure"
 import java.util.regex.Pattern;
 
 import org.freehep.util.io.XMLSequence;
@@ -16873,7 +16885,7 @@ $as_echo_n "checking freehep-util... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16876 "configure"
+// #line 16888 "configure"
 import java.util.regex.Pattern;
 
 import org.freehep.util.StringUtilities;
@@ -16991,7 +17003,7 @@ $as_echo_n "checking batik-all... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 16994 "configure"
+// #line 17006 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.batik.parser.Parser;
@@ -17108,7 +17120,7 @@ $as_echo_n "checking batik... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17111 "configure"
+// #line 17123 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.batik.parser.Parser;
@@ -17215,7 +17227,7 @@ $as_echo_n "checking minimal version (1.7) of batik... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 17218 "configure"
+// #line 17230 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.batik.Version;
@@ -17287,7 +17299,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 17290 "configure"
+// #line 17302 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.batik.Version;
@@ -17378,7 +17390,7 @@ $as_echo_n "checking commons-io... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17381 "configure"
+// #line 17393 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.commons.io.output.CountingOutputStream;
@@ -17495,7 +17507,7 @@ $as_echo_n "checking xmlgraphics-commons... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17498 "configure"
+// #line 17510 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.xmlgraphics.util.Service;
@@ -17612,7 +17624,7 @@ $as_echo_n "checking avalon-framework... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17615 "configure"
+// #line 17627 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.avalon.framework.configuration.ConfigurationException;
@@ -17729,7 +17741,7 @@ $as_echo_n "checking xml-apis-ext... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17732 "configure"
+// #line 17744 "configure"
 import java.util.regex.Pattern;
 
 import org.w3c.dom.svg.SVGDocument;
@@ -17846,7 +17858,7 @@ $as_echo_n "checking xml-commons-apis-ext... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17849 "configure"
+// #line 17861 "configure"
 import java.util.regex.Pattern;
 
 import org.w3c.dom.svg.SVGDocument;
@@ -17967,7 +17979,7 @@ $as_echo_n "checking commons-logging... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 17970 "configure"
+// #line 17982 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.commons.logging.LogFactory;
@@ -18084,7 +18096,7 @@ $as_echo_n "checking jlatexmath... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18087 "configure"
+// #line 18099 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.jlatexmath.TeXFormula;
@@ -18191,7 +18203,7 @@ $as_echo_n "checking minimal version (1.0.3) of jlatexmath... " >&6; }
    if test "x" == "x"; then
 
     cat << \EOF > conftest.java
-// #line 18194 "configure"
+// #line 18206 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.jlatexmath.TeXFormula;
@@ -18263,7 +18275,7 @@ EOF
    else
 
     cat << \EOF > conftest.java
-// #line 18266 "configure"
+// #line 18278 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.jlatexmath.TeXFormula;
@@ -18354,7 +18366,7 @@ $as_echo_n "checking jlatexmath-fop... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18357 "configure"
+// #line 18369 "configure"
 import java.util.regex.Pattern;
 
 import org.scilab.forge.jlatexmath.fop.JLaTeXMathObj;
@@ -18477,7 +18489,7 @@ $as_echo_n "checking checkstyle... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18480 "configure"
+// #line 18492 "configure"
 import java.util.regex.Pattern;
 
 import com.puppycrawl.tools.checkstyle.CheckStyleTask;
@@ -18594,7 +18606,7 @@ $as_echo_n "checking commons-beanutils... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18597 "configure"
+// #line 18609 "configure"
 import java.util.regex.Pattern;
 
 import org.apache.commons.beanutils.Converter;
@@ -18711,7 +18723,7 @@ $as_echo_n "checking antlr... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18714 "configure"
+// #line 18726 "configure"
 import java.util.regex.Pattern;
 
 import antlr.TokenStreamException;
@@ -18828,7 +18840,7 @@ $as_echo_n "checking junit4... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18831 "configure"
+// #line 18843 "configure"
 import java.util.regex.Pattern;
 
 import org.junit.Assert;
@@ -18942,7 +18954,7 @@ $as_echo_n "checking junit... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 18945 "configure"
+// #line 18957 "configure"
 import java.util.regex.Pattern;
 
 import org.junit.Assert;
@@ -19063,7 +19075,7 @@ $as_echo_n "checking cobertura... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 19066 "configure"
+// #line 19078 "configure"
 import java.util.regex.Pattern;
 
 import net.sourceforge.cobertura.merge.Main;
@@ -19180,7 +19192,7 @@ $as_echo_n "checking asm3... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 19183 "configure"
+// #line 19195 "configure"
 import java.util.regex.Pattern;
 
 import org.objectweb.asm.Type;
@@ -19294,7 +19306,7 @@ $as_echo_n "checking asm... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 19297 "configure"
+// #line 19309 "configure"
 import java.util.regex.Pattern;
 
 import org.objectweb.asm.Type;
@@ -19411,7 +19423,7 @@ $as_echo_n "checking ecj... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 19414 "configure"
+// #line 19426 "configure"
 import java.util.regex.Pattern;
 
 import org.eclipse.jdt.core.compiler.batch.BatchCompiler;
@@ -22038,36 +22050,42 @@ else
       if test $am_cv_lib_iconv = yes; then
         LIBS="$LIBS $LIBICONV"
       fi
-      if test "$cross_compiling" = yes; then :
-
-         case "$host_os" in
-           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
-           *)            am_cv_func_iconv_works="guessing yes" ;;
-         esac
-
+      am_cv_func_iconv_works=no
+      for ac_iconv_const in '' 'const'; do
+        if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+             aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+             *)            am_cv_func_iconv_works="guessing yes" ;;
+           esac
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <iconv.h>
 #include <string.h>
-int main ()
+
+#ifndef ICONV_CONST
+# define ICONV_CONST $ac_iconv_const
+#endif
+
+int
+main ()
 {
-  int result = 0;
+int result = 0;
   /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
      returns.  */
   {
     iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
     if (cd_utf8_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */
         char buf[10];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_utf8_to_88591,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 1;
@@ -22080,14 +22098,14 @@ int main ()
     iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
     if (cd_ascii_to_88591 != (iconv_t)(-1))
       {
-        static const char input[] = "\263";
+        static ICONV_CONST char input[] = "\263";
         char buf[10];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_ascii_to_88591,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res == 0)
           result |= 2;
@@ -22099,14 +22117,14 @@ int main ()
     iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
     if (cd_88591_to_utf8 != (iconv_t)(-1))
       {
-        static const char input[] = "\304";
+        static ICONV_CONST char input[] = "\304";
         static char buf[2] = { (char)0xDE, (char)0xAD };
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = 1;
         char *outptr = buf;
         size_t outbytesleft = 1;
         size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
           result |= 4;
@@ -22119,14 +22137,14 @@ int main ()
     iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
     if (cd_88591_to_utf8 != (iconv_t)(-1))
       {
-        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
         char buf[50];
-        const char *inptr = input;
+        ICONV_CONST char *inptr = input;
         size_t inbytesleft = strlen (input);
         char *outptr = buf;
         size_t outbytesleft = sizeof (buf);
         size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
+                            &inptr, &inbytesleft,
                             &outptr, &outbytesleft);
         if ((int)res > 0)
           result |= 8;
@@ -22146,17 +22164,20 @@ int main ()
       && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
     result |= 16;
   return result;
+
+  ;
+  return 0;
 }
 _ACEOF
 if ac_fn_c_try_run "$LINENO"; then :
   am_cv_func_iconv_works=yes
-else
-  am_cv_func_iconv_works=no
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
   conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+        test "$am_cv_func_iconv_works" = no || break
+      done
       LIBS="$am_save_LIBS"
 
 fi
@@ -23668,7 +23689,7 @@ CHK_EIGEN_MINOR=0
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Eigen is version $CHK_EIGEN_WORLD.$CHK_EIGEN_MAJOR.$CHK_EIGEN_MINOR or later" >&5
 $as_echo_n "checking if Eigen is version $CHK_EIGEN_WORLD.$CHK_EIGEN_MAJOR.$CHK_EIGEN_MINOR or later... " >&6; }
 cat > conftest.$ac_ext <<EOF
-#line 23671 "configure"
+#line 23692 "configure"
 #include "confdefs.h"
 
 #include "$PATH_TO_EIGEN/Eigen/Sparse"
@@ -28259,7 +28280,7 @@ CPPFLAGS="$CPPFLAGS -I$CHK_TCL_INCLUDE_PATH"
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later" >&5
 $as_echo_n "checking if tcl is version $CHK_TCL_MAJOR.$CHK_TCL_MINOR or later... " >&6; }
 cat > conftest.$ac_ext <<EOF
-#line 28262 "configure"
+#line 28283 "configure"
 #include "confdefs.h"
 
 #include "$CHK_TCL_INCLUDE_PATH/$CHK_TCL_INC_NAME"
@@ -28570,7 +28591,7 @@ CPPFLAGS="$CPPFLAGS $TCL_INC_PATH -I$CHK_TK_INCLUDE_PATH $X_CFLAGS"
 $as_echo_n "checking if tk is version $CHK_TK_MAJOR.$CHK_TK_MINOR or later... " >&6; }
 
 cat > conftest.$ac_ext <<EOF
-#line 28573 "configure"
+#line 28594 "configure"
 #include "confdefs.h"
 
 #include "$CHK_TK_INCLUDE_PATH/$CHK_TK_INC_NAME"
@@ -29159,7 +29180,7 @@ $as_echo_n "checking saxon9he... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 29162 "configure"
+// #line 29183 "configure"
 import java.util.regex.Pattern;
 
 import net.sf.saxon.Version;
@@ -29274,7 +29295,7 @@ $as_echo_n "checking saxon... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 29277 "configure"
+// #line 29298 "configure"
 import java.util.regex.Pattern;
 
 import net.sf.saxon.Version;
@@ -29390,7 +29411,7 @@ $as_echo_n "checking saxon... " >&6; }
             export ac_java_classpath="$jar_resolved:$ac_java_classpath"
 
     cat << \EOF > conftest.java
-// #line 29393 "configure"
+// #line 29414 "configure"
 import java.util.regex.Pattern;
 
 import com.icl.saxon.Loader;
index 55a2795..31c7da3 100644 (file)
@@ -428,6 +428,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 823231b..ae95a5a 100644 (file)
@@ -522,6 +522,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index dcbeb6a..1a26dc1 100644 (file)
@@ -461,6 +461,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 3a6e24d..4a1ede1 100644 (file)
@@ -41,7 +41,7 @@ LLVM_MINOR="`echo  ${LLVM_VERSION} | sed 's/\([[0-9]]*\).\([[0-9]]*\).*/\2/'`"
 LLVM_SUBMINOR="`echo  ${LLVM_VERSION} | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\3/'`"
 
 CHK_LLVM_MAJOR=3
-CHK_LLVM_MINOR=4
+CHK_LLVM_MINOR=7
 
 AC_MSG_CHECKING([if LLVM is version $CHK_LLVM_MAJOR.$CHK_LLVM_MINOR or later])
 
index 67cd2ae..0de2480 100644 (file)
@@ -600,6 +600,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 151b86e..a59e41b 100644 (file)
@@ -584,6 +584,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 7413b75..acd2ff5 100644 (file)
@@ -564,6 +564,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index bb1489a..56194ec 100644 (file)
@@ -543,6 +543,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 5f506d7..b5b58a6 100644 (file)
@@ -210,7 +210,7 @@ lib /DEF:"$(ProjectDir)string_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <AdditionalIncludeDirectories>includes/ast;includes/parse;includes/exps;includes/symbol;includes/types;includes/system_env;includes/operations;includes/jit;includes/analysis;../../libs/intl;../../libs/Eigen/includes;../functions_manager/includes;../core/includes;../elementary_functions/includes;../ast/includes/operations;../localization/includes;../output_stream/includes;../string/includes;../api_scilab/includes;../threads/includes;../console/includes;../graphic_objects/includes;../dynamic_link/includes;../io/includes;../fileio/includes;../special_functions/src/cpp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;AST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <PrecompiledHeader>
       </PrecompiledHeader>
index bd764c7..2196627 100644 (file)
@@ -148,11 +148,11 @@ protected:
     std::wostream * ostr;
 
 private:
-    
-    void DEBUG_START_NODE(const ast::Ast & e);
-    void DEBUG_END_NODE(void);
-    void DEBUG(wstring str);
-    void DEBUG(wstring str, const Exp & e);
+
+    void START_NODE(const ast::Ast & e);
+    void END_NODE(void);
+    void print(wstring str);
+    void print(wstring str, const Exp & e);
 };
 }
 #endif // !AST_DEBUGVISITOR_HXX
index a39b780..5679f38 100644 (file)
 #include "llvm/IR/IRBuilder.h"
 #include "llvm/IR/Module.h"
 #include "llvm/Support/TargetSelect.h"
+#include "llvm/Target/TargetMachine.h"
+#include "llvm/Target/TargetOptions.h"
+#include "llvm/Support/TargetRegistry.h"
 //#include "llvm/Support/raw_ostream.h"
 
+#if defined(LLVM_VERSION_MAJOR) && LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
+#include "llvm/IR/LegacyPassManager.h"
+#else
 #include "llvm/PassManager.h"
+#endif
+
 #include "llvm/Analysis/Passes.h"
 #include "llvm/Transforms/Scalar.h"
 #include "llvm/Transforms/Vectorize.h"
 namespace jit
 {
 
-    class JITScilabVal;
-    typedef std::shared_ptr<JITScilabVal> JITScilabPtr;
+#if defined(LLVM_VERSION_MAJOR) && LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
+typedef llvm::legacy::FunctionPassManager LLVM_FunctionPassManager;
+#else
+typedef llvm::FunctionPassManager LLVM_FunctionPassManager;
+#endif
 
-    class EXTERN_AST JITVisitor : public ast::ConstVisitor, public analysis::FBlockEmittedListener
-    {
+class JITScilabVal;
+typedef std::shared_ptr<JITScilabVal> JITScilabPtr;
+
+class EXTERN_AST JITVisitor : public ast::ConstVisitor, public analysis::FBlockEmittedListener
+{
 
-        struct OutContainer
+    struct OutContainer
+    {
+        union Value
         {
-            union Value
-            {
-                int8_t i8;
-                int16_t i16;
-                int32_t i32;
-                int64_t i64;
-                uint8_t ui8;
-                uint16_t ui16;
-                uint32_t ui32;
-                uint64_t ui64;
-                double dbl;
-               int32_t boolean;
-                double cpx[2];
-                void * ptr;
-            };
-
-            analysis::TIType::Type type;
-            Value data;
-            uint64_t rows;
-            uint64_t cols;
-            uint64_t refcount;
-
-            OutContainer(const analysis::TIType::Type _type) : type(_type) { }
+            int8_t i8;
+            int16_t i16;
+            int32_t i32;
+            int64_t i64;
+            uint8_t ui8;
+            uint16_t ui16;
+            uint32_t ui32;
+            uint64_t ui64;
+            double dbl;
+            int32_t boolean;
+            double cpx[2];
+            void * ptr;
         };
 
-        typedef std::map<symbol::Symbol, JITScilabPtr> JITSymbolMap;
-
-        static const bool __init__;
-
-        const analysis::AnalysisVisitor & analysis;
-
-        std::string err;
-        llvm::LLVMContext & context;
-        llvm::Module * module;
-       llvm::TargetMachine * target;
-        llvm::ExecutionEngine * engine;
-        llvm::FunctionPassManager FPM;
-        llvm::Function * function;
-        llvm::IRBuilder<> builder;
-        llvm::Type * uintptrType;
-        llvm::Type * dblTy;
-        llvm::Type * int8Ty;
-        llvm::Type * int16Ty;
-        llvm::Type * int32Ty;
-        llvm::Type * int64Ty;
-        llvm::Type * int1Ty;
-        llvm::Type * voidTy;
-        llvm::Type * dblPtrTy;
-        llvm::Type * int8PtrTy;
-        llvm::Type * int16PtrTy;
-        llvm::Type * int32PtrTy;
-        llvm::Type * int64PtrTy;
-        llvm::Type * int1PtrTy;
-       llvm::BasicBlock * entryBlock;
-       llvm::BasicBlock * mainBlock;
-        llvm::BasicBlock * returnBlock;
-       llvm::BasicBlock * errorBlock;
-
-        JITScilabPtr _result;
-       JITScilabPtr cpx_rvalue;
-        std::vector<JITScilabPtr> multipleLHS;
-        JITSymbolMap variables;
-        std::vector<JITScilabPtr> temps;
-       std::unordered_map<std::string, llvm::GlobalVariable *> globals;
-       std::stack<std::pair<llvm::BasicBlock * ,llvm::BasicBlock *>> blocks;
-        std::queue<analysis::FunctionBlock *> fblocks;
-        std::unordered_map<std::string, analysis::FunctionBlock *> mapNameFBlock;
-       std::unordered_map<std::string, llvm::Value *> specialVars;
-       
-    public:
-       
-       JITAddition addition;
-       JITSubtraction subtraction;
-       JITOpposite opposite;
-        JITMultiplication multiplication;
-       JITRDivision rdivision;
-       JITPower power;
-       JITEquality equality;
-       JITNotEquality not_equality;
-       JITLowerThan lower_than;
-       JITGreaterThan greater_than;
-       JITLowerOrEq lower_or_eq;
-       JITGreaterOrEq greater_or_eq;
-       JITNegation negation;
-       JITShortcutEq shortcut_eq;
-       JITShortcutNe shortcut_ne;
-       JITShortcutLt shortcut_lt;
-       JITShortcutGt shortcut_gt;
-       JITShortcutLe shortcut_le;
-       JITShortcutGe shortcut_ge;
-       
-        JITVisitor(const analysis::AnalysisVisitor & _analysis);
-       virtual ~JITVisitor();
-
-        void run();
-
-        void dump() const;
-
-        template<typename T>
-            inline llvm::Type * getTy() const
-        {
-            if (std::is_const<T>::value)
-            {
-                return getTy<typename std::remove_const<T>::type>();
-            }
-            else if (std::is_pointer<T>::value && std::is_pointer<typename std::remove_pointer<T>::type>::value)
-            {
-                return llvm::PointerType::getUnqual(getTy<typename std::remove_pointer<T>::type>());
-            }
+        analysis::TIType::Type type;
+        Value data;
+        uint64_t rows;
+        uint64_t cols;
+        uint64_t refcount;
 
-            return nullptr;
-        }
+        OutContainer(const analysis::TIType::Type _type) : type(_type) { }
+    };
 
-        inline llvm::Type * getTy(const analysis::TIType & ty, const unsigned char level = 0) const
+    typedef std::map<symbol::Symbol, JITScilabPtr> JITSymbolMap;
+
+    static const bool __init__;
+
+    const analysis::AnalysisVisitor & analysis;
+
+    std::string err;
+    llvm::LLVMContext & context;
+    llvm::Module * module;
+    llvm::TargetMachine * target;
+    llvm::ExecutionEngine * engine;
+    LLVM_FunctionPassManager FPM;
+    llvm::Function * function;
+    llvm::IRBuilder<> builder;
+    llvm::Type * uintptrType;
+    llvm::Type * dblTy;
+    llvm::Type * int8Ty;
+    llvm::Type * int16Ty;
+    llvm::Type * int32Ty;
+    llvm::Type * int64Ty;
+    llvm::Type * int1Ty;
+    llvm::Type * voidTy;
+    llvm::Type * dblPtrTy;
+    llvm::Type * int8PtrTy;
+    llvm::Type * int16PtrTy;
+    llvm::Type * int32PtrTy;
+    llvm::Type * int64PtrTy;
+    llvm::Type * int1PtrTy;
+    llvm::BasicBlock * entryBlock;
+    llvm::BasicBlock * mainBlock;
+    llvm::BasicBlock * returnBlock;
+    llvm::BasicBlock * errorBlock;
+
+    JITScilabPtr _result;
+    JITScilabPtr cpx_rvalue;
+    std::vector<JITScilabPtr> multipleLHS;
+    JITSymbolMap variables;
+    std::vector<JITScilabPtr> temps;
+    std::unordered_map<std::string, llvm::GlobalVariable *> globals;
+    std::stack<std::pair<llvm::BasicBlock * , llvm::BasicBlock *>> blocks;
+    std::queue<analysis::FunctionBlock *> fblocks;
+    std::unordered_map<std::string, analysis::FunctionBlock *> mapNameFBlock;
+    std::unordered_map<std::string, llvm::Value *> specialVars;
+
+public:
+
+    JITAddition addition;
+    JITSubtraction subtraction;
+    JITOpposite opposite;
+    JITMultiplication multiplication;
+    JITRDivision rdivision;
+    JITPower power;
+    JITEquality equality;
+    JITNotEquality not_equality;
+    JITLowerThan lower_than;
+    JITGreaterThan greater_than;
+    JITLowerOrEq lower_or_eq;
+    JITGreaterOrEq greater_or_eq;
+    JITNegation negation;
+    JITShortcutEq shortcut_eq;
+    JITShortcutNe shortcut_ne;
+    JITShortcutLt shortcut_lt;
+    JITShortcutGt shortcut_gt;
+    JITShortcutLe shortcut_le;
+    JITShortcutGe shortcut_ge;
+
+    JITVisitor(const analysis::AnalysisVisitor & _analysis);
+    virtual ~JITVisitor();
+
+    void run();
+
+    void dump() const;
+
+    template<typename T>
+    inline llvm::Type * getTy() const
+    {
+        if (std::is_const<T>::value)
         {
-            llvm::Type * lty;
+            return getTy<typename std::remove_const<T>::type>();
+        }
+        else if (std::is_pointer<T>::value && std::is_pointer<typename std::remove_pointer<T>::type>::value)
+        {
+            return llvm::PointerType::getUnqual(getTy<typename std::remove_pointer<T>::type>());
+        }
 
-            switch (ty.type)
-            {
+        return nullptr;
+    }
+
+    inline llvm::Type * getTy(const analysis::TIType & ty, const unsigned char level = 0) const
+    {
+        llvm::Type * lty;
+
+        switch (ty.type)
+        {
             case analysis::TIType::BOOLEAN:
                 lty = int32Ty;
                 break;
@@ -217,525 +231,525 @@ namespace jit
                 break;
             default:
                 lty = voidTy;
-            }
-
-            for (unsigned char i = 0; i < level; ++i)
-            {
-                lty = llvm::PointerType::getUnqual(lty);
-            }
-
-            return lty;
-        }
-
-        inline unsigned int getTySizeInBytes(const llvm::Type * ty) const
-        {
-            return ty->isPointerTy() ? sizeof(void *) : (ty->getPrimitiveSizeInBits() / 8);
-        }
-
-        inline unsigned int getTySizeInBytes(const llvm::Value * v) const
-        {
-            return getTySizeInBytes(v->getType());
-        }
-
-        template<typename T>
-            inline unsigned int getTySizeInBytes() const
-        {
-            return getTy<T>()->isPointerTy() ? sizeof(void *) : (getTy<T>()->getPrimitiveSizeInBits() / 8);
-        }
-
-        inline llvm::LLVMContext & getContext()
-        {
-            return context;
-        }
-
-        inline llvm::Module & getModule()
-        {
-            return *module;
-        }
-
-        inline llvm::IRBuilder<> & getBuilder()
-        {
-            return builder;
         }
 
-        inline llvm::Function & getFunction()
+        for (unsigned char i = 0; i < level; ++i)
         {
-            return *function;
+            lty = llvm::PointerType::getUnqual(lty);
         }
 
-        inline llvm::Type * getPtrTy()
-        {
-            return uintptrType;
-        }
+        return lty;
+    }
 
-        inline llvm::Value * getPointer(void * const ptr)
-        {
-            llvm::Value * v = llvm::ConstantInt::get(uintptrType, reinterpret_cast<uintptr_t>(ptr));
-            v = builder.CreateIntToPtr(v, llvm::PointerType::getInt8PtrTy(context));
+    inline unsigned int getTySizeInBytes(const llvm::Type * ty) const
+    {
+        return ty->isPointerTy() ? sizeof(void *) : (ty->getPrimitiveSizeInBits() / 8);
+    }
 
-            return v;
-        }
+    inline unsigned int getTySizeInBytes(const llvm::Value * v) const
+    {
+        return getTySizeInBytes(v->getType());
+    }
 
-        inline llvm::Value * getPointer(void * const ptr, llvm::Type * const type)
-        {
-            llvm::Value * v = llvm::ConstantInt::get(uintptrType, reinterpret_cast<uintptr_t>(ptr));
-            v = builder.CreateIntToPtr(v, type);
+    template<typename T>
+    inline unsigned int getTySizeInBytes() const
+    {
+        return getTy<T>()->isPointerTy() ? sizeof(void *) : (getTy<T>()->getPrimitiveSizeInBits() / 8);
+    }
 
-            return v;
-        }
+    inline llvm::LLVMContext & getContext()
+    {
+        return context;
+    }
 
-        template<typename T>
-            inline llvm::Value * getValue(const T val, const bool allocated = false, const std::string & name = "")
-        {
-            if (allocated)
-            {
-                return getAlloca<T>(val, name);
-            }
-            else
-            {
-                return getConstant<T>(val, name);
-            }
-        }
+    inline llvm::Module & getModule()
+    {
+        return *module;
+    }
 
-        inline llvm::Value * getValue(llvm::Value * val, const bool allocated = false, const std::string & name = "")
-        {
-            if (allocated)
-            {
-                return getAlloca(val, name);
-            }
-            else
-            {
-                return val;
-            }
-        }
+    inline llvm::IRBuilder<> & getBuilder()
+    {
+        return builder;
+    }
 
-        inline llvm::Value * getBool(const bool b)
-        {
-            return b ? llvm::ConstantInt::getTrue(context) : llvm::ConstantInt::getFalse(context);
-        }
+    inline llvm::Function & getFunction()
+    {
+        return *function;
+    }
 
+    inline llvm::Type * getPtrTy()
+    {
+        return uintptrType;
+    }
 
-        template<typename T, bool isPtr> struct __getConstant;
-       template<typename T> struct __getConstant<T, true>
-       {
-           inline static llvm::Value * get(JITVisitor * jit, const T val, const std::string & name = "")
-               {
-                   return jit->getPointer((void *)val, jit->getTy<T>());
-               }
-       };
-
-       template<typename T> struct __getConstant<T, false>
-       {
-           inline static llvm::Value * get(JITVisitor * jit, const T val, const std::string & name = "")
-               {
-                   return llvm::ConstantInt::get(jit->getTy<T>(), uint64_t(val), !std::is_unsigned<T>::value);
-               }
-       };
-
-       template<typename T>
-            inline llvm::Value * getConstant(const T val, const std::string & name = "")
-       {
-           return __getConstant<T, std::is_pointer<T>::value>::get(this, val, name);
-       }
-
-        template<typename T>
-            inline llvm::Value * getAlloca(const T val, const std::string & name = "")
-        {
-            llvm::AllocaInst * alloca = builder.CreateAlloca(getTy<T>(), nullptr, name);
-            alloca->setAlignment(sizeof(T));
-            builder.CreateAlignedStore(getConstant<T>(val), alloca, sizeof(T));
+    inline llvm::Value * getPointer(void * const ptr)
+    {
+        llvm::Value * v = llvm::ConstantInt::get(uintptrType, reinterpret_cast<uintptr_t>(ptr));
+        v = builder.CreateIntToPtr(v, llvm::PointerType::getInt8PtrTy(context));
 
-            return alloca;
-        }
+        return v;
+    }
 
-        template<typename T>
-            inline llvm::Value * getAlloca(const std::string & name = "")
-        {
-            llvm::AllocaInst * alloca = builder.CreateAlloca(getTy<T>(), nullptr, name);
-            alloca->setAlignment(sizeof(T));
+    inline llvm::Value * getPointer(void * const ptr, llvm::Type * const type)
+    {
+        llvm::Value * v = llvm::ConstantInt::get(uintptrType, reinterpret_cast<uintptr_t>(ptr));
+        v = builder.CreateIntToPtr(v, type);
 
-            return alloca;
-        }
+        return v;
+    }
 
-        inline llvm::Value * getAlloca(llvm::Value * val, llvm::Type * type, int type_size, const std::string & name = "")
+    template<typename T>
+    inline llvm::Value * getValue(const T val, const bool allocated = false, const std::string & name = "")
+    {
+        if (allocated)
         {
-            llvm::AllocaInst * alloca = builder.CreateAlloca(type, nullptr, name);
-            alloca->setAlignment(type_size);
-            builder.CreateAlignedStore(val, alloca, type_size);
-
-            return alloca;
+            return getAlloca<T>(val, name);
         }
-
-        inline llvm::Value * getAlloca(llvm::Value * val, const std::string & name = "")
+        else
         {
-            return getAlloca(val, val->getType(), getTySizeInBytes(val->getType()), name);
+            return getConstant<T>(val, name);
         }
+    }
 
-        inline JITScilabPtr & getResult()
+    inline llvm::Value * getValue(llvm::Value * val, const bool allocated = false, const std::string & name = "")
+    {
+        if (allocated)
         {
-            return  _result;
+            return getAlloca(val, name);
         }
-
-        inline void setResult(JITScilabPtr & val)
+        else
         {
-            _result = val;
+            return val;
         }
+    }
 
-        inline void setResult(JITScilabPtr && val)
-        {
-            _result = val;
-        }
+    inline llvm::Value * getBool(const bool b)
+    {
+        return b ? llvm::ConstantInt::getTrue(context) : llvm::ConstantInt::getFalse(context);
+    }
 
-       inline JITScilabPtr & getTemp(const int32_t id)
-       {
-           if (id >= 0 && id < temps.size())
-           {
-               return temps[id];
-           }
-           else
-           {
-               assert(false && " Bad temp id...");
-           }
-       }
-       
-       inline void addGlobal(const std::string & name, llvm::GlobalVariable * gv)
-       {
-           globals.emplace(name, gv);
-       }
-       
-       inline llvm::GlobalVariable * getGlobal(const std::string & name)
-       {
-           auto i = globals.find(name);
-           if (i == globals.end())
-           {
-               return nullptr;
-           }
-           return i->second;
-       }
-
-       inline llvm::Value * getSpecialVar(const std::string & name) const
-       {
-           auto i = specialVars.find(name);
-           if (i != specialVars.end())
-           {
-               return i->second;
-           }
-           return nullptr;
-       }
-
-       inline void addSpecialVar(const std::string & name, llvm::Value * val)
-       {
-           specialVars.emplace(name, val);
-       }
-
-       inline llvm::BasicBlock * getEntryBlock()
-       {
-           return entryBlock;
-       }
-
-        void makeCall(const std::wstring & name, const std::vector<types::InternalType *> & in, std::vector<types::InternalType *> & out);
-
-        JITScilabPtr getScalar(llvm::Value * const value, const analysis::TIType::Type ty, const bool alloc = false, const std::string & name = "");
-       JITScilabPtr getScalar(llvm::Value * const re, llvm::Value * const im, const analysis::TIType::Type ty, const bool alloc = false, const std::string & name = "");
-       JITScilabPtr & getCpxRValue();
-
-       llvm::FunctionType * getFunctionType(const analysis::TIType & out, const std::vector<const analysis::TIType *> & types);
-
-    private:
-       
-        inline std::vector<JITScilabPtr> & getLHSContainer()
-        {
-            return multipleLHS;
-        }
 
-        inline void callThrow(const char * msg)
+    template<typename T, bool isPtr> struct __getConstant;
+    template<typename T> struct __getConstant<T, true>
+    {
+        inline static llvm::Value * get(JITVisitor * jit, const T val, const std::string & name = "")
         {
-            /*llvm::Value * _msg = builder.CreateGlobalStringPtr(llvm::StringRef(msg));
-              llvm::Value * v = llvm::ConstantInt::get(uintptrType, reinterpret_cast<uintptr_t>(&jit::jit_throw));
-              v = builder.CreateIntToPtr(v, getLLVMPtrFuncTy<void, char *>(context));
-              builder.CreateCall(v, _msg);*/
+            return jit->getPointer((void *)val, jit->getTy<T>());
         }
+    };
 
-        template<typename T, typename U>
-            inline void makeArg(std::vector<llvm::Value *> & args, types::GenericType * pGT)
+    template<typename T> struct __getConstant<T, false>
+    {
+        inline static llvm::Value * get(JITVisitor * jit, const T val, const std::string & name = "")
         {
-            T * x = (T *)static_cast<U *>(pGT)->get();
-            int64_t r = static_cast<U *>(pGT)->getRows();
-            int64_t c = static_cast<U *>(pGT)->getCols();
-            int64_t refc = static_cast<U *>(pGT)->getRef();
-            args.emplace_back(getValue(x));
-            args.emplace_back(getValue(r));
-            args.emplace_back(getValue(c));
-            args.emplace_back(getValue(refc));
+            return llvm::ConstantInt::get(jit->getTy<T>(), uint64_t(val), !std::is_unsigned<T>::value);
         }
-
-        void visit(ast::CallExp & e, const unsigned int lhs);
-        void visit(const ast::CallExp & e);
-
-        void visit(const ast::SimpleVar & e);
-        void visit(const ast::DollarVar & e);
-        void visit(const ast::ColonVar & e);
-        void visit(const ast::ArrayListVar & e);
-        void visit(const ast::DoubleExp & e);
-        void visit(const ast::BoolExp & e);
-        void visit(const ast::StringExp & e);
-        void visit(const ast::NilExp & e);
-        void visit(const ast::CellCallExp & e);
-        void visit(const ast::OpExp & e);
-        void visit(const ast::LogicalOpExp & e);
-        void visit(const ast::AssignExp & e);
-        void visit(const ast::IfExp & e);
-        void visit(const ast::WhileExp & e);
-        void visit(const ast::ForExp & e);
-        void visit(const ast::BreakExp & e);
-        void visit(const ast::ContinueExp & e);
-        void visit(const ast::TryCatchExp & e);
-        void visit(const ast::SelectExp & e);
-       void visit(const ast::IntSelectExp & e);
-       void visit(const ast::SmallIntSelectExp & e);
-       void visit(const ast::TableIntSelectExp & e);
-       void visit(const ast::MapIntSelectExp & e);
-        void visit(const ast::CaseExp & e);
-        void visit(const ast::ReturnExp & e);
-        void visit(const ast::FieldExp & e);
-        void visit(const ast::NotExp & e);
-        void visit(const ast::TransposeExp & e);
-        void visit(const ast::MatrixExp & e);
-        void visit(const ast::MatrixLineExp & e);
-        void visit(const ast::CellExp & e);
-        void visit(const ast::SeqExp & e);
-        void visit(const ast::ArrayListExp & e);
-        void visit(const ast::AssignListExp & e);
-        void visit(const ast::VarDec & e);
-        void visit(const ast::FunctionDec & e);
-        void visit(const ast::ListExp & e);
-
-        void visit(const ast::OptimizedExp & e) { }
-        void visit(const ast::DAXPYExp & e) { }
-        void visit(const ast::MemfillExp & e) { }
-        void visit(const ast::StringSelectExp & e) { }
-        void visit(const ast::CommentExp & e) { }
-
-        void action(analysis::FunctionBlock & fblock);
-        llvm::Type * getType(const analysis::TIType::Type ty, const bool scalar);
-        JITScilabPtr getScalar(const analysis::TIType::Type ty, const bool isAnInt, const std::string & name);
-       JITScilabPtr getScalar(const analysis::TypeLocal & ty, const std::string & name);
-        JITScilabPtr getMatrix(llvm::Value * const value, llvm::Value * const rows, llvm::Value * const cols, llvm::Value * const refCount, const analysis::TIType::Type ty, const bool alloc, const std::string & name);
-        JITScilabPtr getMatrix(const analysis::TIType::Type ty, const std::string & name, const bool init = false);
-       JITScilabPtr getMatrix(const analysis::TypeLocal & ty, const std::string & name, const bool init = false);
-        llvm::Value * getPtrFromIndex(const ast::CallExp & ce);
-       void runOptimizationPasses();
-       void compileModule();
-       void makeSwitch(const ast::IntSelectExp & e, const std::map<int64_t, ast::Exp *> & map);
-       void CreateBr(llvm::BasicBlock * bb);
-       void closeEntryBlock();
-
-        static bool InitializeLLVM();
-        static llvm::FunctionPassManager initFPM(llvm::Module * module, llvm::ExecutionEngine * engine, llvm::TargetMachine * target);
-        static llvm::Type * getPtrAsIntTy(llvm::Module & module, llvm::LLVMContext & ctxt);
-        static llvm::ExecutionEngine * InitializeEngine(llvm::Module * module, llvm::TargetMachine ** target);
     };
 
-    template<>
-    inline llvm::Value * JITVisitor::getConstant<double>(const double val, const std::string & name)
+    template<typename T>
+    inline llvm::Value * getConstant(const T val, const std::string & name = "")
     {
-        return llvm::ConstantFP::get(context, llvm::APFloat(val));
+        return __getConstant<T, std::is_pointer<T>::value>::get(this, val, name);
     }
 
-    template<>
-    inline llvm::Value * JITVisitor::getConstant<std::complex<double>>(const std::complex<double> val, const std::string & name)
+    template<typename T>
+    inline llvm::Value * getAlloca(const T val, const std::string & name = "")
     {
-       llvm::Constant * re = llvm::ConstantFP::get(context, llvm::APFloat(val.real()));
-       llvm::Constant * im = llvm::ConstantFP::get(context, llvm::APFloat(val.imag()));
-        llvm::Constant * arr[] = { re, im };
-        return llvm::ConstantVector::get(llvm::ArrayRef<llvm::Constant *>(arr));
-    }
+        llvm::AllocaInst * alloca = builder.CreateAlloca(getTy<T>(), nullptr, name);
+        alloca->setAlignment(sizeof(T));
+        builder.CreateAlignedStore(getConstant<T>(val), alloca, sizeof(T));
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<double>() const
-    {
-        return dblTy;
+        return alloca;
     }
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<bool>() const
+    template<typename T>
+    inline llvm::Value * getAlloca(const std::string & name = "")
     {
-        return int1Ty;
-    }
+        llvm::AllocaInst * alloca = builder.CreateAlloca(getTy<T>(), nullptr, name);
+        alloca->setAlignment(sizeof(T));
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<int8_t>() const
-    {
-        return int8Ty;
+        return alloca;
     }
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<int16_t>() const
+    inline llvm::Value * getAlloca(llvm::Value * val, llvm::Type * type, int type_size, const std::string & name = "")
     {
-        return int16Ty;
-    }
+        llvm::AllocaInst * alloca = builder.CreateAlloca(type, nullptr, name);
+        alloca->setAlignment(type_size);
+        builder.CreateAlignedStore(val, alloca, type_size);
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<int32_t>() const
-    {
-        return int32Ty;
+        return alloca;
     }
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<int64_t>() const
+    inline llvm::Value * getAlloca(llvm::Value * val, const std::string & name = "")
     {
-        return int64Ty;
+        return getAlloca(val, val->getType(), getTySizeInBytes(val->getType()), name);
     }
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<uint8_t>() const
+    inline JITScilabPtr & getResult()
     {
-        return int8Ty;
+        return  _result;
     }
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<uint16_t>() const
+    inline void setResult(JITScilabPtr & val)
     {
-        return int16Ty;
+        _result = val;
     }
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<uint32_t>() const
+    inline void setResult(JITScilabPtr && val)
     {
-        return int32Ty;
+        _result = val;
     }
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<uint64_t>() const
+    inline JITScilabPtr & getTemp(const int32_t id)
     {
-        return int64Ty;
+        if (id >= 0 && id < temps.size())
+        {
+            return temps[id];
+        }
+        else
+        {
+            assert(false && " Bad temp id...");
+        }
     }
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<void>() const
+    inline void addGlobal(const std::string & name, llvm::GlobalVariable * gv)
     {
-        return voidTy;
+        globals.emplace(name, gv);
     }
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<double *>() const
+    inline llvm::GlobalVariable * getGlobal(const std::string & name)
     {
-        return dblPtrTy;
+        auto i = globals.find(name);
+        if (i == globals.end())
+        {
+            return nullptr;
+        }
+        return i->second;
     }
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<bool *>() const
+    inline llvm::Value * getSpecialVar(const std::string & name) const
     {
-        return int1PtrTy;
-    }
+        auto i = specialVars.find(name);
+        if (i != specialVars.end())
+        {
+            return i->second;
+        }
+        return nullptr;
+    }
+
+    inline void addSpecialVar(const std::string & name, llvm::Value * val)
+    {
+        specialVars.emplace(name, val);
+    }
+
+    inline llvm::BasicBlock * getEntryBlock()
+    {
+        return entryBlock;
+    }
+
+    void makeCall(const std::wstring & name, const std::vector<types::InternalType *> & in, std::vector<types::InternalType *> & out);
+
+    JITScilabPtr getScalar(llvm::Value * const value, const analysis::TIType::Type ty, const bool alloc = false, const std::string & name = "");
+    JITScilabPtr getScalar(llvm::Value * const re, llvm::Value * const im, const analysis::TIType::Type ty, const bool alloc = false, const std::string & name = "");
+    JITScilabPtr & getCpxRValue();
+
+    llvm::FunctionType * getFunctionType(const analysis::TIType & out, const std::vector<const analysis::TIType *> & types);
+
+private:
+
+    inline std::vector<JITScilabPtr> & getLHSContainer()
+    {
+        return multipleLHS;
+    }
+
+    inline void callThrow(const char * msg)
+    {
+        /*llvm::Value * _msg = builder.CreateGlobalStringPtr(llvm::StringRef(msg));
+          llvm::Value * v = llvm::ConstantInt::get(uintptrType, reinterpret_cast<uintptr_t>(&jit::jit_throw));
+          v = builder.CreateIntToPtr(v, getLLVMPtrFuncTy<void, char *>(context));
+          builder.CreateCall(v, _msg);*/
+    }
+
+    template<typename T, typename U>
+    inline void makeArg(std::vector<llvm::Value *> & args, types::GenericType * pGT)
+    {
+        T * x = (T *)static_cast<U *>(pGT)->get();
+        int64_t r = static_cast<U *>(pGT)->getRows();
+        int64_t c = static_cast<U *>(pGT)->getCols();
+        int64_t refc = static_cast<U *>(pGT)->getRef();
+        args.emplace_back(getValue(x));
+        args.emplace_back(getValue(r));
+        args.emplace_back(getValue(c));
+        args.emplace_back(getValue(refc));
+    }
+
+    void visit(ast::CallExp & e, const unsigned int lhs);
+    void visit(const ast::CallExp & e);
+
+    void visit(const ast::SimpleVar & e);
+    void visit(const ast::DollarVar & e);
+    void visit(const ast::ColonVar & e);
+    void visit(const ast::ArrayListVar & e);
+    void visit(const ast::DoubleExp & e);
+    void visit(const ast::BoolExp & e);
+    void visit(const ast::StringExp & e);
+    void visit(const ast::NilExp & e);
+    void visit(const ast::CellCallExp & e);
+    void visit(const ast::OpExp & e);
+    void visit(const ast::LogicalOpExp & e);
+    void visit(const ast::AssignExp & e);
+    void visit(const ast::IfExp & e);
+    void visit(const ast::WhileExp & e);
+    void visit(const ast::ForExp & e);
+    void visit(const ast::BreakExp & e);
+    void visit(const ast::ContinueExp & e);
+    void visit(const ast::TryCatchExp & e);
+    void visit(const ast::SelectExp & e);
+    void visit(const ast::IntSelectExp & e);
+    void visit(const ast::SmallIntSelectExp & e);
+    void visit(const ast::TableIntSelectExp & e);
+    void visit(const ast::MapIntSelectExp & e);
+    void visit(const ast::CaseExp & e);
+    void visit(const ast::ReturnExp & e);
+    void visit(const ast::FieldExp & e);
+    void visit(const ast::NotExp & e);
+    void visit(const ast::TransposeExp & e);
+    void visit(const ast::MatrixExp & e);
+    void visit(const ast::MatrixLineExp & e);
+    void visit(const ast::CellExp & e);
+    void visit(const ast::SeqExp & e);
+    void visit(const ast::ArrayListExp & e);
+    void visit(const ast::AssignListExp & e);
+    void visit(const ast::VarDec & e);
+    void visit(const ast::FunctionDec & e);
+    void visit(const ast::ListExp & e);
+
+    void visit(const ast::OptimizedExp & e) { }
+    void visit(const ast::DAXPYExp & e) { }
+    void visit(const ast::MemfillExp & e) { }
+    void visit(const ast::StringSelectExp & e) { }
+    void visit(const ast::CommentExp & e) { }
+
+    void action(analysis::FunctionBlock & fblock);
+    llvm::Type * getType(const analysis::TIType::Type ty, const bool scalar);
+    JITScilabPtr getScalar(const analysis::TIType::Type ty, const bool isAnInt, const std::string & name);
+    JITScilabPtr getScalar(const analysis::TypeLocal & ty, const std::string & name);
+    JITScilabPtr getMatrix(llvm::Value * const value, llvm::Value * const rows, llvm::Value * const cols, llvm::Value * const refCount, const analysis::TIType::Type ty, const bool alloc, const std::string & name);
+    JITScilabPtr getMatrix(const analysis::TIType::Type ty, const std::string & name, const bool init = false);
+    JITScilabPtr getMatrix(const analysis::TypeLocal & ty, const std::string & name, const bool init = false);
+    llvm::Value * getPtrFromIndex(const ast::CallExp & ce);
+    void runOptimizationPasses();
+    void compileModule();
+    void makeSwitch(const ast::IntSelectExp & e, const std::map<int64_t, ast::Exp *> & map);
+    void CreateBr(llvm::BasicBlock * bb);
+    void closeEntryBlock();
+
+    static bool InitializeLLVM();
+    static LLVM_FunctionPassManager initFPM(llvm::Module * module, llvm::ExecutionEngine * engine, llvm::TargetMachine * target);
+    static llvm::Type * getPtrAsIntTy(llvm::Module & module, llvm::LLVMContext & ctxt);
+    static llvm::ExecutionEngine * InitializeEngine(llvm::Module * module, llvm::TargetMachine ** target);
+};
+
+template<>
+inline llvm::Value * JITVisitor::getConstant<double>(const double val, const std::string & name)
+{
+    return llvm::ConstantFP::get(context, llvm::APFloat(val));
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<int8_t *>() const
-    {
-        return int8PtrTy;
-    }
+template<>
+inline llvm::Value * JITVisitor::getConstant<std::complex<double>>(const std::complex<double> val, const std::string & name)
+{
+    llvm::Constant * re = llvm::ConstantFP::get(context, llvm::APFloat(val.real()));
+    llvm::Constant * im = llvm::ConstantFP::get(context, llvm::APFloat(val.imag()));
+    llvm::Constant * arr[] = { re, im };
+    return llvm::ConstantVector::get(llvm::ArrayRef<llvm::Constant *>(arr));
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<double>() const
+{
+    return dblTy;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<int16_t *>() const
-    {
-        return int16PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<bool>() const
+{
+    return int1Ty;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<int32_t *>() const
-    {
-        return int32PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<int8_t>() const
+{
+    return int8Ty;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<int64_t *>() const
-    {
-        return int64PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<int16_t>() const
+{
+    return int16Ty;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<uint8_t *>() const
-    {
-        return int8PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<int32_t>() const
+{
+    return int32Ty;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<uint16_t *>() const
-    {
-        return int16PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<int64_t>() const
+{
+    return int64Ty;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<uint32_t *>() const
-    {
-        return int32PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<uint8_t>() const
+{
+    return int8Ty;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<uint64_t *>() const
-    {
-        return int64PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<uint16_t>() const
+{
+    return int16Ty;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<const double *>() const
-    {
-        return dblPtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<uint32_t>() const
+{
+    return int32Ty;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<const bool *>() const
-    {
-        return int1PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<uint64_t>() const
+{
+    return int64Ty;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<const int8_t *>() const
-    {
-        return int8PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<void>() const
+{
+    return voidTy;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<const int16_t *>() const
-    {
-        return int16PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<double *>() const
+{
+    return dblPtrTy;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<const int32_t *>() const
-    {
-        return int32PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<bool *>() const
+{
+    return int1PtrTy;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<const int64_t *>() const
-    {
-        return int64PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<int8_t *>() const
+{
+    return int8PtrTy;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<const uint8_t *>() const
-    {
-        return int8PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<int16_t *>() const
+{
+    return int16PtrTy;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<const uint16_t *>() const
-    {
-        return int16PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<int32_t *>() const
+{
+    return int32PtrTy;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<const uint32_t *>() const
-    {
-        return int32PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<int64_t *>() const
+{
+    return int64PtrTy;
+}
 
-    template<>
-    inline llvm::Type * JITVisitor::getTy<const uint64_t *>() const
-    {
-        return int64PtrTy;
-    }
+template<>
+inline llvm::Type * JITVisitor::getTy<uint8_t *>() const
+{
+    return int8PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<uint16_t *>() const
+{
+    return int16PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<uint32_t *>() const
+{
+    return int32PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<uint64_t *>() const
+{
+    return int64PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<const double *>() const
+{
+    return dblPtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<const bool *>() const
+{
+    return int1PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<const int8_t *>() const
+{
+    return int8PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<const int16_t *>() const
+{
+    return int16PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<const int32_t *>() const
+{
+    return int32PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<const int64_t *>() const
+{
+    return int64PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<const uint8_t *>() const
+{
+    return int8PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<const uint16_t *>() const
+{
+    return int16PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<const uint32_t *>() const
+{
+    return int32PtrTy;
+}
+
+template<>
+inline llvm::Type * JITVisitor::getTy<const uint64_t *>() const
+{
+    return int64PtrTy;
+}
 
 } // namespace jit
 
index b4e4619..97fd642 100644 (file)
 
 #include "llvm/ExecutionEngine/JITEventListener.h"
 
+namespace llvm
+{
+namespace object
+{
+class ObjectFile;
+}
+}
+
 namespace jit
 {
-    class ScilabJITEventListener : public llvm::JITEventListener
-    {
+class ScilabJITEventListener : public llvm::JITEventListener
+{
+
+public:
 
-    public:
-       
-        virtual void NotifyObjectEmitted(const llvm::ObjectImage & obj) override;
-    };
+#if defined(LLVM_VERSION_MAJOR) && LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
+    virtual void NotifyObjectEmitted(const llvm::object::ObjectFile & obj, const llvm::RuntimeDyld::LoadedObjectInfo & L) override;
+#else
+    virtual void NotifyObjectEmitted(const llvm::ObjectImage & obj) override;
+#endif
+};
 
 
 } // namespace jit
index 74f0312..76c4b96 100644 (file)
@@ -17,18 +17,18 @@ namespace ast
 {
 static int level = -1;
 
-void DebugVisitor::DEBUG_START_NODE(const ast::Ast& e)
+void DebugVisitor::START_NODE(const ast::Ast& e)
 {
     *ostr << L"(" << e.getNodeNumber() << L") ";
     ++level;
 }
 
-void DebugVisitor::DEBUG_END_NODE(void)
+void DebugVisitor::END_NODE(void)
 {
     --level;
 }
 
-void DebugVisitor::DEBUG(wstring str)
+void DebugVisitor::print(wstring str)
 {
     for (int i = 0 ; i < level; ++i)
     {
@@ -41,7 +41,7 @@ void DebugVisitor::DEBUG(wstring str)
     *ostr << str << endl;
 }
 
-void DebugVisitor::DEBUG(wstring str, const Exp &e)
+void DebugVisitor::print(wstring str, const Exp &e)
 {
     for (int i = 0 ; i < level; ++i)
     {
@@ -62,43 +62,43 @@ void DebugVisitor::DEBUG(wstring str, const Exp &e)
 
 void DebugVisitor::visit (const MatrixExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec MatrixExp", e);
+    START_NODE(e);
+    print(L"Exec MatrixExp", e);
     exps_t lines = e.getLines();
     for (exps_t::const_iterator it = lines.begin(), itEnd = lines.end(); it != itEnd ; ++it)
     {
         (*it)->accept(*this);
     }
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const MatrixLineExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec MatrixLineExp", e);
+    START_NODE(e);
+    print(L"Exec MatrixLineExp", e);
     exps_t columns = e.getColumns();
     for (exps_t::const_iterator it = columns.begin(), itEnd = columns.end(); it != itEnd ; ++it)
     {
         (*it)->accept(*this);
     }
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const CellExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec CellExp", e);
+    START_NODE(e);
+    print(L"Exec CellExp", e);
     exps_t lines = e.getLines();
     for (exps_t::const_iterator it = lines.begin(), itEnd = lines.end(); it != itEnd ; ++it)
     {
         (*it)->accept(*this);
     }
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const StringExp &e)
 {
-    DEBUG_START_NODE(e);
+    START_NODE(e);
     wostringstream stream;
     if (e.getConstant())
     {
@@ -108,20 +108,20 @@ void DebugVisitor::visit (const StringExp &e)
     {
         stream << e.getValue();
     }
-    DEBUG(L"Exec StringExp : " + stream.str(), e);
-    DEBUG_END_NODE();
+    print(L"Exec StringExp : " + stream.str(), e);
+    END_NODE();
 }
 
 void DebugVisitor::visit (const CommentExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec CommentExp : " + e.getComment(), e);
-    DEBUG_END_NODE();
+    START_NODE(e);
+    print(L"Exec CommentExp : " + e.getComment(), e);
+    END_NODE();
 }
 
 void DebugVisitor::visit (const DoubleExp  &e)
 {
-    DEBUG_START_NODE(e);
+    START_NODE(e);
     wostringstream stream;
     types::InternalType * pIT = e.getConstant();
     if (pIT)
@@ -142,13 +142,13 @@ void DebugVisitor::visit (const DoubleExp  &e)
     {
         stream << e.getValue();
     }
-    DEBUG(L"Exec DoubleExp : " + stream.str(), e);
-    DEBUG_END_NODE();
+    print(L"Exec DoubleExp : " + stream.str(), e);
+    END_NODE();
 }
 
 void DebugVisitor::visit (const BoolExp  &e)
 {
-    DEBUG_START_NODE(e);
+    START_NODE(e);
     wostringstream stream;
     if (e.getConstant())
     {
@@ -158,15 +158,15 @@ void DebugVisitor::visit (const BoolExp  &e)
     {
         stream << e.getValue();
     }
-    DEBUG(L"Exec BoolExp : " + stream.str(), e);
-    DEBUG_END_NODE();
+    print(L"Exec BoolExp : " + stream.str(), e);
+    END_NODE();
 }
 
 void DebugVisitor::visit (const NilExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec NilExp", e);
-    DEBUG_END_NODE();
+    START_NODE(e);
+    print(L"Exec NilExp", e);
+    END_NODE();
 }
 
 void DebugVisitor::visit (const SimpleVar &e)
@@ -185,77 +185,77 @@ void DebugVisitor::visit (const SimpleVar &e)
         }
     }
 
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec SimpleVar : " + e.getSymbol().getName() + ty, e);
-    DEBUG_END_NODE();
+    START_NODE(e);
+    print(L"Exec SimpleVar : " + e.getSymbol().getName() + ty, e);
+    END_NODE();
 }
 
 void DebugVisitor::visit (const ColonVar &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec ColonVar", e);
-    DEBUG_END_NODE();
+    START_NODE(e);
+    print(L"Exec ColonVar", e);
+    END_NODE();
 }
 
 void DebugVisitor::visit (const DollarVar &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec DollarVar", e);
-    DEBUG_END_NODE();
+    START_NODE(e);
+    print(L"Exec DollarVar", e);
+    END_NODE();
 }
 
 void DebugVisitor::visit (const ArrayListVar &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec ArrayListVar", e);
+    START_NODE(e);
+    print(L"Exec ArrayListVar", e);
     exps_t vars = e.getVars();
     for (exps_t::const_iterator it = vars.begin (), itEnd = vars.end(); it != itEnd; ++it)
     {
         (*it)->accept(*this);
     }
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const FieldExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec FieldExp", e);
+    START_NODE(e);
+    print(L"Exec FieldExp", e);
     e.getHead()->accept(*this);
     e.getTail()->accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit(const OpExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec OpExp", e);
+    START_NODE(e);
+    print(L"Exec OpExp", e);
     e.getLeft().accept(*this);
     e.getRight().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit(const LogicalOpExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec LogicalOpExp", e);
+    START_NODE(e);
+    print(L"Exec LogicalOpExp", e);
     e.getLeft().accept(*this);
     e.getRight().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const AssignExp  &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec AssignExp", e);
+    START_NODE(e);
+    print(L"Exec AssignExp", e);
     e.getLeftExp().accept(*this);
     e.getRightExp().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit(const CellCallExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec CellCallExp", e);
+    START_NODE(e);
+    print(L"Exec CellCallExp", e);
     e.getName().accept(*this);
 
     exps_t args = e.getArgs();
@@ -264,15 +264,15 @@ void DebugVisitor::visit(const CellCallExp &e)
         arg->accept(*this);
     }
 
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit(const CallExp &e)
 {
     std::wstring str;
 
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec CallExp" + str, e);
+    START_NODE(e);
+    print(L"Exec CallExp" + str, e);
     e.getName().accept(*this);
 
     exps_t args = e.getArgs();
@@ -281,78 +281,78 @@ void DebugVisitor::visit(const CallExp &e)
         arg->accept(*this);
     }
 
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const IfExp  &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec IfExp", e);
+    START_NODE(e);
+    print(L"Exec IfExp", e);
     e.getTest ().accept(*this);
     e.getThen ().accept(*this);
     if (e.hasElse())
     {
         e.getElse ().accept(*this);
     }
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const TryCatchExp  &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec TryCatchExp", e);
+    START_NODE(e);
+    print(L"Exec TryCatchExp", e);
     e.getTry ().accept(*this);
     e.getCatch ().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const WhileExp  &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec WhileExp", e);
+    START_NODE(e);
+    print(L"Exec WhileExp", e);
     e.getTest().accept(*this);
     e.getBody().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const ForExp  &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec ForExp", e);
+    START_NODE(e);
+    print(L"Exec ForExp", e);
     e.getVardec().accept(*this);
     e.getBody().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const ContinueExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec ContinueExp", e);
-    DEBUG_END_NODE();
+    START_NODE(e);
+    print(L"Exec ContinueExp", e);
+    END_NODE();
 }
 
 void DebugVisitor::visit (const BreakExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec BreakExp", e);
-    DEBUG_END_NODE();
+    START_NODE(e);
+    print(L"Exec BreakExp", e);
+    END_NODE();
 }
 
 void DebugVisitor::visit (const ReturnExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec ReturnExp", e);
+    START_NODE(e);
+    print(L"Exec ReturnExp", e);
     if (!e.isGlobal())
     {
         e.getExp().accept(*this);
     }
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const SelectExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec SelectExp", e);
+    START_NODE(e);
+    print(L"Exec SelectExp", e);
     e.getSelect()->accept(*this);
 
     exps_t cases = e.getCases();
@@ -365,82 +365,82 @@ void DebugVisitor::visit (const SelectExp &e)
     {
         e.getDefaultCase()->accept(*this);
     }
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const CaseExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec CaseExp", e);
+    START_NODE(e);
+    print(L"Exec CaseExp", e);
     e.getTest()->accept(*this);
     e.getBody()->accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const SeqExp  &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec SeqExp", e);
+    START_NODE(e);
+    print(L"Exec SeqExp", e);
     for (exps_t::const_iterator it = e.getExps().begin (), itEnd = e.getExps().end(); it != itEnd; ++it)
     {
         (*it)->accept(*this);
     }
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const ArrayListExp  &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec ArrayListExp", e);
+    START_NODE(e);
+    print(L"Exec ArrayListExp", e);
     for (exps_t::const_iterator it = e.getExps().begin (), itEnd = e.getExps().end(); it != itEnd; ++it)
     {
         (*it)->accept(*this);
     }
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const AssignListExp  &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec AssignListExp", e);
+    START_NODE(e);
+    print(L"Exec AssignListExp", e);
     for (exps_t::const_iterator it = e.getExps().begin (), itEnd = e.getExps().end(); it != itEnd; ++it)
     {
         (*it)->accept(*this);
     }
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const NotExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec NotExp", e);
+    START_NODE(e);
+    print(L"Exec NotExp", e);
     e.getExp().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const TransposeExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec TransposeExp", e);
+    START_NODE(e);
+    print(L"Exec TransposeExp", e);
     e.getExp().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const VarDec  &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec VarDec", e);
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec Symbol : " + e.getSymbol().getName(), e);
-    DEBUG_END_NODE();
+    START_NODE(e);
+    print(L"Exec VarDec", e);
+    START_NODE(e);
+    print(L"Exec Symbol : " + e.getSymbol().getName(), e);
+    END_NODE();
     e.getInit().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit (const FunctionDec  &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec FunctionDec", e);
+    START_NODE(e);
+    print(L"Exec FunctionDec", e);
     // FIXME
 
     // First ask if there are some return values.
@@ -455,17 +455,17 @@ void DebugVisitor::visit (const FunctionDec  &e)
     // Now debug function body
     e.getBody().accept(*this);
 
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit(const ListExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec ListExp", e);
+    START_NODE(e);
+    print(L"Exec ListExp", e);
     e.getStart().accept(*this);
     e.getStep().accept(*this);
     e.getEnd().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit(const OptimizedExp &e)
@@ -475,8 +475,8 @@ void DebugVisitor::visit(const OptimizedExp &e)
 
 void DebugVisitor::visit(const MemfillExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec MemfillExp", e);
+    START_NODE(e);
+    print(L"Exec MemfillExp", e);
     e.getValue().accept(*this);
 
     exps_t args = e.getArgs();
@@ -485,17 +485,17 @@ void DebugVisitor::visit(const MemfillExp &e)
         arg->accept(*this);
     }
 
-    DEBUG_END_NODE();
+    END_NODE();
 }
 
 void DebugVisitor::visit(const DAXPYExp &e)
 {
-    DEBUG_START_NODE(e);
-    DEBUG(L"Exec DAXPYExp", e);
+    START_NODE(e);
+    print(L"Exec DAXPYExp", e);
     e.getA().accept(*this);
     e.getX().accept(*this);
     e.getY().accept(*this);
-    DEBUG_END_NODE();
+    END_NODE();
 
     //e.getOriginal()->accept(*this);
 }
index 5737e00..2e52f5b 100644 (file)
@@ -443,7 +443,7 @@ void JITVisitor::visit(const ast::ForExp & e)
 
             i->addIncoming(start, cur_block);
             JITScilabPtr & it = variables.find(symIterator)->second;
-            //it->storeData(*this, i);
+            it->storeData(*this, i);
 
             // Visit the loop body
             e.getBody().accept(*this);
index fae2bee..7173316 100644 (file)
@@ -20,7 +20,6 @@
 
 #include "ScilabJITEventListener.hxx"
 
-
 #define TIME_LLVM 1
 
 namespace jit
@@ -642,6 +641,7 @@ void JITVisitor::action(analysis::FunctionBlock & fblock)
 
     llvm::FunctionType * ftype = llvm::FunctionType::get(retTy, llvm::ArrayRef<llvm::Type *>(args), /* isVarArgs */ false);
     //function = llvm::cast<llvm::Function>(module.getOrInsertFunction("jit_" + name, ftype));
+    std::cerr << "NAME=" << _name << std::endl;
     function = llvm::cast<llvm::Function>(module->getOrInsertFunction(_name, ftype));
 
     entryBlock = llvm::BasicBlock::Create(context, "EntryBlock", function);
@@ -1126,6 +1126,8 @@ llvm::Type * JITVisitor::getPtrAsIntTy(llvm::Module & module, llvm::LLVMContext
 {
 #if LLVM_VERSION_MAJOR >= 3 && LLVM_VERSION_MINOR == 4
     return module.getPointerSize() == llvm::Module::Pointer32 ? llvm::Type::getInt32Ty(ctxt) : llvm::Type::getInt64Ty(ctxt);
+#elif LLVM_VERSION_MAJOR >= 3 && LLVM_VERSION_MINOR >= 7
+    return module.getDataLayout().getPointerSize() == 32 ? llvm::Type::getInt32Ty(ctxt) : llvm::Type::getInt64Ty(ctxt);
 #else
     return module.getDataLayout()->getPointerSize() == 32 ? llvm::Type::getInt32Ty(ctxt) : llvm::Type::getInt64Ty(ctxt);
 #endif
@@ -1144,31 +1146,59 @@ llvm::ExecutionEngine * JITVisitor::InitializeEngine(llvm::Module * module, llvm
 {
     std::string err;
     llvm::TargetOptions opt;
+
+#if not(LLVM_VERSION_MAJOR >= 3 && LLVM_VERSION_MINOR >= 7)
     opt.NoFramePointerElim = true;
-    llvm::EngineBuilder & eb = llvm::EngineBuilder(module).setErrorStr(&err).setUseMCJIT(true).setMCJITMemoryManager(new MemoryManager()).setRelocationModel(llvm::Reloc::PIC_/*DynamicNoPIC*//*Static*/).setCodeModel(llvm::CodeModel::Small).setTargetOptions(opt);
+#endif
+
+#if LLVM_VERSION_MAJOR >= 3 && LLVM_VERSION_MINOR >= 6
+    llvm::EngineBuilder eb(std::move(std::unique_ptr<llvm::Module>(module)));
+    eb.setEngineKind(llvm::EngineKind::JIT).setMCJITMemoryManager(std::move(std::unique_ptr<llvm::RTDyldMemoryManager> {new MemoryManager()}));//.setRelocationModel(llvm::Reloc::Default/*PIC_*//*DynamicNoPIC*//*Static*/).setCodeModel(llvm::CodeModel::Default/*Small*/).setTargetOptions(opt).setErrorStr(&err);
+#else
+    llvm::EngineBuilder eb(module);
+    eb.setErrorStr(&err).setUseMCJIT(true).setMCJITMemoryManager(new MemoryManager()).setRelocationModel(llvm::Reloc::PIC_/*DynamicNoPIC*//*Static*/).setCodeModel(llvm::CodeModel::Small).setTargetOptions(opt);
+#endif
+
     // TODO: when reloc model is Static there is a problem with address of global variables (used with dgemm_)
 
-    *target = eb.selectTarget();
+    llvm::TargetMachine * tm = eb.selectTarget();
+    llvm::Triple triple(llvm::sys::getProcessTriple());
+    triple.setObjectFormat(llvm::Triple::ELF);
+    *target = tm->getTarget().createTargetMachine(triple.getTriple(), tm->getTargetCPU(), tm->getTargetFeatureString(), tm->Options, llvm::Reloc::Default, llvm::CodeModel::Default);
+    delete tm;
+
+
+    //(*target)->getTargetTriple().setObjectFormat(llvm::Triple::ELF);
+    //llvm::TargetMachine * tm = eb.selectTarget();
+    //std::cerr << "TARGET=" << tm << std::endl;
+    //*target = tm->getTarget().createTargetMachine(tm->getTargetTriple().str(), tm->getTargetCPU(), tm->getTargetFeatureString(), tm->Options, llvm::Reloc::Default, llvm::CodeModel::JITDefault);
+    //*target = eb.selectTarget();
+    //std::cerr << "TARGET=" << (*target)->getTargetTriple().str() << std::endl;
+
     llvm::ExecutionEngine * engine = eb.create(*target);
     engine->RegisterJITEventListener(new ScilabJITEventListener());
 
     module->setDataLayout(engine->getDataLayout()->getStringRepresentation());
     module->setTargetTriple((*target)->getTargetTriple().str());
 
+    //delete tm;
+
     return engine;
 }
-
-llvm::FunctionPassManager JITVisitor::initFPM(llvm::Module * module, llvm::ExecutionEngine * engine, llvm::TargetMachine * target)
+LLVM_FunctionPassManager JITVisitor::initFPM(llvm::Module * module, llvm::ExecutionEngine * engine, llvm::TargetMachine * target)
 {
-    llvm::FunctionPassManager FPM(module);
+    LLVM_FunctionPassManager FPM(module);
 
 #if LLVM_VERSION_MAJOR >= 3 && LLVM_VERSION_MINOR == 4
     FPM.add(new llvm::DataLayout(*engine->getDataLayout()));
+    target->addAnalysisPasses(FPM);
+#elif LLVM_VERSION_MAJOR >= 3 && LLVM_VERSION_MINOR >= 7
+    // no more datalayoutpass
 #else
     FPM.add(new llvm::DataLayoutPass(*engine->getDataLayout()));
+    target->addAnalysisPasses(FPM);
 #endif
 
-    target->addAnalysisPasses(FPM);
 
     // TODO: mettre les bonnes passes la ou il faut
 
index 8e4ddea..7b0236c 100644 (file)
@@ -94,7 +94,8 @@ bool JITZeros::invoke(const ast::Exp & e, const std::vector<analysis::TIType> &
         out.front()->storeCols(jit, c);
     }
 
-    builder.CreateCall5(__memset, alloc, jit.getConstant<int8_t>(0), size, jit.getConstant<int32_t>(sizeof(double)), jit.getBool(false));
+    llvm::Value * memset_args[] = { alloc, jit.getConstant<int8_t>(0), size, jit.getConstant<int32_t>(sizeof(double)), jit.getBool(false) };
+    builder.CreateCall(__memset, memset_args);
 
     return true;
 }
index 3569131..d26fd64 100644 (file)
 
 #include <memory>
 #include <iostream>
-//#include <unistd.h>
 
-#include "llvm/ExecutionEngine/ObjectImage.h"
+#include "ScilabJITEventListener.hxx"
+#include "MemoryManager.hxx"
+
+#if defined(LLVM_VERSION_MAJOR) && LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
+#include "llvm/Object/ObjectFile.h"
+#else
+#include "llvm/Object/ObjectFile.h"
 #include "llvm/DebugInfo.h"
 #include "llvm/DebugInfo/DIContext.h"
 #include "llvm/Support/Memory.h"
-
-#include "ScilabJITEventListener.hxx"
-#include "MemoryManager.hxx"
+#endif
 
 namespace jit
 {
+#if defined(LLVM_VERSION_MAJOR) && LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
+void ScilabJITEventListener::NotifyObjectEmitted(const llvm::object::ObjectFile & obj, const llvm::RuntimeDyld::LoadedObjectInfo & L)
+{
+
+}
+
+#else
 void ScilabJITEventListener::NotifyObjectEmitted(const llvm::ObjectImage & obj)
 {
     std::cout << "Object Emitted:" << /*obj.getImageName().data() << */std::endl;
@@ -53,5 +63,7 @@ void ScilabJITEventListener::NotifyObjectEmitted(const llvm::ObjectImage & obj)
         }
     }
 }
+#endif
+
 
 } // namespace jit
index 97ca3b0..f0bf664 100644 (file)
@@ -71,9 +71,9 @@
 #pragma comment(lib, "LLVMCore.lib")
 #pragma comment(lib, "LLVMCppBackendCodeGen.lib")
 #pragma comment(lib, "LLVMCppBackendInfo.lib")
-#pragma comment(lib, "LLVMDebugInfo.lib")
+//#pragma comment(lib, "LLVMDebugInfo.lib")
 #pragma comment(lib, "LLVMExecutionEngine.lib")
-#pragma comment(lib, "LLVMHexagonAsmPrinter.lib")
+//#pragma comment(lib, "LLVMHexagonAsmPrinter.lib")
 #pragma comment(lib, "LLVMHexagonCodeGen.lib")
 #pragma comment(lib, "LLVMHexagonDesc.lib")
 #pragma comment(lib, "LLVMHexagonInfo.lib")
@@ -81,7 +81,7 @@
 #pragma comment(lib, "LLVMInstCombine.lib")
 #pragma comment(lib, "LLVMInstrumentation.lib")
 #pragma comment(lib, "LLVMInterpreter.lib")
-#pragma comment(lib, "LLVMJIT.lib")
+//#pragma comment(lib, "LLVMJIT.lib")
 #pragma comment(lib, "LLVMLTO.lib")
 #pragma comment(lib, "LLVMMC.lib")
 #pragma comment(lib, "LLVMMCDisassembler.lib")
index b11c01d..9e383ea 100644 (file)
@@ -481,6 +481,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 572dc25..771c7ae 100644 (file)
@@ -561,6 +561,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 184b9d5..46cd4e3 100644 (file)
@@ -650,6 +650,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index db30c5d..be0c994 100644 (file)
@@ -544,6 +544,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 58f0664..4101280 100644 (file)
@@ -573,6 +573,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index b54c8c6..bc381a5 100644 (file)
@@ -476,6 +476,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 667f28f..5e2e08e 100644 (file)
@@ -605,6 +605,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 5fca12b..d715fcc 100644 (file)
@@ -624,6 +624,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 070abff..3d1bc3d 100644 (file)
@@ -676,6 +676,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 635c29b..b2c67ea 100644 (file)
@@ -537,6 +537,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 3a9f689..94320ff 100644 (file)
@@ -476,6 +476,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 31b21f1..b76c83b 100644 (file)
@@ -476,6 +476,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index b7d2d10..37d9afa 100644 (file)
@@ -420,6 +420,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 9200d58..7fdfe33 100644 (file)
@@ -635,6 +635,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 418380f..a64c3be 100644 (file)
@@ -582,6 +582,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 7b8f69c..c4aab13 100644 (file)
@@ -802,6 +802,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 21f2bf5..e933c0b 100644 (file)
@@ -635,6 +635,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index e2d0d39..99bbcf4 100644 (file)
@@ -599,6 +599,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 2404296..dc74ba2 100644 (file)
@@ -599,6 +599,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index a67a255..2d7dc09 100644 (file)
@@ -660,6 +660,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 7a4fed7..a01bd68 100644 (file)
@@ -539,6 +539,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 36cd0d7..aeeec9e 100644 (file)
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;FUNCTIONS_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <WarningLevel>Level3</WarningLevel>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <AdditionalIncludeDirectories>../../includes;../../../../libs/libxml2;../../../../libs/intl;../../../functions_manager/includes;../../../elementary_functions/includes;../../../core/includes;../../../api_scilab/includes;../../../fileio/includes;../../../output_stream/includes;../../../console/includes;../../../localization/includes;../../../string/includes;../../../threads/includes;../../../dynamic_link/includes;../../../ast/includes/types;../../../ast/includes/ast;../../../ast/includes/analysis;../../../ast/includes/exps;../../../ast/includes/operations;../../../ast/includes/symbol;../../../ast/includes/system_env;../../../ast/includes/parse;../../../ast/includes/jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;FUNCTIONS_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <PrecompiledHeader>
       </PrecompiledHeader>
index 965a4bc..2a1a2b4 100644 (file)
@@ -29,7 +29,7 @@
 //#pragma comment(lib, "LLVMSystemZDisassembler.lib")
 //#pragma comment(lib, "LLVMSystemZInfo.lib")
 //#pragma comment(lib, "LLVMTableGen.lib")
-//#pragma comment(lib, "LLVMTarget.lib")
+#pragma comment(lib, "LLVMTarget.lib")
 //#pragma comment(lib, "LLVMTransformUtils.lib")
 //#pragma comment(lib, "LLVMVectorize.lib")
 //#pragma comment(lib, "LLVMX86AsmParser.lib")
 //#pragma comment(lib, "LLVMARMDesc.lib")
 //#pragma comment(lib, "LLVMARMDisassembler.lib")
 //#pragma comment(lib, "LLVMARMInfo.lib")
-//#pragma comment(lib, "LLVMAnalysis.lib")
+#pragma comment(lib, "LLVMAnalysis.lib")
 //#pragma comment(lib, "LLVMAsmParser.lib")
 //#pragma comment(lib, "LLVMAsmPrinter.lib")
-//#pragma comment(lib, "LLVMBitReader.lib")
+#pragma comment(lib, "LLVMBitReader.lib")
 //#pragma comment(lib, "LLVMBitWriter.lib")
 #pragma comment(lib, "LLVMCodeGen.lib")
 #pragma comment(lib, "LLVMCore.lib")
@@ -86,7 +86,7 @@
 #pragma comment(lib, "LLVMMC.lib")
 //#pragma comment(lib, "LLVMMCDisassembler.lib")
 #pragma comment(lib, "LLVMMCJIT.lib")
-//#pragma comment(lib, "LLVMMCParser.lib")
+#pragma comment(lib, "LLVMMCParser.lib")
 //#pragma comment(lib, "LLVMMSP430AsmPrinter.lib")
 //#pragma comment(lib, "LLVMMSP430CodeGen.lib")
 //#pragma comment(lib, "LLVMMSP430Desc.lib")
index 2603086..4882e6a 100644 (file)
@@ -563,6 +563,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index af928c9..98c9bff 100644 (file)
@@ -478,6 +478,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 3e64fda..01642a8 100644 (file)
@@ -479,6 +479,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 12e5985..3a68055 100644 (file)
@@ -587,6 +587,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index d6bd831..906ac93 100644 (file)
@@ -622,6 +622,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index e51ff74..dadd595 100644 (file)
@@ -1010,6 +1010,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 4dc394f..18ef12d 100644 (file)
@@ -716,6 +716,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 873b2a8..0989252 100644 (file)
@@ -623,6 +623,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 63b1eb8..4d872a1 100644 (file)
@@ -568,6 +568,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 0f5d272..2210b0b 100644 (file)
@@ -577,6 +577,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index f883ded..76c82d8 100644 (file)
@@ -586,6 +586,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 7909d5f..86f6518 100644 (file)
@@ -590,6 +590,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index c6fc71d..af4c6ba 100644 (file)
@@ -588,6 +588,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index dcb0ae5..7a01efb 100644 (file)
@@ -575,6 +575,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 0889e5c..fbe6b36 100644 (file)
@@ -541,6 +541,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -1017,8 +1018,8 @@ maintainer-clean-generic:
        @echo "it deletes files that may require special tools to rebuild."
        -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 @JAVASCI_FALSE@clean-local:
-@JAVASCI_FALSE@distclean-local:
 @JAVASCI_FALSE@install-data-local:
+@JAVASCI_FALSE@distclean-local:
 @JAVASCI_FALSE@install-html-local:
 clean: clean-am
 
index 2598f17..80ba9c4 100644 (file)
@@ -602,6 +602,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 7a98fce..f3e9678 100644 (file)
@@ -609,6 +609,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 19e1ee4..5bda96f 100644 (file)
@@ -606,6 +606,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index b4c8189..7d046a3 100644 (file)
@@ -473,6 +473,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 98256bd..c3e0770 100644 (file)
@@ -603,6 +603,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 7d66f94..db72aee 100644 (file)
@@ -555,6 +555,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 5e75794..a1100da 100644 (file)
@@ -474,6 +474,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 5c5827f..890e8c9 100644 (file)
@@ -555,6 +555,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index a0e916d..0298df4 100644 (file)
@@ -623,6 +623,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 052995c..1e9b4f2 100644 (file)
@@ -613,6 +613,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 0378217..7f98d33 100644 (file)
@@ -474,6 +474,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index f748046..6b11436 100644 (file)
@@ -549,6 +549,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 026b8f7..0692a4a 100644 (file)
@@ -539,6 +539,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index ff30f93..08ac27c 100644 (file)
@@ -612,6 +612,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index e908536..64e78d4 100644 (file)
@@ -448,6 +448,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index d3f1862..93f8240 100644 (file)
@@ -594,6 +594,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 93d5bc5..149405c 100644 (file)
@@ -587,6 +587,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index bcbd6df..e94f55f 100644 (file)
@@ -543,6 +543,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index fb71ef9..f778ab6 100644 (file)
@@ -926,6 +926,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index c07a49e..9969924 100644 (file)
@@ -956,6 +956,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 1594c38..65c508b 100644 (file)
@@ -585,6 +585,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 84e4ffc..92d5562 100644 (file)
@@ -610,6 +610,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 4c3ee15..52490b8 100644 (file)
@@ -478,6 +478,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 9d20d51..85dd82b 100644 (file)
@@ -529,6 +529,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index a7cf655..11a5df5 100644 (file)
@@ -594,6 +594,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 3dd0ecf..ca4f62b 100644 (file)
@@ -591,6 +591,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 958bc23..75da92a 100644 (file)
@@ -577,6 +577,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index e7067b5..e74808a 100644 (file)
@@ -592,6 +592,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 2a73b0f..d645880 100644 (file)
@@ -620,6 +620,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index c63fb83..cfe5ca8 100644 (file)
@@ -589,6 +589,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 719c43d..6894a65 100644 (file)
@@ -536,6 +536,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 05a32c0..4e0cb5c 100644 (file)
@@ -567,6 +567,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 8f81185..d11e981 100644 (file)
@@ -640,6 +640,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 8751a21..840e9be 100644 (file)
@@ -591,6 +591,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index b11f8a7..9a97e4c 100644 (file)
@@ -580,6 +580,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index d3b787f..bf26f6a 100644 (file)
@@ -537,6 +537,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 0ddcd24..5e0bf93 100644 (file)
@@ -593,6 +593,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
index 8aeb033..442ff3f 100644 (file)
@@ -596,6 +596,7 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@