diff --git a/third_party/llvm-16.0/configs/android/include/llvm/Config/AsmParsers.def b/third_party/llvm-16.0/configs/android/include/llvm/Config/AsmParsers.def
new file mode 100644
index 0000000..808436c
--- /dev/null
+++ b/third_party/llvm-16.0/configs/android/include/llvm/Config/AsmParsers.def
@@ -0,0 +1,41 @@
+/*===- llvm/Config/AsmParsers.def - LLVM Assembly Parsers -------*- C++ -*-===*\
+|*                                                                            *|
+|* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
+|* Exceptions.                                                                *|
+|* See https://llvm.org/LICENSE.txt for license information.                  *|
+|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
+|*                                                                            *|
+|*===----------------------------------------------------------------------===*|
+|*                                                                            *|
+|* 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
+
+#if defined(__aarch64__)
+LLVM_ASM_PARSER(AArch64)
+#endif
+#if defined(__arm__)
+LLVM_ASM_PARSER(ARM)
+#endif
+#if defined(__i386__) || defined(__x86_64__)
+LLVM_ASM_PARSER(X86)
+#endif
+#if defined(__riscv)
+LLVM_ASM_PARSER(RISCV)
+#endif
+
+
+#undef LLVM_ASM_PARSER
diff --git a/third_party/llvm-16.0/configs/android/include/llvm/Config/AsmPrinters.def b/third_party/llvm-16.0/configs/android/include/llvm/Config/AsmPrinters.def
new file mode 100644
index 0000000..5566edc
--- /dev/null
+++ b/third_party/llvm-16.0/configs/android/include/llvm/Config/AsmPrinters.def
@@ -0,0 +1,41 @@
+/*===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===*\
+|*                                                                            *|
+|* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
+|* Exceptions.                                                                *|
+|* See https://llvm.org/LICENSE.txt for license information.                  *|
+|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
+|*                                                                            *|
+|*===----------------------------------------------------------------------===*|
+|*                                                                            *|
+|* 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
+
+#if defined(__aarch64__)
+LLVM_ASM_PRINTER(AArch64)
+#endif
+#if defined(__arm__)
+LLVM_ASM_PRINTER(ARM)
+#endif
+#if defined(__i386__) || defined(__x86_64__)
+LLVM_ASM_PRINTER(X86)
+#endif
+#if defined(__riscv)
+LLVM_ASM_PRINTER(RISCV)
+#endif
+
+
+#undef LLVM_ASM_PRINTER
diff --git a/third_party/llvm-16.0/configs/android/include/llvm/Config/Disassemblers.def b/third_party/llvm-16.0/configs/android/include/llvm/Config/Disassemblers.def
new file mode 100644
index 0000000..eb3ffa4
--- /dev/null
+++ b/third_party/llvm-16.0/configs/android/include/llvm/Config/Disassemblers.def
@@ -0,0 +1,41 @@
+/*===- llvm/Config/Disassemblers.def - LLVM Assembly Parsers ----*- C++ -*-===*\
+|*                                                                            *|
+|* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
+|* Exceptions.                                                                *|
+|* See https://llvm.org/LICENSE.txt for license information.                  *|
+|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
+|*                                                                            *|
+|*===----------------------------------------------------------------------===*|
+|*                                                                            *|
+|* 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
+
+#if defined(__aarch64__)
+LLVM_DISASSEMBLER(AArch64)
+#endif
+#if defined(__arm__)
+LLVM_DISASSEMBLER(ARM)
+#endif
+#if defined(__i386__) || defined(__x86_64__)
+LLVM_DISASSEMBLER(X86)
+#endif
+#if defined(__riscv)
+LLVM_DISASSEMBLER(RISCV)
+#endif
+
+
+#undef LLVM_DISASSEMBLER
diff --git a/third_party/llvm-16.0/configs/android/include/llvm/Config/TargetExegesis.def b/third_party/llvm-16.0/configs/android/include/llvm/Config/TargetExegesis.def
new file mode 100644
index 0000000..1cff263
--- /dev/null
+++ b/third_party/llvm-16.0/configs/android/include/llvm/Config/TargetExegesis.def
@@ -0,0 +1,35 @@
+/*===----- llvm/Config/TargetExegesis.def - LLVM Target Exegesis-*- C++ -*-===*\
+|*                                                                            *|
+|* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
+|* Exceptions.                                                                *|
+|* See https://llvm.org/LICENSE.txt for license information.                  *|
+|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
+|*                                                                            *|
+|*===----------------------------------------------------------------------===*|
+|*                                                                            *|
+|* This file enumerates all of the target's of llvm-exegesis                  *|
+|* supported by this build of LLVM. Clients of this file should define        *|
+|* the LLVM_EXEGISIS 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 target llvm-exegsis support.                                  *|
+|*                                                                            *|
+|* 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_EXEGESIS
+#  error Please define the macro LLVM_EXEGESIS(TargetName)
+#endif
+
+#if defined(__aarch64__)
+LLVM_EXEGESIS(AArch64)
+#endif
+#if defined(__i386__) || defined(__x86_64__)
+LLVM_EXEGESIS(X86)
+#endif
+
+
+#undef LLVM_EXEGESIS
diff --git a/third_party/llvm-16.0/configs/android/include/llvm/Config/TargetMCAs.def b/third_party/llvm-16.0/configs/android/include/llvm/Config/TargetMCAs.def
new file mode 100644
index 0000000..8cb646e
--- /dev/null
+++ b/third_party/llvm-16.0/configs/android/include/llvm/Config/TargetMCAs.def
@@ -0,0 +1,35 @@
+/*===------ llvm/Config/TargetMCAs.def - LLVM Target MCAs -------*- C++ -*-===*\
+|*                                                                            *|
+|* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
+|* Exceptions.                                                                *|
+|* See https://llvm.org/LICENSE.txt for license information.                  *|
+|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
+|*                                                                            *|
+|*===----------------------------------------------------------------------===*|
+|*                                                                            *|
+|* This file enumerates all of the target MCAs                  *|
+|* supported by this build of LLVM. Clients of this file should define        *|
+|* the LLVM_TARGETMCA 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 target MCAs.                                             *|
+|*                                                                            *|
+|* 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_TARGETMCA
+#  error Please define the macro LLVM_TARGETMCA(TargetName)
+#endif
+
+#if defined(__i386__) || defined(__x86_64__)
+LLVM_TARGETMCA(X86)
+#endif
+#if defined(__riscv)
+LLVM_TARGETMCA(RISCV)
+#endif
+
+
+#undef LLVM_TARGETMCA
diff --git a/third_party/llvm-16.0/configs/android/include/llvm/Config/Targets.def b/third_party/llvm-16.0/configs/android/include/llvm/Config/Targets.def
new file mode 100644
index 0000000..ef9607f
--- /dev/null
+++ b/third_party/llvm-16.0/configs/android/include/llvm/Config/Targets.def
@@ -0,0 +1,40 @@
+/*===- llvm/Config/Targets.def - LLVM Target Architectures ------*- C++ -*-===*\
+|*                                                                            *|
+|* Part of the LLVM Project, under the Apache License v2.0 with LLVM          *|
+|* Exceptions.                                                                *|
+|* See https://llvm.org/LICENSE.txt for license information.                  *|
+|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    *|
+|*                                                                            *|
+|*===----------------------------------------------------------------------===*|
+|*                                                                            *|
+|* 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
+
+#if defined(__aarch64__)
+LLVM_TARGET(AArch64)
+#endif
+#if defined(__arm__)
+LLVM_TARGET(ARM)
+#endif
+#if defined(__i386__) || defined(__x86_64__)
+LLVM_TARGET(X86)
+#endif
+#if defined(__riscv)
+LLVM_TARGET(RISCV)
+#endif
+
+
+#undef LLVM_TARGET
diff --git a/third_party/llvm-16.0/configs/android/include/llvm/Config/abi-breaking.h b/third_party/llvm-16.0/configs/android/include/llvm/Config/abi-breaking.h
new file mode 100644
index 0000000..c501cc3
--- /dev/null
+++ b/third_party/llvm-16.0/configs/android/include/llvm/Config/abi-breaking.h
@@ -0,0 +1,62 @@
+/*===------- llvm/Config/abi-breaking.h - llvm configuration -------*- C -*-===*/
+/*                                                                            */
+/* Part of the LLVM Project, under the Apache License v2.0 with LLVM          */
+/* Exceptions.                                                                */
+/* See https://llvm.org/LICENSE.txt for license information.                  */
+/* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    */
+/*                                                                            */
+/*===----------------------------------------------------------------------===*/
+
+/* 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 !defined(LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING) || !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)
+#if !(defined(_AIX) && defined(__GNUC__) && !defined(__clang__))
+#define LLVM_HIDDEN_VISIBILITY __attribute__ ((visibility("hidden")))
+#else
+// GCC on AIX does not support visibility attributes. Symbols are not
+// exported by default on AIX.
+#define LLVM_HIDDEN_VISIBILITY
+#endif
+namespace llvm {
+#if LLVM_ENABLE_ABI_BREAKING_CHECKS
+extern int EnableABIBreakingChecks;
+LLVM_HIDDEN_VISIBILITY
+__attribute__((weak)) int *VerifyEnableABIBreakingChecks =
+    &EnableABIBreakingChecks;
+#else
+extern int DisableABIBreakingChecks;
+LLVM_HIDDEN_VISIBILITY
+__attribute__((weak)) int *VerifyDisableABIBreakingChecks =
+    &DisableABIBreakingChecks;
+#endif
+}
+#undef LLVM_HIDDEN_VISIBILITY
+#endif // _MSC_VER
+
+#endif // LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
+
+#endif
diff --git a/third_party/llvm-16.0/configs/android/include/llvm/Config/config.h b/third_party/llvm-16.0/configs/android/include/llvm/Config/config.h
new file mode 100644
index 0000000..f0cd1df
--- /dev/null
+++ b/third_party/llvm-16.0/configs/android/include/llvm/Config/config.h
@@ -0,0 +1,337 @@
+#ifndef CONFIG_H
+#define CONFIG_H
+
+// Include this header only under the llvm source tree.
+// This is a private header.
+
+/* Exported configuration */
+#include "llvm/Config/llvm-config.h"
+
+/* Bug report URL. */
+#define BUG_REPORT_URL "https://github.com/llvm/llvm-project/issues/"
+
+/* Define to 1 to enable backtraces, and to 0 otherwise. */
+/* #undef ENABLE_BACKTRACES */
+
+/* Define to 1 to enable crash overrides, and to 0 otherwise. */
+/* #undef ENABLE_CRASH_OVERRIDES */
+
+/* Define to 1 to enable crash memory dumps, and to 0 otherwise. */
+#define LLVM_ENABLE_CRASH_DUMPS 0
+
+/* Define to 1 to prefer forward slashes on Windows, and to 0 prefer
+   backslashes. */
+#define LLVM_WINDOWS_PREFER_FORWARD_SLASH 0
+
+/* Define to 1 if you have the `backtrace' function. */
+/* #undef HAVE_BACKTRACE */
+
+/* #undef BACKTRACE_HEADER */
+
+/* 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 0
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define if dlopen() is available on this platform. */
+#define HAVE_DLOPEN 1
+
+/* Define if dladdr() is available on this platform. */
+#define HAVE_DLADDR 1
+
+/* Define to 1 if we can register EH frames on this platform. */
+/* #undef HAVE_REGISTER_FRAME 1 */
+
+/* Define to 1 if we can deregister EH frames on this platform. */
+/* #undef HAVE_DEREGISTER_FRAME 1 */
+
+/* Define if __unw_add_dynamic_fde() is available on this platform. */
+/* #undef HAVE_UNW_ADD_DYNAMIC_FDE */
+
+/* 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. */
+#define HAVE_FUTIMENS 1
+
+/* Define to 1 if you have the `futimes' function. */
+#define HAVE_FUTIMES 1
+
+/* Define to 1 if you have the `getpagesize' function. */
+#define HAVE_GETPAGESIZE 1
+
+/* Define to 1 if you have the `getrlimit' function. */
+#define HAVE_GETRLIMIT 1
+
+/* Define to 1 if you have the `getrusage' function. */
+#define HAVE_GETRUSAGE 1
+
+/* Define to 1 if you have the `isatty' function. */
+#define HAVE_ISATTY 1
+
+/* 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 the `perf_branch_entry' struct has field cycles. */
+/* #undef LIBPFM_HAS_FIELD_CYCLES */
+
+/* Define to 1 if you have the `psapi' library (-lpsapi). */
+/* #undef HAVE_LIBPSAPI */
+
+/* Define to 1 if you have the `pthread' library (-lpthread). */
+#define HAVE_LIBPTHREAD 1
+
+/* 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 <link.h> header file. */
+#define HAVE_LINK_H 1
+
+/* 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. */
+#define HAVE_MALLINFO 1
+
+/* Define to 1 if you have the `mallinfo2' function. */
+#define HAVE_MALLINFO2 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_spawn' function. */
+/* #undef HAVE_POSIX_SPAWN */
+
+/* Define to 1 if you have the `pread' function. */
+#define HAVE_PREAD 1
+
+/* Define to 1 if you have the <pthread.h> header file. */
+#define HAVE_PTHREAD_H 1
+
+/* Have pthread_mutex_lock */
+#define HAVE_PTHREAD_MUTEX_LOCK 1
+
+/* Have pthread_rwlock_init */
+#define HAVE_PTHREAD_RWLOCK_INIT 1
+
+/* Define to 1 if you have the `sbrk' function. */
+#define HAVE_SBRK 1
+
+/* Define to 1 if you have the `setenv' function. */
+#define HAVE_SETENV 1
+
+/* Define to 1 if you have the `setrlimit' function. */
+#define HAVE_SETRLIMIT 1
+
+/* Define to 1 if you have the `sigaltstack' function. */
+#define HAVE_SIGALTSTACK 1
+
+/* 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. */
+#define HAVE_STRERROR_R 1
+
+/* Define to 1 if you have the `sysconf' function. */
+#define HAVE_SYSCONF 1
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+#define HAVE_SYS_MMAN_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+#define HAVE_SYS_RESOURCE_H 1
+
+/* 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. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if stat struct has st_mtimespec member .*/
+/* #undef HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC */
+
+/* Define to 1 if stat struct has st_mtim member. */
+#define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
+
+/* 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 LLVM_ENABLE_TERMINFO */
+
+/* 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. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the <valgrind/valgrind.h> header file. */
+/* #undef HAVE_VALGRIND_VALGRIND_H */
+
+/* Have host's _alloca */
+/* #undef HAVE__ALLOCA */
+
+/* Define to 1 if you have the `_chsize_s' function. */
+/* #undef HAVE__CHSIZE_S */
+
+/* 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 */
+/* #undef HAVE___CHKSTK */
+
+/* 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 */
+
+/* Define if overriding target triple is enabled */
+/* #undef LLVM_TARGET_TRIPLE_ENV */
+
+/* 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_ENABLE_LIBXML2 */
+
+/* Define to the extension used for shared libraries, say, ".so". */
+#define LTDL_SHLIB_EXT ".so"
+
+/* Define to the extension used for plugin libraries, say, ".so". */
+#define LLVM_PLUGIN_EXT ".so"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "https://github.com/llvm/llvm-project/issues/"
+
+/* 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 16.0.0"
+
+/* Define to the version of this package. */
+#define PACKAGE_VERSION "16.0.0"
+
+/* Define to the vendor of this package. */
+/* #undef PACKAGE_VENDOR */
+
+/* Define to a function implementing stricmp */
+/* #undef stricmp */
+
+/* Define to a function implementing strdup */
+/* #undef 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 */
+
+/* Whether Timers signpost passes in Xcode Instruments */
+#define LLVM_SUPPORT_XCODE_SIGNPOSTS 0
+
+/* #undef HAVE_PROC_PID_RUSAGE */
+
+#endif
diff --git a/third_party/llvm-16.0/configs/android/include/llvm/Config/llvm-config.h b/third_party/llvm-16.0/configs/android/include/llvm/Config/llvm-config.h
new file mode 100644
index 0000000..5be219d
--- /dev/null
+++ b/third_party/llvm-16.0/configs/android/include/llvm/Config/llvm-config.h
@@ -0,0 +1,261 @@
+/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/
+/*                                                                            */
+/* Part of the LLVM Project, under the Apache License v2.0 with LLVM          */
+/* Exceptions.                                                                */
+/* See https://llvm.org/LICENSE.txt for license information.                  */
+/* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception                    */
+/*                                                                            */
+/*===----------------------------------------------------------------------===*/
+
+/* 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
+
+#if !defined(__i386__) && defined(_M_IX86)
+#define __i386__ 1
+#endif
+
+#if !defined(__x86_64__) && (defined(_M_AMD64) || defined (_M_X64))
+#define __x86_64__ 1
+#endif
+
+#define LLVM_CONFIG_H
+
+/* Define if LLVM_ENABLE_DUMP is enabled */
+/* #undef LLVM_ENABLE_DUMP */
+
+/* Target triple LLVM will generate code for by default */
+/* Doesn't use `cmakedefine` because it is allowed to be empty. */
+#if defined(__x86_64__)
+#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-linux-android"
+#elif defined(__i386__)
+#define LLVM_DEFAULT_TARGET_TRIPLE "i686-linux-android"
+#elif defined(__arm__)
+#define LLVM_DEFAULT_TARGET_TRIPLE "armv7-linux-androideabi"
+#elif defined(__aarch64__)
+#define LLVM_DEFAULT_TARGET_TRIPLE "aarch64-linux-android"
+#elif defined(__riscv)
+#define LLVM_DEFAULT_TARGET_TRIPLE "riscv64-linux-android"
+#else
+#error "unknown architecture"
+#endif
+
+/* 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 */
+#if defined(__x86_64__)
+#define LLVM_HOST_TRIPLE "x86_64-linux-android"
+#elif defined(__i386__)
+#define LLVM_HOST_TRIPLE "i686-linux-android"
+#elif defined(__arm__)
+#define LLVM_HOST_TRIPLE "armv7-linux-androideabi"
+#elif defined(__aarch64__)
+#define LLVM_HOST_TRIPLE "aarch64-linux-android"
+#elif defined(__riscv)
+#define LLVM_HOST_TRIPLE "riscv64-linux-android"
+#else
+#error "unknown architecture"
+#endif
+
+/* LLVM architecture name for the native architecture, if available */
+#if defined(__aarch64__)
+#define LLVM_NATIVE_ARCH AArch64
+#elif defined(__arm__)
+#define LLVM_NATIVE_ARCH ARM
+#elif defined(__i386__) || defined(__x86_64__)
+#define LLVM_NATIVE_ARCH X86
+#elif defined(__mips__)
+#define LLVM_NATIVE_ARCH Mips
+#elif defined(__powerpc64__)
+#define LLVM_NATIVE_ARCH PowerPC
+#elif defined(__riscv)
+#define LLVM_NATIVE_ARCH RISCV
+#else
+#error "unknown architecture"
+#endif
+
+/* LLVM name for the native AsmParser init function, if available */
+#if defined(__aarch64__)
+#define LLVM_NATIVE_ASMPARSER LLVMInitializeAArch64AsmParser
+#elif defined(__arm__)
+#define LLVM_NATIVE_ASMPARSER LLVMInitializeARMAsmParser
+#elif defined(__i386__) || defined(__x86_64__)
+#define LLVM_NATIVE_ASMPARSER LLVMInitializeX86AsmParser
+#elif defined(__mips__)
+#define LLVM_NATIVE_ASMPARSER LLVMInitializeMipsAsmParser
+#elif defined(__powerpc64__)
+#define LLVM_NATIVE_ASMPARSER LLVMInitializePowerPCAsmParser
+#elif defined(__riscv)
+#define LLVM_NATIVE_ASMPARSER LLVMInitializeRISCVAsmParser
+#else
+#error "unknown architecture"
+#endif
+
+/* LLVM name for the native AsmPrinter init function, if available */
+#if defined(__aarch64__)
+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeAArch64AsmPrinter
+#elif defined(__arm__)
+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeARMAsmPrinter
+#elif defined(__i386__) || defined(__x86_64__)
+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeX86AsmPrinter
+#elif defined(__mips__)
+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeMipsAsmPrinter
+#elif defined(__powerpc64__)
+#define LLVM_NATIVE_ASMPRINTER LLVMInitializePowerPCAsmPrinter
+#elif defined(__riscv)
+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeRISCVAsmPrinter
+#else
+#error "unknown architecture"
+#endif
+
+/* LLVM name for the native Disassembler init function, if available */
+#if defined(__aarch64__)
+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeAArch64Disassembler
+#elif defined(__arm__)
+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeARMDisassembler
+#elif defined(__i386__) || defined(__x86_64__)
+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeX86Disassembler
+#elif defined(__mips__)
+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeMipsDisassembler
+#elif defined(__powerpc64__)
+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializePowerPCDisassembler
+#elif defined(__riscv)
+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeRISCVDisassembler
+#else
+#error "unknown architecture"
+#endif
+
+/* LLVM name for the native Target init function, if available */
+#if defined(__aarch64__)
+#define LLVM_NATIVE_TARGET LLVMInitializeAArch64Target
+#elif defined(__arm__)
+#define LLVM_NATIVE_TARGET LLVMInitializeARMTarget
+#elif defined(__i386__) || defined(__x86_64__)
+#define LLVM_NATIVE_TARGET LLVMInitializeX86Target
+#elif defined(__mips__)
+#define LLVM_NATIVE_TARGET LLVMInitializeMipsTarget
+#elif defined(__powerpc64__)
+#define LLVM_NATIVE_TARGET LLVMInitializePowerPCTarget
+#elif defined(__riscv)
+#define LLVM_NATIVE_TARGET LLVMInitializeRISCVTarget
+#else
+#error "unknown architecture"
+#endif
+
+/* LLVM name for the native TargetInfo init function, if available */
+#if defined(__aarch64__)
+#define LLVM_NATIVE_TARGETINFO LLVMInitializeAArch64TargetInfo
+#elif defined(__arm__)
+#define LLVM_NATIVE_TARGETINFO LLVMInitializeARMTargetInfo
+#elif defined(__i386__) || defined(__x86_64__)
+#define LLVM_NATIVE_TARGETINFO LLVMInitializeX86TargetInfo
+#elif defined(__mips__)
+#define LLVM_NATIVE_TARGETINFO LLVMInitializeMipsTargetInfo
+#elif defined(__powerpc64__)
+#define LLVM_NATIVE_TARGETINFO LLVMInitializePowerPCTargetInfo
+#elif defined(__riscv)
+#define LLVM_NATIVE_TARGETINFO LLVMInitializeRISCVTargetInfo
+#else
+#error "unknown architecture"
+#endif
+
+/* LLVM name for the native target MC init function, if available */
+#if defined(__aarch64__)
+#define LLVM_NATIVE_TARGETMC LLVMInitializeAArch64TargetMC
+#elif defined(__arm__)
+#define LLVM_NATIVE_TARGETMC LLVMInitializeARMTargetMC
+#elif defined(__i386__) || defined(__x86_64__)
+#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC
+#elif defined(__mips__)
+#define LLVM_NATIVE_TARGETMC LLVMInitializeMipsTargetMC
+#elif defined(__powerpc64__)
+#define LLVM_NATIVE_TARGETMC LLVMInitializePowerPCTargetMC
+#elif defined(__riscv)
+#define LLVM_NATIVE_TARGETMC LLVMInitializeRISCVTargetMC
+#else
+#error "unknown architecture"
+#endif
+
+/* LLVM name for the native target MCA init function, if available */
+/* #undef LLVM_NATIVE_TARGETMCA */
+
+/* Define if this is Unixish platform */
+#define LLVM_ON_UNIX 1
+
+/* 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 16
+
+/* 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 "16.0.0"
+
+/* Whether LLVM records statistics for use with GetStatistics(),
+ * PrintStatistics() or PrintStatisticsJSON()
+ */
+#define LLVM_FORCE_ENABLE_STATS 0
+
+/* Define if we have z3 and want to build it */
+/* #undef LLVM_WITH_Z3 */
+
+/* Define if we have curl and want to use it */
+/* #undef LLVM_ENABLE_CURL */
+
+/* Define if we have cpp-httplib and want to use it */
+/* #undef LLVM_ENABLE_HTTPLIB */
+
+/* Define if zlib compression is available */
+#define LLVM_ENABLE_ZLIB 0
+
+/* Define if zstd compression is available */
+#define LLVM_ENABLE_ZSTD 0
+
+/* Define if LLVM is using tflite instead of libtensorflow */
+/* #undef LLVM_HAVE_TFLITE */
+
+/* Define to 1 if you have the <sysexits.h> header file. */
+#define HAVE_SYSEXITS_H 1
+
+/* Define if the xar_open() function is supported on this platform. */
+/* #undef LLVM_HAVE_LIBXAR */
+
+/* Define if building libLLVM shared library */
+/* #undef LLVM_BUILD_LLVM_DYLIB */
+
+/* Define if building LLVM with BUILD_SHARED_LIBS */
+/* #undef LLVM_BUILD_SHARED_LIBS */
+
+/* Define if building LLVM with LLVM_FORCE_USE_OLD_TOOLCHAIN_LIBS */
+/* #undef LLVM_FORCE_USE_OLD_TOOLCHAIN */
+
+/* Define if llvm_unreachable should be optimized with undefined behavior
+ * in non assert builds */
+#define LLVM_UNREACHABLE_OPTIMIZE 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 if plugins enabled */
+#define LLVM_ENABLE_PLUGINS
+
+#endif
