Add Windows configs for LLVM 7.0.

These were created by creating a Visual Studio solution for LLVM
itself and building it so it generates include\llvm\Config files.

Bug b/115344057

Change-Id: I22c93d63395fa27b8d8515d65c6bf4e09b3c16bb
Reviewed-on: https://swiftshader-review.googlesource.com/20608
Tested-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Alexis Hétu <sugoi@google.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 07bf597..04c9ab8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,6 +30,13 @@
 
 set(CMAKE_MACOSX_RPATH ON)
 
+if ((CMAKE_GENERATOR MATCHES "Visual Studio") AND (CMAKE_GENERATOR_TOOLSET STREQUAL ""))
+  message(WARNING "Visual Studio generators use the x86 host compiler by "
+                  "default, even for 64-bit targets. This can result in linker "
+                  "instability and out of memory errors. To use the 64-bit "
+                  "host compiler, pass -Thost=x64 on the CMake command line.")
+endif()
+
 ###########################################################
 # Options
 ###########################################################
@@ -1609,7 +1616,7 @@
 set(LLVM_INCLUDE_DIR "")
 
 if(WIN32)
-    # list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/include)
+    list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/windows/include)
 elseif(LINUX)
     list(APPEND LLVM_INCLUDE_DIR ${LLVM_CONFIG_DIR}/linux/include)
 elseif(APPLE)
diff --git a/third_party/llvm-7.0/configs/windows/include/llvm/Config/AsmParsers.def b/third_party/llvm-7.0/configs/windows/include/llvm/Config/AsmParsers.def
new file mode 100644
index 0000000..2681e26
--- /dev/null
+++ b/third_party/llvm-7.0/configs/windows/include/llvm/Config/AsmParsers.def
@@ -0,0 +1,40 @@
+/*===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===*\

+|*                                                                            *|

+|*                     The LLVM Compiler Infrastructure                       *|

+|*                                                                            *|

+|* This file is distributed under the University of Illinois Open Source      *|

+|* License. See LICENSE.TXT for details.                                      *|

+|*                                                                            *|

+|*===----------------------------------------------------------------------===*|

+|*                                                                            *|

+|* This file enumerates all of the assembly-language parsers                  *|

+|* supported by this build of LLVM. Clients of this file should define        *|

+|* the LLVM_ASM_PARSER macro to be a function-like macro with a               *|

+|* single parameter (the name of the target whose assembly can be             *|

+|* generated); including this file will then enumerate all of the             *|

+|* targets with assembly parsers.                                             *|

+|*                                                                            *|

+|* The set of targets supported by LLVM is generated at configuration         *|

+|* time, at which point this header is generated. Do not modify this          *|

+|* header directly.                                                           *|

+|*                                                                            *|

+\*===----------------------------------------------------------------------===*/

+

+#ifndef LLVM_ASM_PARSER

+#  error Please define the macro LLVM_ASM_PARSER(TargetName)

+#endif

+

+LLVM_ASM_PARSER(AArch64)

+LLVM_ASM_PARSER(AMDGPU)

+LLVM_ASM_PARSER(ARM)

+LLVM_ASM_PARSER(BPF)

+LLVM_ASM_PARSER(Hexagon)

+LLVM_ASM_PARSER(Lanai)

+LLVM_ASM_PARSER(Mips)

+LLVM_ASM_PARSER(PowerPC)

+LLVM_ASM_PARSER(Sparc)

+LLVM_ASM_PARSER(SystemZ)

+LLVM_ASM_PARSER(X86)

+

+

+#undef LLVM_ASM_PARSER

diff --git a/third_party/llvm-7.0/configs/windows/include/llvm/Config/AsmPrinters.def b/third_party/llvm-7.0/configs/windows/include/llvm/Config/AsmPrinters.def
new file mode 100644
index 0000000..c018233
--- /dev/null
+++ b/third_party/llvm-7.0/configs/windows/include/llvm/Config/AsmPrinters.def
@@ -0,0 +1,43 @@
+/*===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===*\

+|*                                                                            *|

+|*                     The LLVM Compiler Infrastructure                       *|

+|*                                                                            *|

+|* This file is distributed under the University of Illinois Open Source      *|

+|* License. See LICENSE.TXT for details.                                      *|

+|*                                                                            *|

+|*===----------------------------------------------------------------------===*|

+|*                                                                            *|

+|* This file enumerates all of the assembly-language printers                 *|

+|* supported by this build of LLVM. Clients of this file should define        *|

+|* the LLVM_ASM_PRINTER macro to be a function-like macro with a              *|

+|* single parameter (the name of the target whose assembly can be             *|

+|* generated); including this file will then enumerate all of the             *|

+|* targets with assembly printers.                                            *|

+|*                                                                            *|

+|* The set of targets supported by LLVM is generated at configuration         *|

+|* time, at which point this header is generated. Do not modify this          *|

+|* header directly.                                                           *|

+|*                                                                            *|

+\*===----------------------------------------------------------------------===*/

