Revert "Removed Subzero compilation from SwiftShader solution"

It caused building Subzero individually to fail. Instead I've added
a header which will get included when the submodule is not present
and generates an error. The LLVM dependencies were split off into a
separate project to make this work.

This reverts commit d5d886eb1c5502c2b976388742b2bb50d4d0ce65.

Change-Id: Ie80a02e20ac67d6a4e0984e1fbab84b880a03469
Reviewed-on: https://swiftshader-review.googlesource.com/7611
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/Reactor/SubmoduleCheck/src/IceTypes.h b/src/Reactor/SubmoduleCheck/src/IceTypes.h
new file mode 100644
index 0000000..0644afe
--- /dev/null
+++ b/src/Reactor/SubmoduleCheck/src/IceTypes.h
@@ -0,0 +1,2 @@
+// These are not the headers you're looking for

+#error "Missing subzero submodule. Run git submodule update --init"
\ No newline at end of file
diff --git a/src/Reactor/Subzero.vcxproj b/src/Reactor/Subzero.vcxproj
index 7bf864c..4b00fdc 100644
--- a/src/Reactor/Subzero.vcxproj
+++ b/src/Reactor/Subzero.vcxproj
@@ -87,8 +87,9 @@
       <Optimization>Disabled</Optimization>

       <PreprocessorDefinitions>SZTARGET=X8632;ALLOW_DUMP=0;ALLOW_TIMERS=0;ALLOW_LLVM_CL=0;ALLOW_LLVM_IR=0;ALLOW_LLVM_IR_AS_INPUT=0;ALLOW_MINIMAL_BUILD=0;ALLOW_WASM=0;ICE_THREAD_LOCAL_HACK=0;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>

-      <AdditionalIncludeDirectories>..\;$(SolutionDir)third_party\pnacl-subzero;$(SolutionDir)third_party\llvm-subzero\include;$(SolutionDir)third_party\pnacl-subzero\pnacl-llvm\include</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;$(SolutionDir)third_party\pnacl-subzero;$(SolutionDir)third_party\llvm-subzero\include;$(SolutionDir)third_party\pnacl-subzero\pnacl-llvm\include;SubmoduleCheck</AdditionalIncludeDirectories>

       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <ForcedIncludeFiles>src/IceTypes.h</ForcedIncludeFiles>

     </ClCompile>

     <Link>

       <SubSystem>Console</SubSystem>

@@ -103,8 +104,9 @@
       <Optimization>Disabled</Optimization>

       <PreprocessorDefinitions>SZTARGET=X8664;ALLOW_DUMP=0;ALLOW_TIMERS=0;ALLOW_LLVM_CL=0;ALLOW_LLVM_IR=0;ALLOW_LLVM_IR_AS_INPUT=0;ALLOW_MINIMAL_BUILD=0;ALLOW_WASM=0;ICE_THREAD_LOCAL_HACK=0;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>

-      <AdditionalIncludeDirectories>..\;$(SolutionDir)third_party\pnacl-subzero;$(SolutionDir)third_party\llvm-subzero\include;$(SolutionDir)third_party\pnacl-subzero\pnacl-llvm\include</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;$(SolutionDir)third_party\pnacl-subzero;$(SolutionDir)third_party\llvm-subzero\include;$(SolutionDir)third_party\pnacl-subzero\pnacl-llvm\include;SubmoduleCheck</AdditionalIncludeDirectories>

       <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <ForcedIncludeFiles>src/IceTypes.h</ForcedIncludeFiles>

     </ClCompile>

     <Link>

       <SubSystem>Console</SubSystem>

@@ -121,7 +123,8 @@
       <IntrinsicFunctions>true</IntrinsicFunctions>

       <PreprocessorDefinitions>SZTARGET=X8632;ALLOW_DUMP=0;ALLOW_TIMERS=0;ALLOW_LLVM_CL=0;ALLOW_LLVM_IR=0;ALLOW_LLVM_IR_AS_INPUT=0;ALLOW_MINIMAL_BUILD=0;ALLOW_WASM=0;ICE_THREAD_LOCAL_HACK=0;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>

