JIT: first commit (windows) 00/15000/6
Antoine ELIAS [Thu, 7 Aug 2014 12:00:35 +0000 (14:00 +0200)]
Change-Id: I561579ae318a5eb5bc6e6186c9f6d1750d1fda9a

15 files changed:
scilab/modules/ast/Makefile.am
scilab/modules/ast/Makefile.in
scilab/modules/ast/ast.vcxproj
scilab/modules/ast/ast.vcxproj.filters
scilab/modules/ast/includes/analysis/AnalysisVisitor.hxx
scilab/modules/ast/includes/exps/listexp.hxx
scilab/modules/ast/includes/jit/JITValues.hxx
scilab/modules/ast/includes/jit/JITVisitor.hxx
scilab/modules/ast/includes/jit/jit_operations.hxx
scilab/modules/ast/src/cpp/jit/GlobalCFunctions.cpp
scilab/modules/ast/src/cpp/jit/JITVisitor.cpp
scilab/modules/ast/src/cpp/jit/jit_operations.cpp [moved from scilab/modules/ast/src/cpp/jit/operations.cpp with 100% similarity]
scilab/modules/functions/sci_gateway/cpp/functions_gw.vcxproj
scilab/modules/functions/sci_gateway/cpp/functions_gw.vcxproj.filters
scilab/modules/functions/sci_gateway/cpp/sci_jit.cpp

index 6772b9c..126cb86 100644 (file)
@@ -104,7 +104,7 @@ libsciast_la_SOURCES = \
     src/cpp/system_env/warningmode.cpp \
     src/cpp/jit/JITVisitor.cpp \
     src/cpp/jit/JITValues.cpp \
-    src/cpp/jit/operations.cpp \
+    src/cpp/jit/jit_operations.cpp \
     src/cpp/jit/GlobalCFunctions.cpp
 
 if ENABLE_DEBUG
index c03e824..c2d2669 100644 (file)
@@ -226,7 +226,7 @@ am__libsciast_la_SOURCES_DIST = src/cpp/ast/runvisitor.cpp \
        src/cpp/system_env/reference_modules.cpp \
        src/cpp/system_env/formatmode.cpp \
        src/cpp/system_env/warningmode.cpp src/cpp/jit/JITVisitor.cpp \
-       src/cpp/jit/JITValues.cpp src/cpp/jit/operations.cpp \
+       src/cpp/jit/JITValues.cpp src/cpp/jit/jit_operations.cpp \
        src/cpp/jit/GlobalCFunctions.cpp src/cpp/types/inspector.cpp
 am__dirstamp = $(am__leading_dot)dirstamp
 @ENABLE_DEBUG_TRUE@am__objects_1 =  \
@@ -321,7 +321,7 @@ am_libsciast_la_OBJECTS = src/cpp/ast/libsciast_la-runvisitor.lo \
        src/cpp/system_env/libsciast_la-warningmode.lo \
        src/cpp/jit/libsciast_la-JITVisitor.lo \
        src/cpp/jit/libsciast_la-JITValues.lo \