+

+#ifndef LLVM_ASM_PRINTER

+#  error Please define the macro LLVM_ASM_PRINTER(TargetName)

+#endif

+

+LLVM_ASM_PRINTER(AArch64)

+LLVM_ASM_PRINTER(AMDGPU)

+LLVM_ASM_PRINTER(ARM)

+LLVM_ASM_PRINTER(BPF)

+LLVM_ASM_PRINTER(Hexagon)

+LLVM_ASM_PRINTER(Lanai)

+LLVM_ASM_PRINTER(Mips)

+LLVM_ASM_PRINTER(MSP430)

+LLVM_ASM_PRINTER(NVPTX)

+LLVM_ASM_PRINTER(PowerPC)

+LLVM_ASM_PRINTER(Sparc)

+LLVM_ASM_PRINTER(SystemZ)

+LLVM_ASM_PRINTER(X86)

+LLVM_ASM_PRINTER(XCore)

+

+

+#undef LLVM_ASM_PRINTER

diff --git a/third_party/llvm-7.0/configs/windows/include/llvm/Config/Disassemblers.def b/third_party/llvm-7.0/configs/windows/include/llvm/Config/Disassemblers.def
new file mode 100644
index 0000000..934683b
--- /dev/null
+++ b/third_party/llvm-7.0/configs/windows/include/llvm/Config/Disassemblers.def
@@ -0,0 +1,41 @@
+/*===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===*\

+|*                                                                            *|

+|*                     The LLVM Compiler Infrastructure                       *|

+|*                                                                            *|

+|* This file is distributed under the University of Illinois Open Source      *|

+|* License. See LICENSE.TXT for details.                                      *|

+|*                                                                            *|

+|*===----------------------------------------------------------------------===*|

+|*                                                                            *|

+|* This file enumerates all of the assembly-language parsers                  *|

+|* supported by this build of LLVM. Clients of this file should define        *|

+|* the LLVM_DISASSEMBLER macro to be a function-like macro with a             *|

+|* single parameter (the name of the target whose assembly can be             *|

+|* generated); including this file will then enumerate all of the             *|

+|* targets with assembly parsers.                                             *|

+|*                                                                            *|

+|* The set of targets supported by LLVM is generated at configuration         *|

+|* time, at which point this header is generated. Do not modify this          *|

+|* header directly.                                                           *|

+|*                                                                            *|

+\*===----------------------------------------------------------------------===*/

+

+#ifndef LLVM_DISASSEMBLER

+#  error Please define the macro LLVM_DISASSEMBLER(TargetName)

+#endif

+

+LLVM_DISASSEMBLER(AArch64)

+LLVM_DISASSEMBLER(AMDGPU)

+LLVM_DISASSEMBLER(ARM)

+LLVM_DISASSEMBLER(BPF)

+LLVM_DISASSEMBLER(Hexagon)

+LLVM_DISASSEMBLER(Lanai)

+LLVM_DISASSEMBLER(Mips)

+LLVM_DISASSEMBLER(PowerPC)

+LLVM_DISASSEMBLER(Sparc)

+LLVM_DISASSEMBLER(SystemZ)

+LLVM_DISASSEMBLER(X86)

+LLVM_DISASSEMBLER(XCore)

+

+

+#undef LLVM_DISASSEMBLER