-      <AdditionalIncludeDirectories>..\;$(SolutionDir)third_party\pnacl-subzero;$(SolutionDir)third_party\llvm-subzero\include;$(SolutionDir)third_party\pnacl-subzero\pnacl-llvm\include</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;$(SolutionDir)third_party\pnacl-subzero;$(SolutionDir)third_party\llvm-subzero\include;$(SolutionDir)third_party\pnacl-subzero\pnacl-llvm\include;SubmoduleCheck</AdditionalIncludeDirectories>

+      <ForcedIncludeFiles>src/IceTypes.h</ForcedIncludeFiles>

     </ClCompile>

     <Link>

       <SubSystem>Console</SubSystem>

@@ -140,11 +143,12 @@
       <IntrinsicFunctions>true</IntrinsicFunctions>

       <PreprocessorDefinitions>SZTARGET=X8664;ALLOW_DUMP=0;ALLOW_TIMERS=0;ALLOW_LLVM_CL=0;ALLOW_LLVM_IR=0;ALLOW_LLVM_IR_AS_INPUT=0;ALLOW_MINIMAL_BUILD=0;ALLOW_WASM=0;ICE_THREAD_LOCAL_HACK=0;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>

       <AdditionalUsingDirectories>%(AdditionalUsingDirectories)</AdditionalUsingDirectories>

-      <AdditionalIncludeDirectories>..\;$(SolutionDir)third_party\pnacl-subzero;$(SolutionDir)third_party\llvm-subzero\include;$(SolutionDir)third_party\pnacl-subzero\pnacl-llvm\include</AdditionalIncludeDirectories>

+      <AdditionalIncludeDirectories>..\;$(SolutionDir)third_party\pnacl-subzero;$(SolutionDir)third_party\llvm-subzero\include;$(SolutionDir)third_party\pnacl-subzero\pnacl-llvm\include;SubmoduleCheck</AdditionalIncludeDirectories>

       <FavorSizeOrSpeed>Size</FavorSizeOrSpeed>

       <OmitFramePointers>true</OmitFramePointers>

       <EnableFiberSafeOptimizations>true</EnableFiberSafeOptimizations>

       <InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>

+      <ForcedIncludeFiles>src/IceTypes.h</ForcedIncludeFiles>

     </ClCompile>

     <Link>

       <SubSystem>Console</SubSystem>

@@ -154,48 +158,16 @@
     </Link>

   </ItemDefinitionGroup>

   <ItemGroup>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\APInt.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Atomic.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\circular_raw_ostream.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\CommandLine.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\ConvertUTF.c" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\ConvertUTFWrapper.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Debug.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\ErrorHandling.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\FoldingSet.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Hashing.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Host.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\ManagedStatic.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\MemoryBuffer.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Mutex.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Path.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Process.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Program.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\raw_ostream.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\raw_os_ostream.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Signals.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\SmallPtrSet.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\SmallVector.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\StringExtras.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\StringMap.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\StringRef.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\StringSaver.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\TargetParser.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Threading.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Timer.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\TimeValue.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Triple.cpp" />

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Twine.cpp" />

-    <ClCompile Include="..\..\third_party\pnacl-subzero\src\IceInstX8632.cpp">

+    <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceInstX8632.cpp">

       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

     </ClCompile>

-    <ClCompile Include="..\..\third_party\pnacl-subzero\src\IceInstX8664.cpp">

+    <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceInstX8664.cpp">

       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

     </ClCompile>

-    <ClCompile Include="..\..\third_party\pnacl-subzero\src\IceTargetLoweringX8632.cpp">

+    <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceTargetLoweringX8632.cpp">

       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>

     </ClCompile>

-    <ClCompile Include="..\..\third_party\pnacl-subzero\src\IceTargetLoweringX8664.cpp">

+    <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceTargetLoweringX8664.cpp">

       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>

     </ClCompile>

     <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceAssembler.cpp" />