-       src/cpp/jit/libsciast_la-operations.lo \
+       src/cpp/jit/libsciast_la-jit_operations.lo \
        src/cpp/jit/libsciast_la-GlobalCFunctions.lo $(am__objects_1)
 libsciast_la_OBJECTS = $(am_libsciast_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
@@ -766,7 +766,7 @@ libsciast_la_SOURCES = src/cpp/ast/runvisitor.cpp \
        src/cpp/system_env/reference_modules.cpp \
        src/cpp/system_env/formatmode.cpp \
        src/cpp/system_env/warningmode.cpp src/cpp/jit/JITVisitor.cpp \
-       src/cpp/jit/JITValues.cpp src/cpp/jit/operations.cpp \
+       src/cpp/jit/JITValues.cpp src/cpp/jit/jit_operations.cpp \
        src/cpp/jit/GlobalCFunctions.cpp $(am__append_1)
 libsciast_la_CPPFLAGS = \
        -Iincludes/ast \
@@ -1428,7 +1428,8 @@ src/cpp/jit/libsciast_la-JITVisitor.lo: src/cpp/jit/$(am__dirstamp) \
        src/cpp/jit/$(DEPDIR)/$(am__dirstamp)
 src/cpp/jit/libsciast_la-JITValues.lo: src/cpp/jit/$(am__dirstamp) \
        src/cpp/jit/$(DEPDIR)/$(am__dirstamp)
-src/cpp/jit/libsciast_la-operations.lo: src/cpp/jit/$(am__dirstamp) \
+src/cpp/jit/libsciast_la-jit_operations.lo:  \
+       src/cpp/jit/$(am__dirstamp) \
        src/cpp/jit/$(DEPDIR)/$(am__dirstamp)
 src/cpp/jit/libsciast_la-GlobalCFunctions.lo:  \
        src/cpp/jit/$(am__dirstamp) \
@@ -1484,7 +1485,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/jit/$(DEPDIR)/libsciast_la-GlobalCFunctions.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/jit/$(DEPDIR)/libsciast_la-JITValues.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/jit/$(DEPDIR)/libsciast_la-JITVisitor.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/jit/$(DEPDIR)/libsciast_la-operations.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/jit/$(DEPDIR)/libsciast_la-jit_operations.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/operations/$(DEPDIR)/libsciast_la-interface_addition.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/operations/$(DEPDIR)/libsciast_la-operations.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/operations/$(DEPDIR)/libsciast_la-types_addition.Plo@am__quote@
@@ -2234,12 +2235,12 @@ src/cpp/jit/libsciast_la-JITValues.lo: src/cpp/jit/JITValues.cpp
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/jit/libsciast_la-JITValues.lo `test -f 'src/cpp/jit/JITValues.cpp' || echo '$(srcdir)/'`src/cpp/jit/JITValues.cpp
 
-src/cpp/jit/libsciast_la-operations.lo: src/cpp/jit/operations.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/jit/libsciast_la-operations.lo -MD -MP -MF src/cpp/jit/$(DEPDIR)/libsciast_la-operations.Tpo -c -o src/cpp/jit/libsciast_la-operations.lo `test -f 'src/cpp/jit/operations.cpp' || echo '$(srcdir)/'`src/cpp/jit/operations.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/jit/$(DEPDIR)/libsciast_la-operations.Tpo src/cpp/jit/$(DEPDIR)/libsciast_la-operations.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/jit/operations.cpp' object='src/cpp/jit/libsciast_la-operations.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/jit/libsciast_la-jit_operations.lo: src/cpp/jit/jit_operations.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/jit/libsciast_la-jit_operations.lo -MD -MP -MF src/cpp/jit/$(DEPDIR)/libsciast_la-jit_operations.Tpo -c -o src/cpp/jit/libsciast_la-jit_operations.lo `test -f 'src/cpp/jit/jit_operations.cpp' || echo '$(srcdir)/'`src/cpp/jit/jit_operations.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/jit/$(DEPDIR)/libsciast_la-jit_operations.Tpo src/cpp/jit/$(DEPDIR)/libsciast_la-jit_operations.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/jit/jit_operations.cpp' object='src/cpp/jit/libsciast_la-jit_operations.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/jit/libsciast_la-operations.lo `test -f 'src/cpp/jit/operations.cpp' || echo '$(srcdir)/'`src/cpp/jit/operations.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/jit/libsciast_la-jit_operations.lo `test -f 'src/cpp/jit/jit_operations.cpp' || echo '$(srcdir)/'`src/cpp/jit/jit_operations.cpp
 
 src/cpp/jit/libsciast_la-GlobalCFunctions.lo: src/cpp/jit/GlobalCFunctions.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/jit/libsciast_la-GlobalCFunctions.lo -MD -MP -MF src/cpp/jit/$(DEPDIR)/libsciast_la-GlobalCFunctions.Tpo -c -o src/cpp/jit/libsciast_la-GlobalCFunctions.lo `test -f 'src/cpp/jit/GlobalCFunctions.cpp' || echo '$(srcdir)/'`src/cpp/jit/GlobalCFunctions.cpp
index a1a6384..1cf8da0 100644 (file)
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">false</LinkIncremental>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LibraryPath>$(LLVM_64_DEBUG)/lib;$(LibraryPath)</LibraryPath>
+    <IncludePath>$(LLVM_64_DEBUG)/include;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LibraryPath>$(LLVM_64_RELEASE)/lib;$(LibraryPath)</LibraryPath>
+    <IncludePath>$(LLVM_64_RELEASE)/include;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LibraryPath>$(LLVM_32_DEBUG)/lib;$(LibraryPath)</LibraryPath>
+    <IncludePath>$(LLVM_32_DEBUG)/include;$(IncludePath)</IncludePath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LibraryPath>$(LLVM_32_RELEASE)/lib;$(LibraryPath)</LibraryPath>
+    <IncludePath>$(LLVM_32_RELEASE)/include;$(IncludePath)</IncludePath>
+  </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>includes/ast;includes/parse;includes/exps;includes/symbol;includes/types;includes/system_env;includes/operations;../../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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;AST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -118,7 +134,7 @@ lib /DEF:"$(ProjectDir)fileio_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>includes/ast;includes/parse;includes/exps;includes/symbol;includes/types;includes/system_env;includes/operations;../../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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;AST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -154,7 +170,7 @@ lib /DEF:"$(ProjectDir)fileio_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>includes/ast;includes/parse;includes/exps;includes/symbol;includes/types;includes/system_env;includes/operations;../../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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;AST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -192,7 +208,7 @@ lib /DEF:"$(ProjectDir)fileio_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>includes/ast;includes/parse;includes/exps;includes/symbol;includes/types;includes/system_env;includes/operations;../../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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <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;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;AST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -242,6 +258,7 @@ lib /DEF:"$(ProjectDir)fileio_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <None Include="threads_Import.def" />
   </ItemGroup>
   <ItemGroup>
+    <ClInclude Include="includes\analysis\AnalysisVisitor.hxx" />
     <ClInclude Include="includes\ast\debugvisitor.hxx" />
     <ClInclude Include="includes\ast\deserializervisitor.hxx" />
     <ClInclude Include="includes\ast\dummyvisitor.hxx" />
@@ -313,6 +330,10 @@ lib /DEF:"$(ProjectDir)fileio_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ClInclude Include="includes\exps\var.hxx" />
     <ClInclude Include="includes\exps\vardec.hxx" />
     <ClInclude Include="includes\exps\whileexp.hxx" />
+    <ClInclude Include="includes\jit\JITValues.hxx" />
+    <ClInclude Include="includes\jit\JITVisitor.hxx" />
+    <ClInclude Include="includes\jit\jit_operations.hxx" />
+    <ClInclude Include="includes\jit\ScilabJITTraits.hxx" />
     <ClInclude Include="includes\operations\doublecomplex.h" />
     <ClInclude Include="includes\operations\generic_operations.hxx" />
     <ClInclude Include="includes\operations\interface_addition.h" />
@@ -425,6 +446,10 @@ lib /DEF:"$(ProjectDir)fileio_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ClCompile Include="src\cpp\ast\runvisitor.cpp" />
     <ClCompile Include="src\cpp\ast\shortcutvisitor.cpp" />
     <ClCompile Include="src\cpp\ast\visitor_common.cpp" />
+    <ClCompile Include="src\cpp\jit\GlobalCFunctions.cpp" />
+    <ClCompile Include="src\cpp\jit\JITValues.cpp" />
+    <ClCompile Include="src\cpp\jit\JITVisitor.cpp" />
+    <ClCompile Include="src\cpp\jit\jit_operations.cpp" />
     <ClCompile Include="src\cpp\operations\interface_addition.cpp" />
     <ClCompile Include="src\cpp\operations\operations.cpp" />
     <ClCompile Include="src\cpp\operations\types_addition.cpp" />
@@ -472,6 +497,7 @@ lib /DEF:"$(ProjectDir)fileio_import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform
     <ClCompile Include="src\cpp\types\implicitlist.cpp" />
     <ClCompile Include="src\cpp\types\inspector.cpp" />
     <ClCompile Include="src\cpp\types\int.cpp" />
+    <ClCompile Include="src\cpp\types\internal.cpp" />
     <ClCompile Include="src\cpp\types\library.cpp" />
     <ClCompile Include="src\cpp\types\list.cpp" />
     <ClCompile Include="src\cpp\types\listdelete.cpp" />
index 1b6141e..1cfe6be 100644 (file)
     <Filter Include="Source Files\operations">
       <UniqueIdentifier>{cc482308-cd44-4b1f-b6e7-c807532f307d}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Header Files\jit">
+      <UniqueIdentifier>{38f30468-926e-4319-8ead-31de49874864}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files\jit">
+      <UniqueIdentifier>{2ed92cbe-2ad1-47c2-9beb-85f98528d230}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\analysis">
+      <UniqueIdentifier>{ed1a6ba0-722f-4b9c-b70c-85aedf40570a}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <None Include="core_Import.def">
     <ClInclude Include="includes\types\overload.hxx">
       <Filter>Header Files\types</Filter>
     </ClInclude>
+    <ClInclude Include="includes\jit\ScilabJITTraits.hxx">
+      <Filter>Header Files\jit</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\jit\JITVisitor.hxx">
+      <Filter>Header Files\jit</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\jit\JITValues.hxx">
+      <Filter>Header Files\jit</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\jit\jit_operations.hxx">
+      <Filter>Header Files\jit</Filter>
+    </ClInclude>
+    <ClInclude Include="includes\analysis\AnalysisVisitor.hxx">
+      <Filter>Header Files\analysis</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="src\cpp\ast\debugvisitor.cpp">
     <ClCompile Include="src\cpp\types\callable.cpp">
       <Filter>Source Files\types</Filter>
     </ClCompile>
+    <ClCompile Include="src\cpp\jit\JITValues.cpp">
+      <Filter>Source Files\jit</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\jit\JITVisitor.cpp">
+      <Filter>Source Files\jit</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\jit\GlobalCFunctions.cpp">
+      <Filter>Source Files\jit</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\types\internal.cpp">
+      <Filter>Source Files\types</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\jit\jit_operations.cpp">
+      <Filter>Source Files\jit</Filter>
+    </ClCompile>
   </ItemGroup>
 </Project>
\ No newline at end of file
index 63cb242..79aea47 100644 (file)
 
 #include <set>
 #include <memory>
+#include <limits>
 
 #include "visitor.hxx"
 #include "allexp.hxx"
 #include "allvar.hxx"
-
 namespace analysis
 {
 
@@ -288,7 +288,9 @@ private:
 
     void visit(const ast::ListExp &e)
     {
-        double start = NAN, step = NAN, end = NAN;
+        double start = std::numeric_limits<double>::quiet_NaN();
+        double step = std::numeric_limits<double>::quiet_NaN();
+        double end = std::numeric_limits<double>::quiet_NaN();
 
         if (e.start_get().is_double_exp())
         {
index f6b6e88..5769c3b 100644 (file)
@@ -14,6 +14,7 @@
 #define AST_LISTEXP_HXX
 
 #include "exp.hxx"
+#include <limits>
 
 namespace ast
 {
@@ -46,6 +47,13 @@ public:
           _step (&step),
           _end (&end)
     {
+        values[0] = std::numeric_limits<double>::quiet_NaN();
+        values[1] = std::numeric_limits<double>::quiet_NaN();
+        values[2] = std::numeric_limits<double>::quiet_NaN();
+
+        is_values_int[0] = false;
+        is_values_int[1] = false;
+        is_values_int[2] = false;
     }
 
     /** \brief Destroy a Operation Expression node.
@@ -145,8 +153,8 @@ protected:
     /** \brief end expression of the list. */
     Exp* _end;
 
-    double values[3] = {NAN, NAN, NAN};
-    bool is_values_int[3] = {false, false, false};
+    double values[3];
+    bool is_values_int[3];
 };
 
 } // namespace ast
index 61ab6c9..681cb3a 100644 (file)
@@ -77,8 +77,8 @@ public:
 
 protected:
 
-    llvm::Value * val = nullptr;
-    llvm::Type * type = nullptr;
+    llvm::Value * val;
+    llvm::Type * type;
 
     template<typename T>
     inline static llvm::Value * load(llvm::Value * v, bool _scalar, llvm::IRBuilder<> & builder)
@@ -178,9 +178,9 @@ public:
 template<typename T>
 class JITMatrixVal : public JITVal
 {
-    llvm::Value * r = nullptr;
-    llvm::Value * c = nullptr;
-    llvm::Value * must_be_freed = nullptr;
+    llvm::Value * r;
+    llvm::Value * c;
+    llvm::Value * must_be_freed;
 
 public:
 
index 08efb90..64ad745 100644 (file)
@@ -32,6 +32,8 @@
 #include "llvm/PassManager.h"
 #include "llvm/Analysis/Passes.h"
 #include "llvm/Transforms/Scalar.h"
+#include "llvm/ADT/Triple.h"
+#include "llvm/Support/Host.h"
 
 #include "visitor.hxx"
 #include "allexp.hxx"
 #include "ScilabJITTraits.hxx"
 #include "AnalysisVisitor.hxx"
 
+#include "dynlib_ast.h"
+
 namespace jit
 {
 
 class JITVal;
 
-class JITVisitor : public ast::ConstVisitor
+class EXTERN_AST JITVisitor : public ast::ConstVisitor
 {
     typedef std::map<symbol::Symbol, std::shared_ptr<JITVal>> JITSymbolMap;
 
@@ -67,10 +71,9 @@ class JITVisitor : public ast::ConstVisitor
 
     JITSymbolMap symMap3;
 
-    llvm::Value * start = 0;
-    llvm::Value * step = 0;
-    llvm::Value * end = 0;
-
+    llvm::Value * start;
+    llvm::Value * step;
+    llvm::Value * end;
 public:
 
     static llvm::Value * const ONE;
index 759a28e..a5de15e 100644 (file)
@@ -10,8 +10,8 @@
  *
  */
 
-#ifndef __OPERATIONS_HXX__
-#define __OPERATIONS_HXX__
+#ifndef __JIT_OPERATIONS_HXX__
+#define __JIT_OPERATIONS_HXX__
 
 #include "JITValues.hxx"
 #include "types_addition.hxx"
@@ -64,4 +64,4 @@ std::shared_ptr<JITVal> dotmul_M_M(std::shared_ptr<JITVal> & L, std::shared_ptr<
 
 }
 
-#endif // __OPERATIONS_HXX__
+#endif // __JIT_OPERATIONS_HXX__
index 86056aa..ee057b6 100644 (file)
 #include "types_addition.hxx"
 #include "types_substraction.hxx"
 #include "types_multiplication.hxx"
+#include "dynlib_ast.h"
 
 extern "C"
 {
-    void putInContext_S_D_d(symbol::Context * ctxt, symbol::Variable * var, double x)
+    EXTERN_AST void putInContext_S_D_d(symbol::Context * ctxt, symbol::Variable * var, double x)
     {
         jit::putInContext_S<Double, double>(ctxt, var, x);
     }
 
-    void putInContext_M_D_ds(symbol::Context * ctxt, symbol::Variable * var, double * x, int r, int c)
+    EXTERN_AST void putInContext_M_D_ds(symbol::Context * ctxt, symbol::Variable * var, double * x, int r, int c)
     {
         jit::putInContext_M<Double, double>(ctxt, var, x, r, c);
     }
 
-    void add_M_M_d_d(double * l, long long size, double * r, double * o)
+    EXTERN_AST void add_M_M_d_d(double * l, long long size, double * r, double * o)
     {
         add<double, double>(l, size, r, o);
     }
 
-    void sub_M_M_d_d(double * l, long long size, double * r, double * o)
+    EXTERN_AST void sub_M_M_d_d(double * l, long long size, double * r, double * o)
     {
         sub<double, double>(l, size, r, o);
     }
 
-    void dotmul_M_M_d_d(double * l, long long size, double * r, double * o)
+    EXTERN_AST void dotmul_M_M_d_d(double * l, long long size, double * r, double * o)
     {
         dotmul<double, double>(l, size, r, o);
     }
index e678ad5..10ce3bd 100644 (file)
 #include "JITVisitor.hxx"
 #include "jit_operations.hxx"
 
+#ifdef _MSC_VER
+double trunc(double d)
+{
+    return (d > 0) ? floor(d) : ceil(d);
+}
+
+//#pragma comment(lib, ".lib")
+#pragma comment(lib, "LLVMLinker.lib")
+#pragma comment(lib, "LLVMNVPTXCodeGen.lib")
+#pragma comment(lib, "LLVMNVPTXDesc.lib")
+#pragma comment(lib, "LLVMNVPTXInfo.lib")
+#pragma comment(lib, "LLVMObjCARCOpts.lib")
+#pragma comment(lib, "LLVMObject.lib")
+#pragma comment(lib, "LLVMOption.lib")
+#pragma comment(lib, "LLVMPowerPCAsmParser.lib")
+#pragma comment(lib, "LLVMPowerPCAsmPrinter.lib")
+#pragma comment(lib, "LLVMPowerPCCodeGen.lib")
+#pragma comment(lib, "LLVMPowerPCDesc.lib")
+#pragma comment(lib, "LLVMPowerPCInfo.lib")
+#pragma comment(lib, "LLVMR600AsmPrinter.lib")
+#pragma comment(lib, "LLVMR600CodeGen.lib")
+#pragma comment(lib, "LLVMR600Desc.lib")
+#pragma comment(lib, "LLVMR600Info.lib")
+#pragma comment(lib, "LLVMRuntimeDyld.lib")
+#pragma comment(lib, "LLVMScalarOpts.lib")
+#pragma comment(lib, "LLVMSelectionDAG.lib")
+#pragma comment(lib, "LLVMSparcCodeGen.lib")
+#pragma comment(lib, "LLVMSparcDesc.lib")
+#pragma comment(lib, "LLVMSparcInfo.lib")
+#pragma comment(lib, "LLVMSupport.lib")
+#pragma comment(lib, "LLVMSystemZAsmParser.lib")
+#pragma comment(lib, "LLVMSystemZAsmPrinter.lib")
+#pragma comment(lib, "LLVMSystemZCodeGen.lib")
+#pragma comment(lib, "LLVMSystemZDesc.lib")
+#pragma comment(lib, "LLVMSystemZDisassembler.lib")
+#pragma comment(lib, "LLVMSystemZInfo.lib")
+#pragma comment(lib, "LLVMTableGen.lib")
+#pragma comment(lib, "LLVMTarget.lib")
+#pragma comment(lib, "LLVMTransformUtils.lib")
+#pragma comment(lib, "LLVMVectorize.lib")
+#pragma comment(lib, "LLVMX86AsmParser.lib")
+#pragma comment(lib, "LLVMX86AsmPrinter.lib")
+#pragma comment(lib, "LLVMX86CodeGen.lib")
+#pragma comment(lib, "LLVMX86Desc.lib")
+#pragma comment(lib, "LLVMX86Disassembler.lib")
+#pragma comment(lib, "LLVMX86Info.lib")
+#pragma comment(lib, "LLVMX86Utils.lib")
+#pragma comment(lib, "LLVMXCoreAsmPrinter.lib")
+#pragma comment(lib, "LLVMXCoreCodeGen.lib")
+#pragma comment(lib, "LLVMXCoreDesc.lib")
+#pragma comment(lib, "LLVMXCoreDisassembler.lib")
+#pragma comment(lib, "LLVMXCoreInfo.lib")
+#pragma comment(lib, "LLVMipa.lib")
+#pragma comment(lib, "LLVMipo.lib")
+#pragma comment(lib, "LTO.lib")
+#pragma comment(lib, "gtest.lib")
+#pragma comment(lib, "gtest_main.lib")
+#pragma comment(lib, "LLVMAArch64AsmParser.lib")
+#pragma comment(lib, "LLVMAArch64AsmPrinter.lib")
+#pragma comment(lib, "LLVMAArch64CodeGen.lib")
+#pragma comment(lib, "LLVMAArch64Desc.lib")
+#pragma comment(lib, "LLVMAArch64Disassembler.lib")
+#pragma comment(lib, "LLVMAArch64Info.lib")
+#pragma comment(lib, "LLVMAArch64Utils.lib")
+#pragma comment(lib, "LLVMARMAsmParser.lib")
+#pragma comment(lib, "LLVMARMAsmPrinter.lib")
+#pragma comment(lib, "LLVMARMCodeGen.lib")
+#pragma comment(lib, "LLVMARMDesc.lib")
+#pragma comment(lib, "LLVMARMDisassembler.lib")
+#pragma comment(lib, "LLVMARMInfo.lib")
+#pragma comment(lib, "LLVMAnalysis.lib")
+#pragma comment(lib, "LLVMAsmParser.lib")
+#pragma comment(lib, "LLVMAsmPrinter.lib")
+#pragma comment(lib, "LLVMBitReader.lib")
+#pragma comment(lib, "LLVMBitWriter.lib")
+#pragma comment(lib, "LLVMCodeGen.lib")
+#pragma comment(lib, "LLVMCore.lib")
+#pragma comment(lib, "LLVMCppBackendCodeGen.lib")
+#pragma comment(lib, "LLVMCppBackendInfo.lib")
+#pragma comment(lib, "LLVMDebugInfo.lib")
+#pragma comment(lib, "LLVMExecutionEngine.lib")
+#pragma comment(lib, "LLVMHexagonAsmPrinter.lib")
+#pragma comment(lib, "LLVMHexagonCodeGen.lib")
+#pragma comment(lib, "LLVMHexagonDesc.lib")
+#pragma comment(lib, "LLVMHexagonInfo.lib")
+#pragma comment(lib, "LLVMIRReader.lib")
+#pragma comment(lib, "LLVMInstCombine.lib")
+#pragma comment(lib, "LLVMInstrumentation.lib")
+#pragma comment(lib, "LLVMInterpreter.lib")
+#pragma comment(lib, "LLVMJIT.lib")
+#pragma comment(lib, "LLVMLTO.lib")
+#pragma comment(lib, "LLVMLinker.lib")
+#pragma comment(lib, "LLVMMC.lib")
+#pragma comment(lib, "LLVMMCDisassembler.lib")
+#pragma comment(lib, "LLVMMCJIT.lib")
+#pragma comment(lib, "LLVMMCParser.lib")
+#pragma comment(lib, "LLVMMSP430AsmPrinter.lib")
+#pragma comment(lib, "LLVMMSP430CodeGen.lib")
+#pragma comment(lib, "LLVMMSP430Desc.lib")
+#pragma comment(lib, "LLVMMSP430Info.lib")
+#pragma comment(lib, "LLVMMipsAsmParser.lib")
+#pragma comment(lib, "LLVMMipsAsmPrinter.lib")
+#pragma comment(lib, "LLVMMipsCodeGen.lib")
+#pragma comment(lib, "LLVMMipsDesc.lib")
+#pragma comment(lib, "LLVMMipsDisassembler.lib")
+#pragma comment(lib, "LLVMMipsInfo.lib")
+#pragma comment(lib, "LLVMNVPTXAsmPrinter.lib")
+
+#endif
+
 namespace jit
 {
 const bool JITVisitor::__init__ = InitializeLLVM();
@@ -31,7 +141,10 @@ JITVisitor::JITVisitor(const analysis::AnalysisVisitor & _analysis) : ast::Const
     function(llvm::cast<llvm::Function>(module.getOrInsertFunction("jit_main", getLLVMTy<void>(context), nullptr))),
     builder(context),
     uintptrType(getPtrAsIntTy(module, context)),
-    _result(nullptr)
+    _result(nullptr),
+    start(0),
+    step(0),
+    end(0)
 {
     module.setDataLayout(engine->getDataLayout()->getStringRepresentation());
     llvm::BasicBlock * BB = llvm::BasicBlock::Create(context, "EntryBlock", function);
@@ -373,9 +486,15 @@ void JITVisitor::visit(const ast::ForExp &e)
 
         if (!ISNAN(list_values[0]) && !ISNAN(list_values[1]) && !ISNAN(list_values[2]))
         {
+#ifdef _MSC_VER
+            const double tstart = trunc(list_values[0]);
+            const double tstep = trunc(list_values[1]);
+            const double tend = trunc(list_values[2]);
+#else
             const double tstart = std::trunc(list_values[0]);
             const double tstep = std::trunc(list_values[1]);
             const double tend = std::trunc(list_values[2]);
+#endif
 
             inc = list_values[1] >= 0;
             known_step = true;
index 9fafa84..a068fb0 100644 (file)
     <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
     <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <IncludePath>$(LLVM_64_DEBUG)/include;$(IncludePath)</IncludePath>
+    <LibraryPath>$(LLVM_64_DEBUG)/lib;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <IncludePath>$(LLVM_64_RELEASE)/include;$(IncludePath)</IncludePath>
+    <LibraryPath>$(LLVM_64_RELEASE)/lib;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <IncludePath>$(LLVM_32_DEBUG)/include;$(IncludePath)</IncludePath>
+    <LibraryPath>$(LLVM_32_DEBUG)/lib;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <IncludePath>$(LLVM_32_RELEASE)/include;$(IncludePath)</IncludePath>
+    <LibraryPath>$(LLVM_32_RELEASE)/lib;$(LibraryPath)</LibraryPath>
+  </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>../../includes;../../../../libs/libxml2;../../../../libs/intl;../../../../libs/Eigen/includes;../../../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/exps;../../../ast/includes/operations;../../../ast/includes/symbol;../../../ast/includes/system_env;../../../ast/includes/parse;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../includes;../../../../libs/libxml2;../../../../libs/intl;../../../../libs/Eigen/includes;../../../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/exps;../../../ast/includes/operations;../../../ast/includes/symbol;../../../ast/includes/system_env;../../../ast/includes/parse;../../../ast/includes/analysis;../../../ast/includes/jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;FUNCTIONS_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>../../includes;../../../../libs/libxml2;../../../../libs/intl;../../../../libs/Eigen/includes;../../../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/exps;../../../ast/includes/operations;../../../ast/includes/symbol;../../../ast/includes/system_env;../../../ast/includes/parse;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../includes;../../../../libs/libxml2;../../../../libs/intl;../../../../libs/Eigen/includes;../../../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/exps;../../../ast/includes/operations;../../../ast/includes/symbol;../../../ast/includes/system_env;../../../ast/includes/parse;../../../ast/includes/analysis;../../../ast/includes/jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;FUNCTIONS_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>../../includes;../../../../libs/libxml2;../../../../libs/intl;../../../../libs/Eigen/includes;../../../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/exps;../../../ast/includes/operations;../../../ast/includes/symbol;../../../ast/includes/system_env;../../../ast/includes/parse;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../includes;../../../../libs/libxml2;../../../../libs/intl;../../../../libs/Eigen/includes;../../../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/exps;../../../ast/includes/operations;../../../ast/includes/symbol;../../../ast/includes/system_env;../../../ast/includes/parse;../../../ast/includes/analysis;../../../ast/includes/jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;FUNCTIONS_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>../../includes;../../../../libs/libxml2;../../../../libs/intl;../../../../libs/Eigen/includes;../../../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/exps;../../../ast/includes/operations;../../../ast/includes/symbol;../../../ast/includes/system_env;../../../ast/includes/parse;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>../../includes;../../../../libs/libxml2;../../../../libs/intl;../../../../libs/Eigen/includes;../../../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/exps;../../../ast/includes/operations;../../../ast/includes/symbol;../../../ast/includes/system_env;../../../ast/includes/parse;../../../ast/includes/analysis;../../../ast/includes/jit;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;FUNCTIONS_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
     <ClCompile Include="sci_functionlist.cpp" />
     <ClCompile Include="sci_getCurrentThreadId.cpp" />
     <ClCompile Include="sci_getThreads.cpp" />
+    <ClCompile Include="sci_jit.cpp" />
     <ClCompile Include="sci_macrovar.cpp" />
     <ClCompile Include="sci_whereis.cpp" />
   </ItemGroup>
index 7eb24f9..c6baa5f 100644 (file)
@@ -36,6 +36,9 @@
     <ClCompile Include="sci_macrovar.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="sci_jit.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\includes\dynlib_functions_gw.h">
index ae6d837..d2c5551 100644 (file)
@@ -40,6 +40,111 @@ extern "C"
 #include "os_swprintf.h"
 }
 
+#ifdef _MSC_VER
+#pragma comment(lib, "LLVMLinker.lib")
+#pragma comment(lib, "LLVMNVPTXCodeGen.lib")
+#pragma comment(lib, "LLVMNVPTXDesc.lib")
+#pragma comment(lib, "LLVMNVPTXInfo.lib")
+#pragma comment(lib, "LLVMObjCARCOpts.lib")
+#pragma comment(lib, "LLVMObject.lib")
+#pragma comment(lib, "LLVMOption.lib")
+#pragma comment(lib, "LLVMPowerPCAsmParser.lib")
+#pragma comment(lib, "LLVMPowerPCAsmPrinter.lib")
+#pragma comment(lib, "LLVMPowerPCCodeGen.lib")
+#pragma comment(lib, "LLVMPowerPCDesc.lib")
+#pragma comment(lib, "LLVMPowerPCInfo.lib")
+#pragma comment(lib, "LLVMR600AsmPrinter.lib")
+#pragma comment(lib, "LLVMR600CodeGen.lib")
+#pragma comment(lib, "LLVMR600Desc.lib")
+#pragma comment(lib, "LLVMR600Info.lib")
+#pragma comment(lib, "LLVMRuntimeDyld.lib")
+#pragma comment(lib, "LLVMScalarOpts.lib")
+#pragma comment(lib, "LLVMSelectionDAG.lib")
+#pragma comment(lib, "LLVMSparcCodeGen.lib")
+#pragma comment(lib, "LLVMSparcDesc.lib")
+#pragma comment(lib, "LLVMSparcInfo.lib")
+#pragma comment(lib, "LLVMSupport.lib")
+#pragma comment(lib, "LLVMSystemZAsmParser.lib")
+#pragma comment(lib, "LLVMSystemZAsmPrinter.lib")
+#pragma comment(lib, "LLVMSystemZCodeGen.lib")
+#pragma comment(lib, "LLVMSystemZDesc.lib")
+#pragma comment(lib, "LLVMSystemZDisassembler.lib")
+#pragma comment(lib, "LLVMSystemZInfo.lib")
+#pragma comment(lib, "LLVMTableGen.lib")
+#pragma comment(lib, "LLVMTarget.lib")
+#pragma comment(lib, "LLVMTransformUtils.lib")
+#pragma comment(lib, "LLVMVectorize.lib")
+#pragma comment(lib, "LLVMX86AsmParser.lib")
+#pragma comment(lib, "LLVMX86AsmPrinter.lib")
+#pragma comment(lib, "LLVMX86CodeGen.lib")
+#pragma comment(lib, "LLVMX86Desc.lib")
+#pragma comment(lib, "LLVMX86Disassembler.lib")
+#pragma comment(lib, "LLVMX86Info.lib")
+#pragma comment(lib, "LLVMX86Utils.lib")
+#pragma comment(lib, "LLVMXCoreAsmPrinter.lib")
+#pragma comment(lib, "LLVMXCoreCodeGen.lib")
+#pragma comment(lib, "LLVMXCoreDesc.lib")
+#pragma comment(lib, "LLVMXCoreDisassembler.lib")
+#pragma comment(lib, "LLVMXCoreInfo.lib")
+#pragma comment(lib, "LLVMipa.lib")
+#pragma comment(lib, "LLVMipo.lib")
+#pragma comment(lib, "LTO.lib")
+#pragma comment(lib, "gtest.lib")
+#pragma comment(lib, "gtest_main.lib")
+#pragma comment(lib, "LLVMAArch64AsmParser.lib")
+#pragma comment(lib, "LLVMAArch64AsmPrinter.lib")
+#pragma comment(lib, "LLVMAArch64CodeGen.lib")
+#pragma comment(lib, "LLVMAArch64Desc.lib")
+#pragma comment(lib, "LLVMAArch64Disassembler.lib")
+#pragma comment(lib, "LLVMAArch64Info.lib")
+#pragma comment(lib, "LLVMAArch64Utils.lib")
+#pragma comment(lib, "LLVMARMAsmParser.lib")
+#pragma comment(lib, "LLVMARMAsmPrinter.lib")
+#pragma comment(lib, "LLVMARMCodeGen.lib")
+#pragma comment(lib, "LLVMARMDesc.lib")
+#pragma comment(lib, "LLVMARMDisassembler.lib")
+#pragma comment(lib, "LLVMARMInfo.lib")
+#pragma comment(lib, "LLVMAnalysis.lib")
+#pragma comment(lib, "LLVMAsmParser.lib")
+#pragma comment(lib, "LLVMAsmPrinter.lib")
+#pragma comment(lib, "LLVMBitReader.lib")
+#pragma comment(lib, "LLVMBitWriter.lib")
+#pragma comment(lib, "LLVMCodeGen.lib")
+#pragma comment(lib, "LLVMCore.lib")
+#pragma comment(lib, "LLVMCppBackendCodeGen.lib")
+#pragma comment(lib, "LLVMCppBackendInfo.lib")
+#pragma comment(lib, "LLVMDebugInfo.lib")
+#pragma comment(lib, "LLVMExecutionEngine.lib")
+#pragma comment(lib, "LLVMHexagonAsmPrinter.lib")
+#pragma comment(lib, "LLVMHexagonCodeGen.lib")
+#pragma comment(lib, "LLVMHexagonDesc.lib")
+#pragma comment(lib, "LLVMHexagonInfo.lib")
+#pragma comment(lib, "LLVMIRReader.lib")
+#pragma comment(lib, "LLVMInstCombine.lib")
+#pragma comment(lib, "LLVMInstrumentation.lib")
+#pragma comment(lib, "LLVMInterpreter.lib")
+#pragma comment(lib, "LLVMJIT.lib")
+#pragma comment(lib, "LLVMLTO.lib")
+#pragma comment(lib, "LLVMLinker.lib")
+#pragma comment(lib, "LLVMMC.lib")
+#pragma comment(lib, "LLVMMCDisassembler.lib")
+#pragma comment(lib, "LLVMMCJIT.lib")
+#pragma comment(lib, "LLVMMCParser.lib")
+#pragma comment(lib, "LLVMMSP430AsmPrinter.lib")
+#pragma comment(lib, "LLVMMSP430CodeGen.lib")
+#pragma comment(lib, "LLVMMSP430Desc.lib")
+#pragma comment(lib, "LLVMMSP430Info.lib")
+#pragma comment(lib, "LLVMMipsAsmParser.lib")
+#pragma comment(lib, "LLVMMipsAsmPrinter.lib")
+#pragma comment(lib, "LLVMMipsCodeGen.lib")
+#pragma comment(lib, "LLVMMipsDesc.lib")
+#pragma comment(lib, "LLVMMipsDisassembler.lib")
+#pragma comment(lib, "LLVMMipsInfo.lib")
+#pragma comment(lib, "LLVMNVPTXAsmPrinter.lib")
+
+#endif
+
+
 using namespace std;
 using namespace types;
 using namespace ast;
@@ -91,6 +196,7 @@ Function::ReturnValue sci_jit(types::typed_list &in, int _iRetCount, types::type
         jit.dump();
         throw;
     }
+
     jit.run();
 
     delete pExp;