diff --git a/third_party/llvm-7.0/configs/windows/include/llvm/Config/Targets.def b/third_party/llvm-7.0/configs/windows/include/llvm/Config/Targets.def
new file mode 100644
index 0000000..8c0c896
--- /dev/null
+++ b/third_party/llvm-7.0/configs/windows/include/llvm/Config/Targets.def
@@ -0,0 +1,42 @@
+/*===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===*\

+|*                                                                            *|

+|*                     The LLVM Compiler Infrastructure                       *|

+|*                                                                            *|

+|* This file is distributed under the University of Illinois Open Source      *|

+|* License. See LICENSE.TXT for details.                                      *|

+|*                                                                            *|

+|*===----------------------------------------------------------------------===*|

+|*                                                                            *|

+|* This file enumerates all of the target architectures supported by          *|

+|* this build of LLVM. Clients of this file should define the                 *|

+|* LLVM_TARGET macro to be a function-like macro with a single                *|

+|* parameter (the name of the target); including this file will then          *|

+|* enumerate all of the targets.                                              *|

+|*                                                                            *|

+|* The set of targets supported by LLVM is generated at configuration         *|

+|* time, at which point this header is generated. Do not modify this          *|

+|* header directly.                                                           *|

+|*                                                                            *|

+\*===----------------------------------------------------------------------===*/

+

+#ifndef LLVM_TARGET

+#  error Please define the macro LLVM_TARGET(TargetName)

+#endif

+

+LLVM_TARGET(AArch64)

+LLVM_TARGET(AMDGPU)

+LLVM_TARGET(ARM)

+LLVM_TARGET(BPF)

+LLVM_TARGET(Hexagon)

+LLVM_TARGET(Lanai)

+LLVM_TARGET(Mips)

+LLVM_TARGET(MSP430)

+LLVM_TARGET(NVPTX)

+LLVM_TARGET(PowerPC)

+LLVM_TARGET(Sparc)

+LLVM_TARGET(SystemZ)

+LLVM_TARGET(X86)

+LLVM_TARGET(XCore)

+

+

+#undef LLVM_TARGET

diff --git a/third_party/llvm-7.0/configs/windows/include/llvm/Config/abi-breaking.h b/third_party/llvm-7.0/configs/windows/include/llvm/Config/abi-breaking.h
new file mode 100644
index 0000000..e4303c5
--- /dev/null
+++ b/third_party/llvm-7.0/configs/windows/include/llvm/Config/abi-breaking.h
@@ -0,0 +1,50 @@
+/*===------- llvm/Config/abi-breaking.h - llvm configuration -------*- C -*-===*/

+/*                                                                            */

+/*                     The LLVM Compiler Infrastructure                       */

+/*                                                                            */

+/* This file is distributed under the University of Illinois Open Source      */

+/* License. See LICENSE.TXT for details.                                      */

+/*                                                                            */

+/*===----------------------------------------------------------------------===*/

+

+/* This file controls the C++ ABI break introduced in LLVM public header. */

+

+#ifndef LLVM_ABI_BREAKING_CHECKS_H

+#define LLVM_ABI_BREAKING_CHECKS_H

+

+/* Define to enable checks that alter the LLVM C++ ABI */

+#define LLVM_ENABLE_ABI_BREAKING_CHECKS 0

+

+/* Define to enable reverse iteration of unordered llvm containers */

+#define LLVM_ENABLE_REVERSE_ITERATION 0

+

+/* Allow selectively disabling link-time mismatch checking so that header-only

+   ADT content from LLVM can be used without linking libSupport. */

+#if !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING

+

+// ABI_BREAKING_CHECKS protection: provides link-time failure when clients build

+// mismatch with LLVM

+#if defined(_MSC_VER)

+// Use pragma with MSVC

+#define LLVM_XSTR(s) LLVM_STR(s)

+#define LLVM_STR(s) #s

+#pragma detect_mismatch("LLVM_ENABLE_ABI_BREAKING_CHECKS", LLVM_XSTR(LLVM_ENABLE_ABI_BREAKING_CHECKS))

+#undef LLVM_XSTR

+#undef LLVM_STR

+#elif defined(_WIN32) || defined(__CYGWIN__) // Win32 w/o #pragma detect_mismatch

+// FIXME: Implement checks without weak.

+#elif defined(__cplusplus)