@@ -288,10 +260,15 @@
     <None Include="$(SolutionDir)third_party\pnacl-subzero\src\IceTimerTree.def" />

     <None Include="$(SolutionDir)third_party\pnacl-subzero\src\IceTypes.def" />

     <None Include="$(SolutionDir)third_party\pnacl-subzero\src\SZTargets.def" />

-    <None Include="..\..\third_party\pnacl-subzero\src\IceInstX8632.def" />

-    <None Include="..\..\third_party\pnacl-subzero\src\IceInstX8664.def" />

-    <None Include="..\..\third_party\pnacl-subzero\src\IceTargetLoweringX8632.def" />

-    <None Include="..\..\third_party\pnacl-subzero\src\IceTargetLoweringX8664.def" />

+    <None Include="$(SolutionDir)third_party\pnacl-subzero\src\IceInstX8632.def" />

+    <None Include="$(SolutionDir)third_party\pnacl-subzero\src\IceInstX8664.def" />

+    <None Include="$(SolutionDir)third_party\pnacl-subzero\src\IceTargetLoweringX8632.def" />

+    <None Include="$(SolutionDir)third_party\pnacl-subzero\src\IceTargetLoweringX8664.def" />

+  </ItemGroup>

+  <ItemGroup>

+    <ProjectReference Include="SubzeroLLVMDependencies.vcxproj">

+      <Project>{e3bbd7da-45c1-43ef-9c87-3f411031bde4}</Project>

+    </ProjectReference>

   </ItemGroup>

   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

   <ImportGroup Label="ExtensionTargets">

diff --git a/src/Reactor/Subzero.vcxproj.filters b/src/Reactor/Subzero.vcxproj.filters
index 89b2c4d..fb90d91 100644
--- a/src/Reactor/Subzero.vcxproj.filters
+++ b/src/Reactor/Subzero.vcxproj.filters
@@ -13,9 +13,6 @@
       <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>

       <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>

     </Filter>

-    <Filter Include="Source Files\LLVM">

-      <UniqueIdentifier>{af578803-bb6c-4fb6-a852-956e276b0b41}</UniqueIdentifier>

-    </Filter>

   </ItemGroup>

   <ItemGroup>

     <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceAssembler.cpp">

@@ -102,120 +99,24 @@
     <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceVariableSplitting.cpp">

       <Filter>Source Files</Filter>

     </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\APInt.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Atomic.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\circular_raw_ostream.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\CommandLine.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\ConvertUTF.c">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\ConvertUTFWrapper.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Debug.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\ErrorHandling.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\FoldingSet.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Hashing.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Host.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\ManagedStatic.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\MemoryBuffer.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Mutex.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Path.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Process.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Program.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\raw_os_ostream.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\raw_ostream.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Signals.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\SmallPtrSet.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\SmallVector.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\StringExtras.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\StringMap.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\StringRef.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\StringSaver.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\TargetParser.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Threading.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Timer.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\TimeValue.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Triple.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="$(SolutionDir)third_party\llvm-subzero\lib\Support\Twine.cpp">

-      <Filter>Source Files\LLVM</Filter>

-    </ClCompile>

-    <ClCompile Include="..\..\third_party\pnacl-subzero\src\IceInstX8664.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-    <ClCompile Include="..\..\third_party\pnacl-subzero\src\IceTargetLoweringX8664.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-    <ClCompile Include="..\..\third_party\pnacl-subzero\src\IceInstX8632.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

-    <ClCompile Include="..\..\third_party\pnacl-subzero\src\IceTargetLoweringX8632.cpp">

-      <Filter>Source Files</Filter>

-    </ClCompile>

     <ClCompile Include="SubzeroReactor.cpp">

       <Filter>Source Files</Filter>

     </ClCompile>

     <ClCompile Include="Routine.cpp">

       <Filter>Source Files</Filter>

     </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceInstX8632.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceInstX8664.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceTargetLoweringX8632.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

+    <ClCompile Include="$(SolutionDir)third_party\pnacl-subzero\src\IceTargetLoweringX8664.cpp">

+      <Filter>Source Files</Filter>

+    </ClCompile>

   </ItemGroup>

   <ItemGroup>

     <ClInclude Include="$(SolutionDir)third_party\pnacl-subzero\src\IceAssembler.h">

@@ -388,17 +289,17 @@
     <None Include="$(SolutionDir)third_party\pnacl-subzero\src\SZTargets.def">

       <Filter>Source Files</Filter>

     </None>

-    <None Include="..\..\third_party\pnacl-subzero\src\IceInstX8664.def">

-      <Filter>Header Files</Filter>

+    <None Include="$(SolutionDir)third_party\pnacl-subzero\src\IceInstX8632.def">

+      <Filter>Source Files</Filter>

     </None>

-    <None Include="..\..\third_party\pnacl-subzero\src\IceTargetLoweringX8664.def">

-      <Filter>Header Files</Filter>

+    <None Include="$(SolutionDir)third_party\pnacl-subzero\src\IceInstX8664.def">

+      <Filter>Source Files</Filter>

     </None>

-    <None Include="..\..\third_party\pnacl-subzero\src\IceInstX8632.def">

-      <Filter>Header Files</Filter>

+    <None Include="$(SolutionDir)third_party\pnacl-subzero\src\IceTargetLoweringX8632.def">

+      <Filter>Source Files</Filter>

     </None>

-    <None Include="..\..\third_party\pnacl-subzero\src\IceTargetLoweringX8632.def">

-      <Filter>Header Files</Filter>

+    <None Include="$(SolutionDir)third_party\pnacl-subzero\src\IceTargetLoweringX8664.def">

+      <Filter>Source Files</Filter>

     </None>

   </ItemGroup>

 </Project>
\ No newline at end of file
diff --git a/src/Reactor/SubzeroLLVMDependencies.vcxproj b/src/Reactor/SubzeroLLVMDependencies.vcxproj
new file mode 100644
index 0000000..60da98e
--- /dev/null
+++ b/src/Reactor/SubzeroLLVMDependencies.vcxproj
@@ -0,0 +1,308 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|Win32">

+      <Configuration>Debug</Configuration>

+      <Platform>Win32</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|Win32">

+      <Configuration>Release</Configuration>

+      <Platform>Win32</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Debug|x64">

+      <Configuration>Debug</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|x64">

+      <Configuration>Release</Configuration>

+      <Platform>x64</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectGuid>{E3BBD7DA-45C1-43EF-9C87-3F411031BDE4}</ProjectGuid>

+    <RootNamespace>SubzeroLLVMDependencies</RootNamespace>

+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <UseDebugLibraries>true</UseDebugLibraries>

+    <PlatformToolset>v140</PlatformToolset>

+    <CharacterSet>NotSet</CharacterSet>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <UseDebugLibraries>false</UseDebugLibraries>

+    <PlatformToolset>v140</PlatformToolset>

+    <WholeProgramOptimization>true</WholeProgramOptimization>

+    <CharacterSet>NotSet</CharacterSet>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <UseDebugLibraries>true</UseDebugLibraries>

+    <PlatformToolset>v140</PlatformToolset>

+    <CharacterSet>NotSet</CharacterSet>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <UseDebugLibraries>false</UseDebugLibraries>

+    <PlatformToolset>v140</PlatformToolset>

+    <WholeProgramOptimization>true</WholeProgramOptimization>

+    <CharacterSet>NotSet</CharacterSet>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Label="Shared">

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup />

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

+    <ClCompile>

+      <WarningLevel>Level3</WarningLevel>

+      <Optimization>Disabled</Optimization>

+      <SDLCheck>

+      </SDLCheck>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\llvm-subzero\include</AdditionalIncludeDirectories>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+    </ClCompile>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">

+    <ClCompile>

+      <WarningLevel>Level3</WarningLevel>

+      <Optimization>Disabled</Optimization>

+      <SDLCheck>

+      </SDLCheck>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\llvm-subzero\include</AdditionalIncludeDirectories>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+    </ClCompile>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

+    <ClCompile>

+      <WarningLevel>Level3</WarningLevel>

+      <Optimization>MaxSpeed</Optimization>