+namespace llvm {

+#if LLVM_ENABLE_ABI_BREAKING_CHECKS

+extern int EnableABIBreakingChecks;

+__attribute__((weak, visibility ("hidden"))) int *VerifyEnableABIBreakingChecks = &EnableABIBreakingChecks;

+#else

+extern int DisableABIBreakingChecks;

+__attribute__((weak, visibility ("hidden"))) int *VerifyDisableABIBreakingChecks = &DisableABIBreakingChecks;

+#endif

+}

+#endif // _MSC_VER

+

+#endif // LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING

+

+#endif

diff --git a/third_party/llvm-7.0/configs/windows/include/llvm/Config/config.h b/third_party/llvm-7.0/configs/windows/include/llvm/Config/config.h
new file mode 100644
index 0000000..ffd74cf
--- /dev/null
+++ b/third_party/llvm-7.0/configs/windows/include/llvm/Config/config.h
@@ -0,0 +1,344 @@
+#ifndef CONFIG_H

+#define CONFIG_H

+

+/* Exported configuration */

+#include "llvm/Config/llvm-config.h"

+

+/* Bug report URL. */

+#define BUG_REPORT_URL "https://bugs.llvm.org/"

+

+/* Define to 1 to enable backtraces, and to 0 otherwise. */

+#define ENABLE_BACKTRACES 1

+

+/* Define to 1 to enable crash overrides, and to 0 otherwise. */

+#define ENABLE_CRASH_OVERRIDES 1

+

+/* Define to 1 if you have the `backtrace' function. */

+/* #undef HAVE_BACKTRACE */

+

+#define BACKTRACE_HEADER <execinfo.h>

+

+/* Define to 1 if you have the <CrashReporterClient.h> header file. */

+/* #undef HAVE_CRASHREPORTERCLIENT_H */

+

+/* can use __crashreporter_info__ */

+#define HAVE_CRASHREPORTER_INFO 0

+

+/* Define to 1 if you have the declaration of `arc4random', and to 0 if you

+   don't. */

+#define HAVE_DECL_ARC4RANDOM 0

+

+/* Define to 1 if you have the declaration of `FE_ALL_EXCEPT', and to 0 if you

+   don't. */

+#define HAVE_DECL_FE_ALL_EXCEPT 1

+

+/* Define to 1 if you have the declaration of `FE_INEXACT', and to 0 if you

+   don't. */

+#define HAVE_DECL_FE_INEXACT 1

+

+/* Define to 1 if you have the declaration of `strerror_s', and to 0 if you

+   don't. */

+#define HAVE_DECL_STRERROR_S 1

+

+/* Define to 1 if you have the DIA SDK installed, and to 0 if you don't. */

+#define LLVM_ENABLE_DIA_SDK 0

+

+/* Define to 1 if you have the <dlfcn.h> header file. */

+/* #undef HAVE_DLFCN_H */

+

+/* Define if dlopen() is available on this platform. */

+/* #undef HAVE_DLOPEN */

+

+/* Define if dladdr() is available on this platform. */

+/* #undef HAVE_DLADDR */

+

+/* Define to 1 if you have the <errno.h> header file. */

+#define HAVE_ERRNO_H 1

+

+/* Define to 1 if you have the <fcntl.h> header file. */

+#define HAVE_FCNTL_H 1

+

+/* Define to 1 if you have the <fenv.h> header file. */

+#define HAVE_FENV_H 1

+

+/* Define if libffi is available on this platform. */

+/* #undef HAVE_FFI_CALL */

+

+/* Define to 1 if you have the <ffi/ffi.h> header file. */

+/* #undef HAVE_FFI_FFI_H */

+

+/* Define to 1 if you have the <ffi.h> header file. */

+/* #undef HAVE_FFI_H */

+

+/* Define to 1 if you have the `futimens' function. */

+/* #undef HAVE_FUTIMENS */

+

+/* Define to 1 if you have the `futimes' function. */

+/* #undef HAVE_FUTIMES */

+

+/* Define to 1 if you have the `getpagesize' function. */

+/* #undef HAVE_GETPAGESIZE */

+

+/* Define to 1 if you have the `getrlimit' function. */

+/* #undef HAVE_GETRLIMIT */

+

+/* Define to 1 if you have the `getrusage' function. */

+/* #undef HAVE_GETRUSAGE */

+

+/* Define to 1 if you have the `isatty' function. */

+/* #undef HAVE_ISATTY */

+

+/* Define to 1 if you have the `edit' library (-ledit). */