+      <FunctionLevelLinking>true</FunctionLevelLinking>

+      <IntrinsicFunctions>true</IntrinsicFunctions>

+      <SDLCheck>

+      </SDLCheck>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\llvm-subzero\include</AdditionalIncludeDirectories>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+    </ClCompile>

+    <Link>

+      <EnableCOMDATFolding>true</EnableCOMDATFolding>

+      <OptimizeReferences>true</OptimizeReferences>

+    </Link>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">

+    <ClCompile>

+      <WarningLevel>Level3</WarningLevel>

+      <Optimization>MaxSpeed</Optimization>

+      <FunctionLevelLinking>true</FunctionLevelLinking>

+      <IntrinsicFunctions>true</IntrinsicFunctions>

+      <SDLCheck>

+      </SDLCheck>

+      <AdditionalIncludeDirectories>$(SolutionDir)third_party\llvm-subzero\include</AdditionalIncludeDirectories>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+    </ClCompile>

+    <Link>

+      <EnableCOMDATFolding>true</EnableCOMDATFolding>

+      <OptimizeReferences>true</OptimizeReferences>

+    </Link>

+  </ItemDefinitionGroup>

+  <ItemGroup>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\APInt.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Atomic.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\circular_raw_ostream.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\CommandLine.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\ConvertUTF.c" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\ConvertUTFWrapper.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Debug.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\ErrorHandling.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\FoldingSet.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Hashing.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Host.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\ManagedStatic.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\MemoryBuffer.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Mutex.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Path.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Process.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Program.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\raw_ostream.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\raw_os_ostream.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Signals.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\SmallPtrSet.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\SmallVector.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\StringExtras.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\StringMap.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\StringRef.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\StringSaver.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\TargetParser.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Threading.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Timer.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\TimeValue.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Triple.cpp" />

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Twine.cpp" />

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm-c\ErrorHandling.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm-c\Support.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm-c\Types.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\APFloat.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\APInt.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ArrayRef.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\BitVector.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\DenseMap.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\DenseMapInfo.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\edit_distance.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\EpochTracker.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\FoldingSet.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\Hashing.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ilist.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ilist_base.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ilist_iterator.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ilist_node.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ilist_node_base.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\IntrusiveRefCntPtr.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\iterator.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\iterator_range.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\None.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\Optional.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\PointerIntPair.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\PointerUnion.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\simple_ilist.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\SmallPtrSet.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\SmallString.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\SmallVector.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\Statistic.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\STLExtras.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\StringExtras.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\StringMap.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\StringRef.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\StringSwitch.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\Triple.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\Twine.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Config\config.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Config\llvm-config.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IRReader\IRReader.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Argument.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Attributes.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\BasicBlock.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\CallingConv.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Constant.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\DebugLoc.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\DerivedTypes.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Function.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\GlobalObject.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\GlobalValue.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Instruction.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\LLVMContext.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Metadata.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\OperandTraits.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\SymbolTableListTraits.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\TrackingMDRef.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Type.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Use.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\User.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Value.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\AlignOf.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Allocator.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ARMBuildAttributes.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Atomic.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Casting.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\CBindingWrapping.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\circular_raw_ostream.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\COFF.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\CommandLine.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Compiler.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ConvertUTF.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\DataStream.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\DataTypes.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Debug.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELF.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Endian.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Errc.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Errno.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Error.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ErrorHandling.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ErrorOr.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\FileSystem.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\FileUtilities.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Format.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Host.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MachO.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ManagedStatic.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MathExtras.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MD5.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Memory.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MemoryBuffer.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MemoryObject.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Mutex.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MutexGuard.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Options.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Path.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\PointerLikeTypeTraits.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Process.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Program.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\raw_ostream.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\raw_os_ostream.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Signals.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\StreamingMemoryObject.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\StringSaver.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\SwapByteOrder.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\TargetParser.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\thread.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Threading.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Timer.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\TimeValue.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\type_traits.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Valgrind.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\WindowsError.h" />

+    <ClInclude Include="..\..\third_party\llvm-subzero\lib\Support\Windows\WindowsSupport.h" />

+  </ItemGroup>

+  <ItemGroup>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\IR\Attributes.inc" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\IR\Instruction.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\IR\Metadata.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\IR\Value.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\AArch64TargetParser.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ARMTargetParser.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\AArch64.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\AMDGPU.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\ARM.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\AVR.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\BPF.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\Hexagon.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\i386.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\Lanai.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\Mips.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\PowerPC.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\PowerPC64.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\Sparc.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\SystemZ.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\WebAssembly.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\x86_64.def" />

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\MachO.def" />

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Host.inc" />

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Mutex.inc" />

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Path.inc" />

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Process.inc" />

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Program.inc" />

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Signals.inc" />

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\TimeValue.inc" />

+  </ItemGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/src/Reactor/SubzeroLLVMDependencies.vcxproj.filters b/src/Reactor/SubzeroLLVMDependencies.vcxproj.filters
new file mode 100644
index 0000000..e8fb6fd
--- /dev/null
+++ b/src/Reactor/SubzeroLLVMDependencies.vcxproj.filters
@@ -0,0 +1,572 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <Filter Include="Source Files">

+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>

+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>

+    </Filter>

+    <Filter Include="Header Files">

+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>

+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>

+    </Filter>

+    <Filter Include="Resource Files">

+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>

+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>

+    </Filter>

+    <Filter Include="Header Files\ADT">

+      <UniqueIdentifier>{0da3a0e9-f29e-4cd5-a25d-c0f44c1c09b2}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Header Files\Config">

+      <UniqueIdentifier>{242acd83-7eb0-4719-9882-c5d5e062c6a3}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Header Files\IR">

+      <UniqueIdentifier>{6a818501-5a25-409f-bc10-fa7347bf158f}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Header Files\IRReader">

+      <UniqueIdentifier>{285fee05-6da7-4236-a40e-2c82149f2da8}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Header Files\Support">

+      <UniqueIdentifier>{0e46939b-2156-4e7f-a4bc-fd2f88dd570b}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Header Files\Support\ELFRelocs">

+      <UniqueIdentifier>{cb9e0505-85f3-4018-af9f-d4315c6e3a63}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Source Files\Support">

+      <UniqueIdentifier>{8ab31cf9-a6b8-455b-8a2e-e7d6278f09f8}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="Source Files\Support\Windows">

+      <UniqueIdentifier>{8afa9624-d7d9-4dca-adcf-c9b45938f2b4}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+  <ItemGroup>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\APInt.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Atomic.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\circular_raw_ostream.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\CommandLine.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\ConvertUTF.c">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\ConvertUTFWrapper.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Debug.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\ErrorHandling.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\FoldingSet.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Hashing.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Host.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\ManagedStatic.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\MemoryBuffer.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Mutex.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Path.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Process.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Program.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\raw_os_ostream.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\raw_ostream.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Signals.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\SmallPtrSet.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\SmallVector.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\StringExtras.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\StringMap.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\StringRef.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\StringSaver.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\TargetParser.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Threading.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Timer.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\TimeValue.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Triple.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\third_party\llvm-subzero\lib\Support\Twine.cpp">

+      <Filter>Source Files\Support</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\APFloat.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\APInt.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ArrayRef.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\BitVector.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\DenseMap.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\DenseMapInfo.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\edit_distance.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\EpochTracker.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\FoldingSet.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\Hashing.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ilist.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ilist_base.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ilist_iterator.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ilist_node.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\ilist_node_base.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\IntrusiveRefCntPtr.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\iterator.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\iterator_range.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\None.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\Optional.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\PointerIntPair.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\PointerUnion.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\simple_ilist.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\SmallPtrSet.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\SmallString.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\SmallVector.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\Statistic.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\STLExtras.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\StringExtras.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\StringMap.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\StringRef.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\StringSwitch.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\Triple.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\ADT\Twine.h">