+/* #undef HAVE_LIBEDIT */

+

+/* Define to 1 if you have the `pfm' library (-lpfm). */

+/* #undef HAVE_LIBPFM */

+

+/* Define to 1 if you have the `psapi' library (-lpsapi). */

+/* #undef HAVE_LIBPSAPI */

+

+/* Define to 1 if you have the `pthread' library (-lpthread). */

+/* #undef HAVE_LIBPTHREAD */

+

+/* Define to 1 if you have the `pthread_getname_np' function. */

+/* #undef HAVE_PTHREAD_GETNAME_NP */

+

+/* Define to 1 if you have the `pthread_setname_np' function. */

+/* #undef HAVE_PTHREAD_SETNAME_NP */

+

+/* Define to 1 if you have the `z' library (-lz). */

+/* #undef HAVE_LIBZ */

+

+/* Define to 1 if you have the <link.h> header file. */

+/* #undef HAVE_LINK_H */

+

+/* Define to 1 if you have the `lseek64' function. */

+/* #undef HAVE_LSEEK64 */

+

+/* Define to 1 if you have the <mach/mach.h> header file. */

+/* #undef HAVE_MACH_MACH_H */

+

+/* Define to 1 if you have the `mallctl' function. */

+/* #undef HAVE_MALLCTL */

+

+/* Define to 1 if you have the `mallinfo' function. */

+/* #undef HAVE_MALLINFO */

+

+/* Define to 1 if you have the <malloc.h> header file. */

+#define HAVE_MALLOC_H 1

+

+/* Define to 1 if you have the <malloc/malloc.h> header file. */

+/* #undef HAVE_MALLOC_MALLOC_H */

+

+/* Define to 1 if you have the `malloc_zone_statistics' function. */

+/* #undef HAVE_MALLOC_ZONE_STATISTICS */

+

+/* Define to 1 if you have the `posix_fallocate' function. */

+/* #undef HAVE_POSIX_FALLOCATE */

+

+/* Define to 1 if you have the `posix_spawn' function. */

+/* #undef HAVE_POSIX_SPAWN */

+

+/* Define to 1 if you have the `pread' function. */

+/* #undef HAVE_PREAD */

+

+/* Have pthread_getspecific */

+/* #undef HAVE_PTHREAD_GETSPECIFIC */

+

+/* Define to 1 if you have the <pthread.h> header file. */

+/* #undef HAVE_PTHREAD_H */

+

+/* Have pthread_mutex_lock */

+/* #undef HAVE_PTHREAD_MUTEX_LOCK */

+

+/* Have pthread_rwlock_init */

+/* #undef HAVE_PTHREAD_RWLOCK_INIT */

+

+/* Define to 1 if you have the `realpath' function. */

+/* #undef HAVE_REALPATH */

+

+/* Define to 1 if you have the `sbrk' function. */

+/* #undef HAVE_SBRK */

+

+/* Define to 1 if you have the `setenv' function. */

+/* #undef HAVE_SETENV */

+

+/* Define to 1 if you have the `sched_getaffinity' function. */

+/* #undef HAVE_SCHED_GETAFFINITY */

+

+/* Define to 1 if you have the `CPU_COUNT' macro. */

+/* #undef HAVE_CPU_COUNT */

+

+/* Define to 1 if you have the `setrlimit' function. */

+/* #undef HAVE_SETRLIMIT */

+

+/* Define to 1 if you have the `sigaltstack' function. */

+/* #undef HAVE_SIGALTSTACK */

+

+/* Define to 1 if you have the <signal.h> header file. */

+#define HAVE_SIGNAL_H 1

+

+/* Define to 1 if you have the `strerror' function. */

+#define HAVE_STRERROR 1

+

+/* Define to 1 if you have the `strerror_r' function. */

+/* #undef HAVE_STRERROR_R */

+

+/* Define to 1 if you have the `sysconf' function. */

+/* #undef HAVE_SYSCONF */

+

+/* Define to 1 if you have the <sys/ioctl.h> header file. */

+/* #undef HAVE_SYS_IOCTL_H */

+

+/* Define to 1 if you have the <sys/mman.h> header file. */

+/* #undef HAVE_SYS_MMAN_H */

+

+/* Define to 1 if you have the <sys/param.h> header file. */