+      <Filter>Header Files\ADT</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\AlignOf.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Allocator.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ARMBuildAttributes.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Atomic.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Casting.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\CBindingWrapping.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\circular_raw_ostream.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\COFF.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\CommandLine.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Compiler.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ConvertUTF.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\DataStream.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\DataTypes.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Debug.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELF.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Endian.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Errc.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Errno.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Error.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ErrorHandling.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ErrorOr.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\FileSystem.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\FileUtilities.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Format.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Host.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MachO.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\ManagedStatic.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MathExtras.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MD5.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Memory.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MemoryBuffer.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MemoryObject.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Mutex.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\MutexGuard.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Options.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Path.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\PointerLikeTypeTraits.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Process.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Program.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\raw_os_ostream.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\raw_ostream.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Signals.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\StreamingMemoryObject.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\StringSaver.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\SwapByteOrder.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\TargetParser.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\thread.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Threading.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Timer.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\TimeValue.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\type_traits.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\Valgrind.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Support\WindowsError.h">

+      <Filter>Header Files\Support</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IRReader\IRReader.h">

+      <Filter>Header Files\IRReader</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Argument.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Attributes.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\BasicBlock.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\CallingConv.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Constant.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\DebugLoc.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\DerivedTypes.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Function.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\GlobalObject.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\GlobalValue.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Instruction.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\LLVMContext.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Metadata.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\OperandTraits.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\SymbolTableListTraits.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\TrackingMDRef.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Type.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Use.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\User.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\IR\Value.h">

+      <Filter>Header Files\IR</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Config\config.h">

+      <Filter>Header Files\Config</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm\Config\llvm-config.h">

+      <Filter>Header Files\Config</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm-c\ErrorHandling.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm-c\Support.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\include\llvm-c\Types.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\third_party\llvm-subzero\lib\Support\Windows\WindowsSupport.h">

+      <Filter>Source Files\Support\Windows</Filter>

+    </ClInclude>

+  </ItemGroup>

+  <ItemGroup>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\AArch64.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\AMDGPU.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\ARM.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\AVR.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\BPF.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\Hexagon.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\i386.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\Lanai.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\Mips.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\PowerPC.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\PowerPC64.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\Sparc.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\SystemZ.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\WebAssembly.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ELFRelocs\x86_64.def">

+      <Filter>Header Files\Support\ELFRelocs</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\AArch64TargetParser.def">

+      <Filter>Header Files\Support</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\ARMTargetParser.def">

+      <Filter>Header Files\Support</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\Support\MachO.def">

+      <Filter>Header Files\Support</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\IR\Attributes.inc">

+      <Filter>Header Files\IR</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\IR\Instruction.def">

+      <Filter>Header Files\IR</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\IR\Metadata.def">

+      <Filter>Header Files\IR</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\include\llvm\IR\Value.def">

+      <Filter>Header Files\IR</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Host.inc">

+      <Filter>Source Files\Support\Windows</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Mutex.inc">

+      <Filter>Source Files\Support\Windows</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Path.inc">

+      <Filter>Source Files\Support\Windows</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Process.inc">

+      <Filter>Source Files\Support\Windows</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Program.inc">

+      <Filter>Source Files\Support\Windows</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\Signals.inc">

+      <Filter>Source Files\Support\Windows</Filter>

+    </None>

+    <None Include="..\..\third_party\llvm-subzero\lib\Support\Windows\TimeValue.inc">

+      <Filter>Source Files\Support\Windows</Filter>

+    </None>

+  </ItemGroup>

+</Project>
\ No newline at end of file
diff --git a/src/Reactor/SubzeroTest.vcxproj b/src/Reactor/SubzeroTest.vcxproj
index 6f27954..ba02fc8 100644
--- a/src/Reactor/SubzeroTest.vcxproj
+++ b/src/Reactor/SubzeroTest.vcxproj
@@ -152,6 +152,9 @@
   <ItemGroup>

     <ProjectReference Include="Subzero.vcxproj">

       <Project>{0eb31aec-b020-46ab-ba05-730f6d01c29b}</Project>

+      <UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>

+      <LinkLibraryDependencies>true</LinkLibraryDependencies>

+      <CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>

     </ProjectReference>

   </ItemGroup>

   <ItemGroup>