+/* #undef HAVE_SYS_PARAM_H */

+

+/* Define to 1 if you have the <sys/resource.h> header file. */

+/* #undef HAVE_SYS_RESOURCE_H */

+

+/* Define to 1 if you have the <sys/stat.h> header file. */

+#define HAVE_SYS_STAT_H 1

+

+/* Define to 1 if you have the <sys/time.h> header file. */

+/* #undef HAVE_SYS_TIME_H */

+

+/* Define to 1 if you have the <sys/types.h> header file. */

+#define HAVE_SYS_TYPES_H 1

+

+/* Define if the setupterm() function is supported this platform. */

+/* #undef HAVE_TERMINFO */

+

+/* Define if the xar_open() function is supported this platform. */

+/* #undef HAVE_LIBXAR */

+

+/* Define to 1 if you have the <termios.h> header file. */

+/* #undef HAVE_TERMIOS_H */

+

+/* Define to 1 if you have the <unistd.h> header file. */

+/* #undef HAVE_UNISTD_H */

+

+/* Define to 1 if you have the <valgrind/valgrind.h> header file. */

+/* #undef HAVE_VALGRIND_VALGRIND_H */

+

+/* Define to 1 if you have the <zlib.h> header file. */

+/* #undef HAVE_ZLIB_H */

+

+/* Have host's _alloca */

+/* #undef HAVE__ALLOCA */

+

+/* Define to 1 if you have the `_chsize_s' function. */

+#define HAVE__CHSIZE_S 1

+

+/* Define to 1 if you have the `_Unwind_Backtrace' function. */

+/* #undef HAVE__UNWIND_BACKTRACE */

+

+/* Have host's __alloca */

+/* #undef HAVE___ALLOCA */

+

+/* Have host's __ashldi3 */

+/* #undef HAVE___ASHLDI3 */

+

+/* Have host's __ashrdi3 */

+/* #undef HAVE___ASHRDI3 */

+

+/* Have host's __chkstk */

+#define HAVE___CHKSTK 1

+

+/* Have host's __chkstk_ms */

+/* #undef HAVE___CHKSTK_MS */

+

+/* Have host's __cmpdi2 */

+/* #undef HAVE___CMPDI2 */

+

+/* Have host's __divdi3 */

+/* #undef HAVE___DIVDI3 */

+

+/* Have host's __fixdfdi */

+/* #undef HAVE___FIXDFDI */

+

+/* Have host's __fixsfdi */

+/* #undef HAVE___FIXSFDI */

+

+/* Have host's __floatdidf */

+/* #undef HAVE___FLOATDIDF */

+

+/* Have host's __lshrdi3 */

+/* #undef HAVE___LSHRDI3 */

+

+/* Have host's __main */

+/* #undef HAVE___MAIN */

+

+/* Have host's __moddi3 */

+/* #undef HAVE___MODDI3 */

+

+/* Have host's __udivdi3 */

+/* #undef HAVE___UDIVDI3 */

+

+/* Have host's __umoddi3 */

+/* #undef HAVE___UMODDI3 */

+

+/* Have host's ___chkstk */

+/* #undef HAVE____CHKSTK */

+

+/* Have host's ___chkstk_ms */

+/* #undef HAVE____CHKSTK_MS */

+

+/* Linker version detected at compile time. */

+/* #undef HOST_LINK_VERSION */

+

+/* Target triple LLVM will generate code for by default */

+/* Doesn't use `cmakedefine` because it is allowed to be empty. */

+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-pc-win32"

+

+/* Define if zlib compression is available */

+#define LLVM_ENABLE_ZLIB 0

+

+/* Define if overriding target triple is enabled */

+/* #undef LLVM_TARGET_TRIPLE_ENV */

+

+/* LLVM version information */

+/* #undef LLVM_VERSION_INFO */

+

+/* Whether tools show host and target info when invoked with --version */

+#define LLVM_VERSION_PRINTER_SHOW_HOST_TARGET_INFO 1

+

+/* Define if libxml2 is supported on this platform. */

+/* #undef LLVM_LIBXML2_ENABLED */

+

+/* Define to the extension used for shared libraries, say, ".so". */

+#define LTDL_SHLIB_EXT ".dll"

+

+/* Define to the address where bug reports for this package should be sent. */

+#define PACKAGE_BUGREPORT "https://bugs.llvm.org/"

+

+/* Define to the full name of this package. */

+#define PACKAGE_NAME "LLVM"

+

+/* Define to the full name and version of this package. */

+#define PACKAGE_STRING "LLVM 7.0.0"

+

+/* Define to the version of this package. */

+#define PACKAGE_VERSION "7.0.0"

+

+/* Define to the vendor of this package. */

+/* #undef PACKAGE_VENDOR */

+

+/* Define as the return type of signal handlers (`int' or `void'). */

+#define RETSIGTYPE void

+

+/* Define to a function implementing stricmp */

+#define stricmp _stricmp

+

+/* Define to a function implementing strdup */

+#define strdup _strdup

+

+/* Whether GlobalISel rule coverage is being collected */

+#define LLVM_GISEL_COV_ENABLED 0

+

+/* Define to the default GlobalISel coverage file prefix */

+/* #undef LLVM_GISEL_COV_PREFIX */

+

+#endif

diff --git a/third_party/llvm-7.0/configs/windows/include/llvm/Config/llvm-config.h b/third_party/llvm-7.0/configs/windows/include/llvm/Config/llvm-config.h
new file mode 100644
index 0000000..7b422cb
--- /dev/null
+++ b/third_party/llvm-7.0/configs/windows/include/llvm/Config/llvm-config.h
@@ -0,0 +1,85 @@
+/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/

+/*                                                                            */

+/*                     The LLVM Compiler Infrastructure                       */

+/*                                                                            */

+/* This file is distributed under the University of Illinois Open Source      */

+/* License. See LICENSE.TXT for details.                                      */

+/*                                                                            */

+/*===----------------------------------------------------------------------===*/

+

+/* This file enumerates variables from the LLVM configuration so that they

+   can be in exported headers and won't override package specific directives.

+   This is a C header that can be included in the llvm-c headers. */

+

+#ifndef LLVM_CONFIG_H

+#define LLVM_CONFIG_H

+

+/* Define if LLVM_ENABLE_DUMP is enabled */

+/* #undef LLVM_ENABLE_DUMP */

+

+/* Define if we link Polly to the tools */

+/* #undef LINK_POLLY_INTO_TOOLS */

+

+/* Target triple LLVM will generate code for by default */

+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-pc-win32"

+

+/* Define if threads enabled */

+#define LLVM_ENABLE_THREADS 1

+

+/* Has gcc/MSVC atomic intrinsics */

+#define LLVM_HAS_ATOMICS 1

+

+/* Host triple LLVM will be executed on */

+#define LLVM_HOST_TRIPLE "x86_64-pc-win32"

+

+/* LLVM architecture name for the native architecture, if available */

+#define LLVM_NATIVE_ARCH X86

+

+/* LLVM name for the native AsmParser init function, if available */

+#define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser

+

+/* LLVM name for the native AsmPrinter init function, if available */

+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter

+

+/* LLVM name for the native Disassembler init function, if available */

+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler

+

+/* LLVM name for the native Target init function, if available */

+#define LLVM_NATIVE_TARGET LLVMInitializeX86Target

+

+/* LLVM name for the native TargetInfo init function, if available */

+#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo

+

+/* LLVM name for the native target MC init function, if available */

+#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC

+

+/* Define if this is Unixish platform */

+/* #undef LLVM_ON_UNIX */

+

+/* Define if we have the Intel JIT API runtime support library */

+#define LLVM_USE_INTEL_JITEVENTS 0

+

+/* Define if we have the oprofile JIT-support library */

+#define LLVM_USE_OPROFILE 0

+

+/* Define if we have the perf JIT-support library */

+#define LLVM_USE_PERF 0

+

+/* Major version of the LLVM API */

+#define LLVM_VERSION_MAJOR 7

+

+/* Minor version of the LLVM API */

+#define LLVM_VERSION_MINOR 0

+

+/* Patch version of the LLVM API */

+#define LLVM_VERSION_PATCH 0

+

+/* LLVM version string */

+#define LLVM_VERSION_STRING "7.0.0"

+

+/* Whether LLVM records statistics for use with GetStatistics(),

+ * PrintStatistics() or PrintStatisticsJSON()

+ */

+#define LLVM_FORCE_ENABLE_STATS 0

+

+#endif