mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Merge pull request #3887 from odin-lang/windows-llvm-18
Update to LLVM 18.1.8 for Windows
This commit is contained in:
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -19,8 +19,8 @@
|
|||||||
#ifndef LLVM_C_ANALYSIS_H
|
#ifndef LLVM_C_ANALYSIS_H
|
||||||
#define LLVM_C_ANALYSIS_H
|
#define LLVM_C_ANALYSIS_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,8 @@
|
|||||||
#ifndef LLVM_C_BITREADER_H
|
#ifndef LLVM_C_BITREADER_H
|
||||||
#define LLVM_C_BITREADER_H
|
#define LLVM_C_BITREADER_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,8 @@
|
|||||||
#ifndef LLVM_C_BITWRITER_H
|
#ifndef LLVM_C_BITWRITER_H
|
||||||
#define LLVM_C_BITWRITER_H
|
#define LLVM_C_BITWRITER_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -14,8 +14,8 @@
|
|||||||
#ifndef LLVM_C_COMDAT_H
|
#ifndef LLVM_C_COMDAT_H
|
||||||
#define LLVM_C_COMDAT_H
|
#define LLVM_C_COMDAT_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
@@ -27,18 +27,20 @@
|
|||||||
LLVM_ASM_PARSER(AArch64)
|
LLVM_ASM_PARSER(AArch64)
|
||||||
LLVM_ASM_PARSER(AMDGPU)
|
LLVM_ASM_PARSER(AMDGPU)
|
||||||
LLVM_ASM_PARSER(ARM)
|
LLVM_ASM_PARSER(ARM)
|
||||||
|
LLVM_ASM_PARSER(AVR)
|
||||||
LLVM_ASM_PARSER(BPF)
|
LLVM_ASM_PARSER(BPF)
|
||||||
LLVM_ASM_PARSER(Hexagon)
|
LLVM_ASM_PARSER(Hexagon)
|
||||||
LLVM_ASM_PARSER(Lanai)
|
LLVM_ASM_PARSER(Lanai)
|
||||||
|
LLVM_ASM_PARSER(LoongArch)
|
||||||
LLVM_ASM_PARSER(Mips)
|
LLVM_ASM_PARSER(Mips)
|
||||||
LLVM_ASM_PARSER(MSP430)
|
LLVM_ASM_PARSER(MSP430)
|
||||||
LLVM_ASM_PARSER(PowerPC)
|
LLVM_ASM_PARSER(PowerPC)
|
||||||
LLVM_ASM_PARSER(RISCV)
|
LLVM_ASM_PARSER(RISCV)
|
||||||
LLVM_ASM_PARSER(Sparc)
|
LLVM_ASM_PARSER(Sparc)
|
||||||
LLVM_ASM_PARSER(SystemZ)
|
LLVM_ASM_PARSER(SystemZ)
|
||||||
|
LLVM_ASM_PARSER(VE)
|
||||||
LLVM_ASM_PARSER(WebAssembly)
|
LLVM_ASM_PARSER(WebAssembly)
|
||||||
LLVM_ASM_PARSER(X86)
|
LLVM_ASM_PARSER(X86)
|
||||||
LLVM_ASM_PARSER(AVR)
|
|
||||||
|
|
||||||
|
|
||||||
#undef LLVM_ASM_PARSER
|
#undef LLVM_ASM_PARSER
|
||||||
|
|||||||
@@ -27,9 +27,11 @@
|
|||||||
LLVM_ASM_PRINTER(AArch64)
|
LLVM_ASM_PRINTER(AArch64)
|
||||||
LLVM_ASM_PRINTER(AMDGPU)
|
LLVM_ASM_PRINTER(AMDGPU)
|
||||||
LLVM_ASM_PRINTER(ARM)
|
LLVM_ASM_PRINTER(ARM)
|
||||||
|
LLVM_ASM_PRINTER(AVR)
|
||||||
LLVM_ASM_PRINTER(BPF)
|
LLVM_ASM_PRINTER(BPF)
|
||||||
LLVM_ASM_PRINTER(Hexagon)
|
LLVM_ASM_PRINTER(Hexagon)
|
||||||
LLVM_ASM_PRINTER(Lanai)
|
LLVM_ASM_PRINTER(Lanai)
|
||||||
|
LLVM_ASM_PRINTER(LoongArch)
|
||||||
LLVM_ASM_PRINTER(Mips)
|
LLVM_ASM_PRINTER(Mips)
|
||||||
LLVM_ASM_PRINTER(MSP430)
|
LLVM_ASM_PRINTER(MSP430)
|
||||||
LLVM_ASM_PRINTER(NVPTX)
|
LLVM_ASM_PRINTER(NVPTX)
|
||||||
@@ -37,10 +39,10 @@ LLVM_ASM_PRINTER(PowerPC)
|
|||||||
LLVM_ASM_PRINTER(RISCV)
|
LLVM_ASM_PRINTER(RISCV)
|
||||||
LLVM_ASM_PRINTER(Sparc)
|
LLVM_ASM_PRINTER(Sparc)
|
||||||
LLVM_ASM_PRINTER(SystemZ)
|
LLVM_ASM_PRINTER(SystemZ)
|
||||||
|
LLVM_ASM_PRINTER(VE)
|
||||||
LLVM_ASM_PRINTER(WebAssembly)
|
LLVM_ASM_PRINTER(WebAssembly)
|
||||||
LLVM_ASM_PRINTER(X86)
|
LLVM_ASM_PRINTER(X86)
|
||||||
LLVM_ASM_PRINTER(XCore)
|
LLVM_ASM_PRINTER(XCore)
|
||||||
LLVM_ASM_PRINTER(AVR)
|
|
||||||
|
|
||||||
|
|
||||||
#undef LLVM_ASM_PRINTER
|
#undef LLVM_ASM_PRINTER
|
||||||
|
|||||||
@@ -27,19 +27,21 @@
|
|||||||
LLVM_DISASSEMBLER(AArch64)
|
LLVM_DISASSEMBLER(AArch64)
|
||||||
LLVM_DISASSEMBLER(AMDGPU)
|
LLVM_DISASSEMBLER(AMDGPU)
|
||||||
LLVM_DISASSEMBLER(ARM)
|
LLVM_DISASSEMBLER(ARM)
|
||||||
|
LLVM_DISASSEMBLER(AVR)
|
||||||
LLVM_DISASSEMBLER(BPF)
|
LLVM_DISASSEMBLER(BPF)
|
||||||
LLVM_DISASSEMBLER(Hexagon)
|
LLVM_DISASSEMBLER(Hexagon)
|
||||||
LLVM_DISASSEMBLER(Lanai)
|
LLVM_DISASSEMBLER(Lanai)
|
||||||
|
LLVM_DISASSEMBLER(LoongArch)
|
||||||
LLVM_DISASSEMBLER(Mips)
|
LLVM_DISASSEMBLER(Mips)
|
||||||
LLVM_DISASSEMBLER(MSP430)
|
LLVM_DISASSEMBLER(MSP430)
|
||||||
LLVM_DISASSEMBLER(PowerPC)
|
LLVM_DISASSEMBLER(PowerPC)
|
||||||
LLVM_DISASSEMBLER(RISCV)
|
LLVM_DISASSEMBLER(RISCV)
|
||||||
LLVM_DISASSEMBLER(Sparc)
|
LLVM_DISASSEMBLER(Sparc)
|
||||||
LLVM_DISASSEMBLER(SystemZ)
|
LLVM_DISASSEMBLER(SystemZ)
|
||||||
|
LLVM_DISASSEMBLER(VE)
|
||||||
LLVM_DISASSEMBLER(WebAssembly)
|
LLVM_DISASSEMBLER(WebAssembly)
|
||||||
LLVM_DISASSEMBLER(X86)
|
LLVM_DISASSEMBLER(X86)
|
||||||
LLVM_DISASSEMBLER(XCore)
|
LLVM_DISASSEMBLER(XCore)
|
||||||
LLVM_DISASSEMBLER(AVR)
|
|
||||||
|
|
||||||
|
|
||||||
#undef LLVM_DISASSEMBLER
|
#undef LLVM_DISASSEMBLER
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*===----- 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
|
||||||
|
|
||||||
|
LLVM_EXEGESIS(AArch64)
|
||||||
|
LLVM_EXEGESIS(Mips)
|
||||||
|
LLVM_EXEGESIS(PowerPC)
|
||||||
|
LLVM_EXEGESIS(X86)
|
||||||
|
|
||||||
|
|
||||||
|
#undef LLVM_EXEGESIS
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*===------ 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
|
||||||
|
|
||||||
|
LLVM_TARGETMCA(AMDGPU)
|
||||||
|
LLVM_TARGETMCA(RISCV)
|
||||||
|
LLVM_TARGETMCA(X86)
|
||||||
|
|
||||||
|
|
||||||
|
#undef LLVM_TARGETMCA
|
||||||
@@ -26,9 +26,11 @@
|
|||||||
LLVM_TARGET(AArch64)
|
LLVM_TARGET(AArch64)
|
||||||
LLVM_TARGET(AMDGPU)
|
LLVM_TARGET(AMDGPU)
|
||||||
LLVM_TARGET(ARM)
|
LLVM_TARGET(ARM)
|
||||||
|
LLVM_TARGET(AVR)
|
||||||
LLVM_TARGET(BPF)
|
LLVM_TARGET(BPF)
|
||||||
LLVM_TARGET(Hexagon)
|
LLVM_TARGET(Hexagon)
|
||||||
LLVM_TARGET(Lanai)
|
LLVM_TARGET(Lanai)
|
||||||
|
LLVM_TARGET(LoongArch)
|
||||||
LLVM_TARGET(Mips)
|
LLVM_TARGET(Mips)
|
||||||
LLVM_TARGET(MSP430)
|
LLVM_TARGET(MSP430)
|
||||||
LLVM_TARGET(NVPTX)
|
LLVM_TARGET(NVPTX)
|
||||||
@@ -36,10 +38,10 @@ LLVM_TARGET(PowerPC)
|
|||||||
LLVM_TARGET(RISCV)
|
LLVM_TARGET(RISCV)
|
||||||
LLVM_TARGET(Sparc)
|
LLVM_TARGET(Sparc)
|
||||||
LLVM_TARGET(SystemZ)
|
LLVM_TARGET(SystemZ)
|
||||||
|
LLVM_TARGET(VE)
|
||||||
LLVM_TARGET(WebAssembly)
|
LLVM_TARGET(WebAssembly)
|
||||||
LLVM_TARGET(X86)
|
LLVM_TARGET(X86)
|
||||||
LLVM_TARGET(XCore)
|
LLVM_TARGET(XCore)
|
||||||
LLVM_TARGET(AVR)
|
|
||||||
|
|
||||||
|
|
||||||
#undef LLVM_TARGET
|
#undef LLVM_TARGET
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/*===------- llvm-c/Config//abi-breaking.h - llvm configuration -------*- C -*-===*/
|
/*===------- llvm/Config/abi-breaking.h - llvm configuration -------*- C -*-===*/
|
||||||
/* */
|
/* */
|
||||||
/* Part of the LLVM Project, under the Apache License v2.0 with LLVM */
|
/* Part of the LLVM Project, under the Apache License v2.0 with LLVM */
|
||||||
/* Exceptions. */
|
/* Exceptions. */
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
/* Allow selectively disabling link-time mismatch checking so that header-only
|
/* Allow selectively disabling link-time mismatch checking so that header-only
|
||||||
ADT content from LLVM can be used without linking libSupport. */
|
ADT content from LLVM can be used without linking libSupport. */
|
||||||
#if !LLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING
|
#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
|
// ABI_BREAKING_CHECKS protection: provides link-time failure when clients build
|
||||||
// mismatch with LLVM
|
// mismatch with LLVM
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/*===------- llvm-c/Config//llvm-config.h - llvm configuration -------*- C -*-===*/
|
/*===------- llvm/Config/llvm-config.h - llvm configuration -------*- C -*-===*/
|
||||||
/* */
|
/* */
|
||||||
/* Part of the LLVM Project, under the Apache License v2.0 with LLVM */
|
/* Part of the LLVM Project, under the Apache License v2.0 with LLVM */
|
||||||
/* Exceptions. */
|
/* Exceptions. */
|
||||||
@@ -17,10 +17,8 @@
|
|||||||
/* Define if LLVM_ENABLE_DUMP is enabled */
|
/* Define if LLVM_ENABLE_DUMP is enabled */
|
||||||
/* #undef LLVM_ENABLE_DUMP */
|
/* #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 */
|
/* 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-windows-msvc"
|
#define LLVM_DEFAULT_TARGET_TRIPLE "x86_64-pc-windows-msvc"
|
||||||
|
|
||||||
/* Define if threads enabled */
|
/* Define if threads enabled */
|
||||||
@@ -53,6 +51,84 @@
|
|||||||
/* LLVM name for the native target MC init function, if available */
|
/* LLVM name for the native target MC init function, if available */
|
||||||
#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC
|
#define LLVM_NATIVE_TARGETMC LLVMInitializeX86TargetMC
|
||||||
|
|
||||||
|
/* LLVM name for the native target MCA init function, if available */
|
||||||
|
/* #undef LLVM_NATIVE_TARGETMCA */
|
||||||
|
|
||||||
|
/* Define if the AArch64 target is built in */
|
||||||
|
#define LLVM_HAS_AARCH64_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the AMDGPU target is built in */
|
||||||
|
#define LLVM_HAS_AMDGPU_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the ARC target is built in */
|
||||||
|
#define LLVM_HAS_ARC_TARGET 0
|
||||||
|
|
||||||
|
/* Define if the ARM target is built in */
|
||||||
|
#define LLVM_HAS_ARM_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the AVR target is built in */
|
||||||
|
#define LLVM_HAS_AVR_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the BPF target is built in */
|
||||||
|
#define LLVM_HAS_BPF_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the CSKY target is built in */
|
||||||
|
#define LLVM_HAS_CSKY_TARGET 0
|
||||||
|
|
||||||
|
/* Define if the DirectX target is built in */
|
||||||
|
#define LLVM_HAS_DIRECTX_TARGET 0
|
||||||
|
|
||||||
|
/* Define if the Hexagon target is built in */
|
||||||
|
#define LLVM_HAS_HEXAGON_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the Lanai target is built in */
|
||||||
|
#define LLVM_HAS_LANAI_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the LoongArch target is built in */
|
||||||
|
#define LLVM_HAS_LOONGARCH_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the M68k target is built in */
|
||||||
|
#define LLVM_HAS_M68K_TARGET 0
|
||||||
|
|
||||||
|
/* Define if the Mips target is built in */
|
||||||
|
#define LLVM_HAS_MIPS_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the MSP430 target is built in */
|
||||||
|
#define LLVM_HAS_MSP430_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the NVPTX target is built in */
|
||||||
|
#define LLVM_HAS_NVPTX_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the PowerPC target is built in */
|
||||||
|
#define LLVM_HAS_POWERPC_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the RISCV target is built in */
|
||||||
|
#define LLVM_HAS_RISCV_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the Sparc target is built in */
|
||||||
|
#define LLVM_HAS_SPARC_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the SPIRV target is built in */
|
||||||
|
#define LLVM_HAS_SPIRV_TARGET 0
|
||||||
|
|
||||||
|
/* Define if the SystemZ target is built in */
|
||||||
|
#define LLVM_HAS_SYSTEMZ_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the VE target is built in */
|
||||||
|
#define LLVM_HAS_VE_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the WebAssembly target is built in */
|
||||||
|
#define LLVM_HAS_WEBASSEMBLY_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the X86 target is built in */
|
||||||
|
#define LLVM_HAS_X86_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the XCore target is built in */
|
||||||
|
#define LLVM_HAS_XCORE_TARGET 1
|
||||||
|
|
||||||
|
/* Define if the Xtensa target is built in */
|
||||||
|
#define LLVM_HAS_XTENSA_TARGET 0
|
||||||
|
|
||||||
/* Define if this is Unixish platform */
|
/* Define if this is Unixish platform */
|
||||||
/* #undef LLVM_ON_UNIX */
|
/* #undef LLVM_ON_UNIX */
|
||||||
|
|
||||||
@@ -66,20 +142,60 @@
|
|||||||
#define LLVM_USE_PERF 0
|
#define LLVM_USE_PERF 0
|
||||||
|
|
||||||
/* Major version of the LLVM API */
|
/* Major version of the LLVM API */
|
||||||
#define LLVM_VERSION_MAJOR 17
|
#define LLVM_VERSION_MAJOR 18
|
||||||
|
|
||||||
/* Minor version of the LLVM API */
|
/* Minor version of the LLVM API */
|
||||||
#define LLVM_VERSION_MINOR 0
|
#define LLVM_VERSION_MINOR 1
|
||||||
|
|
||||||
/* Patch version of the LLVM API */
|
/* Patch version of the LLVM API */
|
||||||
#define LLVM_VERSION_PATCH 1
|
#define LLVM_VERSION_PATCH 8
|
||||||
|
|
||||||
/* LLVM version string */
|
/* LLVM version string */
|
||||||
#define LLVM_VERSION_STRING "17.0.1"
|
#define LLVM_VERSION_STRING "18.1.8"
|
||||||
|
|
||||||
/* Whether LLVM records statistics for use with GetStatistics(),
|
/* Whether LLVM records statistics for use with GetStatistics(),
|
||||||
* PrintStatistics() or PrintStatisticsJSON()
|
* PrintStatistics() or PrintStatisticsJSON()
|
||||||
*/
|
*/
|
||||||
#define LLVM_FORCE_ENABLE_STATS 0
|
#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 */
|
||||||
|
/* #undef LLVM_HAVE_TFLITE */
|
||||||
|
|
||||||
|
/* Define to 1 if you have the <sysexits.h> header file. */
|
||||||
|
/* #undef HAVE_SYSEXITS_H */
|
||||||
|
|
||||||
|
/* 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 1
|
||||||
|
|
||||||
|
/* Define if plugins enabled */
|
||||||
|
/* #undef LLVM_ENABLE_PLUGINS */
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+247
-26
@@ -15,11 +15,11 @@
|
|||||||
#ifndef LLVM_C_CORE_H
|
#ifndef LLVM_C_CORE_H
|
||||||
#define LLVM_C_CORE_H
|
#define LLVM_C_CORE_H
|
||||||
|
|
||||||
#include "llvm-c/Deprecated.h"
|
#include "Deprecated.h"
|
||||||
#include "llvm-c/ErrorHandling.h"
|
#include "ErrorHandling.h"
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
|
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
@@ -216,7 +216,6 @@ typedef enum {
|
|||||||
LLVMColdCallConv = 9,
|
LLVMColdCallConv = 9,
|
||||||
LLVMGHCCallConv = 10,
|
LLVMGHCCallConv = 10,
|
||||||
LLVMHiPECallConv = 11,
|
LLVMHiPECallConv = 11,
|
||||||
LLVMWebKitJSCallConv = 12,
|
|
||||||
LLVMAnyRegCallConv = 13,
|
LLVMAnyRegCallConv = 13,
|
||||||
LLVMPreserveMostCallConv = 14,
|
LLVMPreserveMostCallConv = 14,
|
||||||
LLVMPreserveAllCallConv = 15,
|
LLVMPreserveAllCallConv = 15,
|
||||||
@@ -468,8 +467,45 @@ enum {
|
|||||||
LLVMAttributeFunctionIndex = -1,
|
LLVMAttributeFunctionIndex = -1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tail call kind for LLVMSetTailCallKind and LLVMGetTailCallKind.
|
||||||
|
*
|
||||||
|
* Note that 'musttail' implies 'tail'.
|
||||||
|
*
|
||||||
|
* @see CallInst::TailCallKind
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
LLVMTailCallKindNone = 0,
|
||||||
|
LLVMTailCallKindTail = 1,
|
||||||
|
LLVMTailCallKindMustTail = 2,
|
||||||
|
LLVMTailCallKindNoTail = 3,
|
||||||
|
} LLVMTailCallKind;
|
||||||
|
|
||||||
typedef unsigned LLVMAttributeIndex;
|
typedef unsigned LLVMAttributeIndex;
|
||||||
|
|
||||||
|
enum {
|
||||||
|
LLVMFastMathAllowReassoc = (1 << 0),
|
||||||
|
LLVMFastMathNoNaNs = (1 << 1),
|
||||||
|
LLVMFastMathNoInfs = (1 << 2),
|
||||||
|
LLVMFastMathNoSignedZeros = (1 << 3),
|
||||||
|
LLVMFastMathAllowReciprocal = (1 << 4),
|
||||||
|
LLVMFastMathAllowContract = (1 << 5),
|
||||||
|
LLVMFastMathApproxFunc = (1 << 6),
|
||||||
|
LLVMFastMathNone = 0,
|
||||||
|
LLVMFastMathAll = LLVMFastMathAllowReassoc | LLVMFastMathNoNaNs |
|
||||||
|
LLVMFastMathNoInfs | LLVMFastMathNoSignedZeros |
|
||||||
|
LLVMFastMathAllowReciprocal | LLVMFastMathAllowContract |
|
||||||
|
LLVMFastMathApproxFunc,
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Flags to indicate what fast-math-style optimizations are allowed
|
||||||
|
* on operations.
|
||||||
|
*
|
||||||
|
* See https://llvm.org/docs/LangRef.html#fast-math-flags
|
||||||
|
*/
|
||||||
|
typedef unsigned LLVMFastMathFlags;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
@@ -890,12 +926,58 @@ void LLVMAppendModuleInlineAsm(LLVMModuleRef M, const char *Asm, size_t Len);
|
|||||||
*
|
*
|
||||||
* @see InlineAsm::get()
|
* @see InlineAsm::get()
|
||||||
*/
|
*/
|
||||||
LLVMValueRef LLVMGetInlineAsm(LLVMTypeRef Ty, char *AsmString,
|
LLVMValueRef LLVMGetInlineAsm(LLVMTypeRef Ty, const char *AsmString,
|
||||||
size_t AsmStringSize, char *Constraints,
|
size_t AsmStringSize, const char *Constraints,
|
||||||
size_t ConstraintsSize, LLVMBool HasSideEffects,
|
size_t ConstraintsSize, LLVMBool HasSideEffects,
|
||||||
LLVMBool IsAlignStack,
|
LLVMBool IsAlignStack,
|
||||||
LLVMInlineAsmDialect Dialect, LLVMBool CanThrow);
|
LLVMInlineAsmDialect Dialect, LLVMBool CanThrow);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the template string used for an inline assembly snippet
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
const char *LLVMGetInlineAsmAsmString(LLVMValueRef InlineAsmVal, size_t *Len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the raw constraint string for an inline assembly snippet
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
const char *LLVMGetInlineAsmConstraintString(LLVMValueRef InlineAsmVal,
|
||||||
|
size_t *Len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the dialect used by the inline asm snippet
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
LLVMInlineAsmDialect LLVMGetInlineAsmDialect(LLVMValueRef InlineAsmVal);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the function type of the inline assembly snippet. The same type that
|
||||||
|
* was passed into LLVMGetInlineAsm originally
|
||||||
|
*
|
||||||
|
* @see LLVMGetInlineAsm
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
LLVMTypeRef LLVMGetInlineAsmFunctionType(LLVMValueRef InlineAsmVal);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get if the inline asm snippet has side effects
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
LLVMBool LLVMGetInlineAsmHasSideEffects(LLVMValueRef InlineAsmVal);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get if the inline asm snippet needs an aligned stack
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
LLVMBool LLVMGetInlineAsmNeedsAlignedStack(LLVMValueRef InlineAsmVal);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get if the inline asm snippet may unwind the stack
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
LLVMBool LLVMGetInlineAsmCanUnwind(LLVMValueRef InlineAsmVal);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtain the context to which this module is associated.
|
* Obtain the context to which this module is associated.
|
||||||
*
|
*
|
||||||
@@ -2216,45 +2298,26 @@ LLVMValueRef LLVMConstNUWSub(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant)
|
|||||||
LLVMValueRef LLVMConstMul(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
LLVMValueRef LLVMConstMul(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
||||||
LLVMValueRef LLVMConstNSWMul(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
LLVMValueRef LLVMConstNSWMul(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
||||||
LLVMValueRef LLVMConstNUWMul(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
LLVMValueRef LLVMConstNUWMul(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
||||||
LLVMValueRef LLVMConstAnd(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
|
||||||
LLVMValueRef LLVMConstOr(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
|
||||||
LLVMValueRef LLVMConstXor(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
LLVMValueRef LLVMConstXor(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
||||||
LLVMValueRef LLVMConstICmp(LLVMIntPredicate Predicate,
|
LLVMValueRef LLVMConstICmp(LLVMIntPredicate Predicate,
|
||||||
LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
||||||
LLVMValueRef LLVMConstFCmp(LLVMRealPredicate Predicate,
|
LLVMValueRef LLVMConstFCmp(LLVMRealPredicate Predicate,
|
||||||
LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
||||||
LLVMValueRef LLVMConstShl(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
LLVMValueRef LLVMConstShl(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
||||||
LLVMValueRef LLVMConstLShr(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
|
||||||
LLVMValueRef LLVMConstAShr(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant);
|
|
||||||
LLVMValueRef LLVMConstGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal,
|
LLVMValueRef LLVMConstGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal,
|
||||||
LLVMValueRef *ConstantIndices, unsigned NumIndices);
|
LLVMValueRef *ConstantIndices, unsigned NumIndices);
|
||||||
LLVMValueRef LLVMConstInBoundsGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal,
|
LLVMValueRef LLVMConstInBoundsGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal,
|
||||||
LLVMValueRef *ConstantIndices,
|
LLVMValueRef *ConstantIndices,
|
||||||
unsigned NumIndices);
|
unsigned NumIndices);
|
||||||
LLVMValueRef LLVMConstTrunc(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
LLVMValueRef LLVMConstTrunc(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
||||||
LLVMValueRef LLVMConstSExt(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstZExt(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstFPTrunc(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstFPExt(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstUIToFP(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstSIToFP(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstFPToUI(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstFPToSI(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstPtrToInt(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
LLVMValueRef LLVMConstPtrToInt(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
||||||
LLVMValueRef LLVMConstIntToPtr(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
LLVMValueRef LLVMConstIntToPtr(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
||||||
LLVMValueRef LLVMConstBitCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
LLVMValueRef LLVMConstBitCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
||||||
LLVMValueRef LLVMConstAddrSpaceCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
LLVMValueRef LLVMConstAddrSpaceCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
||||||
LLVMValueRef LLVMConstZExtOrBitCast(LLVMValueRef ConstantVal,
|
|
||||||
LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstSExtOrBitCast(LLVMValueRef ConstantVal,
|
|
||||||
LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstTruncOrBitCast(LLVMValueRef ConstantVal,
|
LLVMValueRef LLVMConstTruncOrBitCast(LLVMValueRef ConstantVal,
|
||||||
LLVMTypeRef ToType);
|
LLVMTypeRef ToType);
|
||||||
LLVMValueRef LLVMConstPointerCast(LLVMValueRef ConstantVal,
|
LLVMValueRef LLVMConstPointerCast(LLVMValueRef ConstantVal,
|
||||||
LLVMTypeRef ToType);
|
LLVMTypeRef ToType);
|
||||||
LLVMValueRef LLVMConstIntCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType,
|
|
||||||
LLVMBool isSigned);
|
|
||||||
LLVMValueRef LLVMConstFPCast(LLVMValueRef ConstantVal, LLVMTypeRef ToType);
|
|
||||||
LLVMValueRef LLVMConstExtractElement(LLVMValueRef VectorConstant,
|
LLVMValueRef LLVMConstExtractElement(LLVMValueRef VectorConstant,
|
||||||
LLVMValueRef IndexConstant);
|
LLVMValueRef IndexConstant);
|
||||||
LLVMValueRef LLVMConstInsertElement(LLVMValueRef VectorConstant,
|
LLVMValueRef LLVMConstInsertElement(LLVMValueRef VectorConstant,
|
||||||
@@ -2960,6 +3023,74 @@ LLVMValueRef LLVMMDNodeInContext(LLVMContextRef C, LLVMValueRef *Vals,
|
|||||||
/** Deprecated: Use LLVMMDNodeInContext2 instead. */
|
/** Deprecated: Use LLVMMDNodeInContext2 instead. */
|
||||||
LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count);
|
LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup LLVMCCoreOperandBundle Operand Bundles
|
||||||
|
*
|
||||||
|
* Functions in this group operate on LLVMOperandBundleRef instances that
|
||||||
|
* correspond to llvm::OperandBundleDef instances.
|
||||||
|
*
|
||||||
|
* @see llvm::OperandBundleDef
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new operand bundle.
|
||||||
|
*
|
||||||
|
* Every invocation should be paired with LLVMDisposeOperandBundle() or memory
|
||||||
|
* will be leaked.
|
||||||
|
*
|
||||||
|
* @param Tag Tag name of the operand bundle
|
||||||
|
* @param TagLen Length of Tag
|
||||||
|
* @param Args Memory address of an array of bundle operands
|
||||||
|
* @param NumArgs Length of Args
|
||||||
|
*/
|
||||||
|
LLVMOperandBundleRef LLVMCreateOperandBundle(const char *Tag, size_t TagLen,
|
||||||
|
LLVMValueRef *Args,
|
||||||
|
unsigned NumArgs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Destroy an operand bundle.
|
||||||
|
*
|
||||||
|
* This must be called for every created operand bundle or memory will be
|
||||||
|
* leaked.
|
||||||
|
*/
|
||||||
|
void LLVMDisposeOperandBundle(LLVMOperandBundleRef Bundle);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the tag of an operand bundle as a string.
|
||||||
|
*
|
||||||
|
* @param Bundle Operand bundle to obtain tag of.
|
||||||
|
* @param Len Out parameter which holds the length of the returned string.
|
||||||
|
* @return The tag name of Bundle.
|
||||||
|
* @see OperandBundleDef::getTag()
|
||||||
|
*/
|
||||||
|
const char *LLVMGetOperandBundleTag(LLVMOperandBundleRef Bundle, size_t *Len);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the number of operands for an operand bundle.
|
||||||
|
*
|
||||||
|
* @param Bundle Operand bundle to obtain operand count of.
|
||||||
|
* @return The number of operands.
|
||||||
|
* @see OperandBundleDef::input_size()
|
||||||
|
*/
|
||||||
|
unsigned LLVMGetNumOperandBundleArgs(LLVMOperandBundleRef Bundle);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the operand for an operand bundle at the given index.
|
||||||
|
*
|
||||||
|
* @param Bundle Operand bundle to obtain operand of.
|
||||||
|
* @param Index An operand index, must be less than
|
||||||
|
* LLVMGetNumOperandBundleArgs().
|
||||||
|
* @return The operand.
|
||||||
|
*/
|
||||||
|
LLVMValueRef LLVMGetOperandBundleArgAtIndex(LLVMOperandBundleRef Bundle,
|
||||||
|
unsigned Index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
@@ -3411,6 +3542,24 @@ LLVMTypeRef LLVMGetCalledFunctionType(LLVMValueRef C);
|
|||||||
*/
|
*/
|
||||||
LLVMValueRef LLVMGetCalledValue(LLVMValueRef Instr);
|
LLVMValueRef LLVMGetCalledValue(LLVMValueRef Instr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the number of operand bundles attached to this instruction.
|
||||||
|
*
|
||||||
|
* This only works on llvm::CallInst and llvm::InvokeInst instructions.
|
||||||
|
*
|
||||||
|
* @see llvm::CallBase::getNumOperandBundles()
|
||||||
|
*/
|
||||||
|
unsigned LLVMGetNumOperandBundles(LLVMValueRef C);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain the operand bundle attached to this instruction at the given index.
|
||||||
|
* Use LLVMDisposeOperandBundle to free the operand bundle.
|
||||||
|
*
|
||||||
|
* This only works on llvm::CallInst and llvm::InvokeInst instructions.
|
||||||
|
*/
|
||||||
|
LLVMOperandBundleRef LLVMGetOperandBundleAtIndex(LLVMValueRef C,
|
||||||
|
unsigned Index);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Obtain whether a call instruction is a tail call.
|
* Obtain whether a call instruction is a tail call.
|
||||||
*
|
*
|
||||||
@@ -3429,6 +3578,20 @@ LLVMBool LLVMIsTailCall(LLVMValueRef CallInst);
|
|||||||
*/
|
*/
|
||||||
void LLVMSetTailCall(LLVMValueRef CallInst, LLVMBool IsTailCall);
|
void LLVMSetTailCall(LLVMValueRef CallInst, LLVMBool IsTailCall);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Obtain a tail call kind of the call instruction.
|
||||||
|
*
|
||||||
|
* @see llvm::CallInst::setTailCallKind()
|
||||||
|
*/
|
||||||
|
LLVMTailCallKind LLVMGetTailCallKind(LLVMValueRef CallInst);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the call kind of the call instruction.
|
||||||
|
*
|
||||||
|
* @see llvm::CallInst::getTailCallKind()
|
||||||
|
*/
|
||||||
|
void LLVMSetTailCallKind(LLVMValueRef CallInst, LLVMTailCallKind kind);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the normal destination basic block.
|
* Return the normal destination basic block.
|
||||||
*
|
*
|
||||||
@@ -3761,6 +3924,10 @@ LLVMValueRef LLVMBuildInvoke2(LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Fn,
|
|||||||
LLVMValueRef *Args, unsigned NumArgs,
|
LLVMValueRef *Args, unsigned NumArgs,
|
||||||
LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch,
|
LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch,
|
||||||
const char *Name);
|
const char *Name);
|
||||||
|
LLVMValueRef LLVMBuildInvokeWithOperandBundles(
|
||||||
|
LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef *Args,
|
||||||
|
unsigned NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch,
|
||||||
|
LLVMOperandBundleRef *Bundles, unsigned NumBundles, const char *Name);
|
||||||
LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef);
|
LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef);
|
||||||
|
|
||||||
/* Exception Handling */
|
/* Exception Handling */
|
||||||
@@ -3920,6 +4087,55 @@ void LLVMSetNSW(LLVMValueRef ArithInst, LLVMBool HasNSW);
|
|||||||
LLVMBool LLVMGetExact(LLVMValueRef DivOrShrInst);
|
LLVMBool LLVMGetExact(LLVMValueRef DivOrShrInst);
|
||||||
void LLVMSetExact(LLVMValueRef DivOrShrInst, LLVMBool IsExact);
|
void LLVMSetExact(LLVMValueRef DivOrShrInst, LLVMBool IsExact);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets if the instruction has the non-negative flag set.
|
||||||
|
* Only valid for zext instructions.
|
||||||
|
*/
|
||||||
|
LLVMBool LLVMGetNNeg(LLVMValueRef NonNegInst);
|
||||||
|
/**
|
||||||
|
* Sets the non-negative flag for the instruction.
|
||||||
|
* Only valid for zext instructions.
|
||||||
|
*/
|
||||||
|
void LLVMSetNNeg(LLVMValueRef NonNegInst, LLVMBool IsNonNeg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the flags for which fast-math-style optimizations are allowed for this
|
||||||
|
* value.
|
||||||
|
*
|
||||||
|
* Only valid on floating point instructions.
|
||||||
|
* @see LLVMCanValueUseFastMathFlags
|
||||||
|
*/
|
||||||
|
LLVMFastMathFlags LLVMGetFastMathFlags(LLVMValueRef FPMathInst);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the flags for which fast-math-style optimizations are allowed for this
|
||||||
|
* value.
|
||||||
|
*
|
||||||
|
* Only valid on floating point instructions.
|
||||||
|
* @see LLVMCanValueUseFastMathFlags
|
||||||
|
*/
|
||||||
|
void LLVMSetFastMathFlags(LLVMValueRef FPMathInst, LLVMFastMathFlags FMF);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a given value can potentially have fast math flags.
|
||||||
|
*
|
||||||
|
* Will return true for floating point arithmetic instructions, and for select,
|
||||||
|
* phi, and call instructions whose type is a floating point type, or a vector
|
||||||
|
* or array thereof. See https://llvm.org/docs/LangRef.html#fast-math-flags
|
||||||
|
*/
|
||||||
|
LLVMBool LLVMCanValueUseFastMathFlags(LLVMValueRef Inst);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets whether the instruction has the disjoint flag set.
|
||||||
|
* Only valid for or instructions.
|
||||||
|
*/
|
||||||
|
LLVMBool LLVMGetIsDisjoint(LLVMValueRef Inst);
|
||||||
|
/**
|
||||||
|
* Sets the disjoint flag for the instruction.
|
||||||
|
* Only valid for or instructions.
|
||||||
|
*/
|
||||||
|
void LLVMSetIsDisjoint(LLVMValueRef Inst, LLVMBool IsDisjoint);
|
||||||
|
|
||||||
/* Memory */
|
/* Memory */
|
||||||
LLVMValueRef LLVMBuildMalloc(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name);
|
LLVMValueRef LLVMBuildMalloc(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name);
|
||||||
LLVMValueRef LLVMBuildArrayMalloc(LLVMBuilderRef, LLVMTypeRef Ty,
|
LLVMValueRef LLVMBuildArrayMalloc(LLVMBuilderRef, LLVMTypeRef Ty,
|
||||||
@@ -4045,6 +4261,11 @@ LLVMValueRef LLVMBuildPhi(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name);
|
|||||||
LLVMValueRef LLVMBuildCall2(LLVMBuilderRef, LLVMTypeRef, LLVMValueRef Fn,
|
LLVMValueRef LLVMBuildCall2(LLVMBuilderRef, LLVMTypeRef, LLVMValueRef Fn,
|
||||||
LLVMValueRef *Args, unsigned NumArgs,
|
LLVMValueRef *Args, unsigned NumArgs,
|
||||||
const char *Name);
|
const char *Name);
|
||||||
|
LLVMValueRef
|
||||||
|
LLVMBuildCallWithOperandBundles(LLVMBuilderRef, LLVMTypeRef, LLVMValueRef Fn,
|
||||||
|
LLVMValueRef *Args, unsigned NumArgs,
|
||||||
|
LLVMOperandBundleRef *Bundles,
|
||||||
|
unsigned NumBundles, const char *Name);
|
||||||
LLVMValueRef LLVMBuildSelect(LLVMBuilderRef, LLVMValueRef If,
|
LLVMValueRef LLVMBuildSelect(LLVMBuilderRef, LLVMValueRef If,
|
||||||
LLVMValueRef Then, LLVMValueRef Else,
|
LLVMValueRef Then, LLVMValueRef Else,
|
||||||
const char *Name);
|
const char *Name);
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
#ifndef LLVM_C_DEBUGINFO_H
|
#ifndef LLVM_C_DEBUGINFO_H
|
||||||
#define LLVM_C_DEBUGINFO_H
|
#define LLVM_C_DEBUGINFO_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
#ifndef LLVM_C_DISASSEMBLER_H
|
#ifndef LLVM_C_DISASSEMBLER_H
|
||||||
#define LLVM_C_DISASSEMBLER_H
|
#define LLVM_C_DISASSEMBLER_H
|
||||||
|
|
||||||
#include "llvm-c/DisassemblerTypes.h"
|
#include "DisassemblerTypes.h"
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup LLVMCDisassembler Disassembler
|
* @defgroup LLVMCDisassembler Disassembler
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#ifndef LLVM_C_DISASSEMBLERTYPES_H
|
#ifndef LLVM_C_DISASSEMBLERTYPES_H
|
||||||
#define LLVM_C_DISASSEMBLERTYPES_H
|
#define LLVM_C_DISASSEMBLERTYPES_H
|
||||||
|
|
||||||
#include "llvm-c/DataTypes.h"
|
#include "DataTypes.h"
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#else
|
#else
|
||||||
|
|||||||
+1
-1
@@ -14,7 +14,7 @@
|
|||||||
#ifndef LLVM_C_ERROR_H
|
#ifndef LLVM_C_ERROR_H
|
||||||
#define LLVM_C_ERROR_H
|
#define LLVM_C_ERROR_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
#ifndef LLVM_C_ERRORHANDLING_H
|
#ifndef LLVM_C_ERRORHANDLING_H
|
||||||
#define LLVM_C_ERRORHANDLING_H
|
#define LLVM_C_ERRORHANDLING_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
@@ -19,10 +19,10 @@
|
|||||||
#ifndef LLVM_C_EXECUTIONENGINE_H
|
#ifndef LLVM_C_EXECUTIONENGINE_H
|
||||||
#define LLVM_C_EXECUTIONENGINE_H
|
#define LLVM_C_EXECUTIONENGINE_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Target.h"
|
#include "Target.h"
|
||||||
#include "llvm-c/TargetMachine.h"
|
#include "TargetMachine.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
#ifndef LLVM_C_IRREADER_H
|
#ifndef LLVM_C_IRREADER_H
|
||||||
#define LLVM_C_IRREADER_H
|
#define LLVM_C_IRREADER_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -1,4 +1,4 @@
|
|||||||
/*===----------- llvm-c/LLJIT.h - OrcV2 LLJIT C bindings --------*- C++ -*-===*\
|
/*===----------- llvm-c/LLJIT.h - OrcV2 LLJIT C bindings ----------*- C -*-===*\
|
||||||
|* *|
|
|* *|
|
||||||
|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
|
|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
|
||||||
|* Exceptions. *|
|
|* Exceptions. *|
|
||||||
@@ -24,10 +24,10 @@
|
|||||||
#ifndef LLVM_C_LLJIT_H
|
#ifndef LLVM_C_LLJIT_H
|
||||||
#define LLVM_C_LLJIT_H
|
#define LLVM_C_LLJIT_H
|
||||||
|
|
||||||
#include "llvm-c/Error.h"
|
#include "Error.h"
|
||||||
#include "llvm-c/Orc.h"
|
#include "Orc.h"
|
||||||
#include "llvm-c/TargetMachine.h"
|
#include "TargetMachine.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
/*===------- llvm-c/LLJITUtils.h - Advanced LLJIT features --------*- 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 header declares the C interface for extra utilities to be used with *|
|
||||||
|
|* the LLJIT class from the llvm-c/LLJIT.h header. It requires to following *|
|
||||||
|
|* link libraries in addition to libLLVMOrcJIT.a: *|
|
||||||
|
|* - libLLVMOrcDebugging.a *|
|
||||||
|
|* *|
|
||||||
|
|* Many exotic languages can interoperate with C code but have a harder time *|
|
||||||
|
|* with C++ due to name mangling. So in addition to C, this interface enables *|
|
||||||
|
|* tools written in such languages. *|
|
||||||
|
|* *|
|
||||||
|
|* Note: This interface is experimental. It is *NOT* stable, and may be *|
|
||||||
|
|* changed without warning. Only C API usage documentation is *|
|
||||||
|
|* provided. See the C++ documentation for all higher level ORC API *|
|
||||||
|
|* details. *|
|
||||||
|
|* *|
|
||||||
|
\*===----------------------------------------------------------------------===*/
|
||||||
|
|
||||||
|
#ifndef LLVM_C_LLJITUTILS_H
|
||||||
|
#define LLVM_C_LLJITUTILS_H
|
||||||
|
|
||||||
|
#include "LLJIT.h"
|
||||||
|
|
||||||
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @defgroup LLVMCExecutionEngineLLJITUtils LLJIT Utilities
|
||||||
|
* @ingroup LLVMCExecutionEngineLLJIT
|
||||||
|
*
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Install the plugin that submits debug objects to the executor. Executors must
|
||||||
|
* expose the llvm_orc_registerJITLoaderGDBWrapper symbol.
|
||||||
|
*/
|
||||||
|
LLVMErrorRef LLVMOrcLLJITEnableDebugSupport(LLVMOrcLLJITRef J);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @}
|
||||||
|
*/
|
||||||
|
|
||||||
|
LLVM_C_EXTERN_C_END
|
||||||
|
|
||||||
|
#endif /* LLVM_C_LLJITUTILS_H */
|
||||||
+2
-2
@@ -14,8 +14,8 @@
|
|||||||
#ifndef LLVM_C_LINKER_H
|
#ifndef LLVM_C_LINKER_H
|
||||||
#define LLVM_C_LINKER_H
|
#define LLVM_C_LINKER_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -19,9 +19,9 @@
|
|||||||
#ifndef LLVM_C_OBJECT_H
|
#ifndef LLVM_C_OBJECT_H
|
||||||
#define LLVM_C_OBJECT_H
|
#define LLVM_C_OBJECT_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
#include "llvm-c/Config//llvm-config.h"
|
#include "Config/llvm-config.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
+8
-8
@@ -27,9 +27,9 @@
|
|||||||
#ifndef LLVM_C_ORC_H
|
#ifndef LLVM_C_ORC_H
|
||||||
#define LLVM_C_ORC_H
|
#define LLVM_C_ORC_H
|
||||||
|
|
||||||
#include "llvm-c/Error.h"
|
#include "Error.h"
|
||||||
#include "llvm-c/TargetMachine.h"
|
#include "TargetMachine.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
@@ -346,7 +346,7 @@ typedef struct LLVMOrcOpaqueLookupState *LLVMOrcLookupStateRef;
|
|||||||
* into.
|
* into.
|
||||||
*
|
*
|
||||||
* The JDLookupFlags argument can be inspected to determine whether the original
|
* The JDLookupFlags argument can be inspected to determine whether the original
|
||||||
* lookup included non-exported symobls.
|
* lookup included non-exported symbols.
|
||||||
*
|
*
|
||||||
* Finally, the LookupSet argument contains the set of symbols that could not
|
* Finally, the LookupSet argument contains the set of symbols that could not
|
||||||
* be found in JD already (the set of generation candidates).
|
* be found in JD already (the set of generation candidates).
|
||||||
@@ -508,7 +508,7 @@ void LLVMOrcSymbolStringPoolClearDeadEntries(LLVMOrcSymbolStringPoolRef SSP);
|
|||||||
* Intern a string in the ExecutionSession's SymbolStringPool and return a
|
* Intern a string in the ExecutionSession's SymbolStringPool and return a
|
||||||
* reference to it. This increments the ref-count of the pool entry, and the
|
* reference to it. This increments the ref-count of the pool entry, and the
|
||||||
* returned value should be released once the client is done with it by
|
* returned value should be released once the client is done with it by
|
||||||
* calling LLVMOrReleaseSymbolStringPoolEntry.
|
* calling LLVMOrcReleaseSymbolStringPoolEntry.
|
||||||
*
|
*
|
||||||
* Since strings are uniqued within the SymbolStringPool
|
* Since strings are uniqued within the SymbolStringPool
|
||||||
* LLVMOrcSymbolStringPoolEntryRefs can be compared by value to test string
|
* LLVMOrcSymbolStringPoolEntryRefs can be compared by value to test string
|
||||||
@@ -796,7 +796,7 @@ void LLVMOrcDisposeSymbols(LLVMOrcSymbolStringPoolEntryRef *Symbols);
|
|||||||
* method returns an error then clients should log it and call
|
* method returns an error then clients should log it and call
|
||||||
* LLVMOrcMaterializationResponsibilityFailMaterialization. If no dependencies
|
* LLVMOrcMaterializationResponsibilityFailMaterialization. If no dependencies
|
||||||
* have been registered for the symbols covered by this
|
* have been registered for the symbols covered by this
|
||||||
* MaterializationResponsibiility then this method is guaranteed to return
|
* MaterializationResponsibility then this method is guaranteed to return
|
||||||
* LLVMErrorSuccess.
|
* LLVMErrorSuccess.
|
||||||
*/
|
*/
|
||||||
LLVMErrorRef LLVMOrcMaterializationResponsibilityNotifyResolved(
|
LLVMErrorRef LLVMOrcMaterializationResponsibilityNotifyResolved(
|
||||||
@@ -813,7 +813,7 @@ LLVMErrorRef LLVMOrcMaterializationResponsibilityNotifyResolved(
|
|||||||
* method returns an error then clients should log it and call
|
* method returns an error then clients should log it and call
|
||||||
* LLVMOrcMaterializationResponsibilityFailMaterialization.
|
* LLVMOrcMaterializationResponsibilityFailMaterialization.
|
||||||
* If no dependencies have been registered for the symbols covered by this
|
* If no dependencies have been registered for the symbols covered by this
|
||||||
* MaterializationResponsibiility then this method is guaranteed to return
|
* MaterializationResponsibility then this method is guaranteed to return
|
||||||
* LLVMErrorSuccess.
|
* LLVMErrorSuccess.
|
||||||
*/
|
*/
|
||||||
LLVMErrorRef LLVMOrcMaterializationResponsibilityNotifyEmitted(
|
LLVMErrorRef LLVMOrcMaterializationResponsibilityNotifyEmitted(
|
||||||
@@ -839,7 +839,7 @@ LLVMErrorRef LLVMOrcMaterializationResponsibilityDefineMaterializing(
|
|||||||
/**
|
/**
|
||||||
* Notify all not-yet-emitted covered by this MaterializationResponsibility
|
* Notify all not-yet-emitted covered by this MaterializationResponsibility
|
||||||
* instance that an error has occurred.
|
* instance that an error has occurred.
|
||||||
* This will remove all symbols covered by this MaterializationResponsibilty
|
* This will remove all symbols covered by this MaterializationResponsibility
|
||||||
* from the target JITDylib, and send an error to any queries waiting on
|
* from the target JITDylib, and send an error to any queries waiting on
|
||||||
* these symbols.
|
* these symbols.
|
||||||
*/
|
*/
|
||||||
|
|||||||
+5
-5
@@ -24,11 +24,11 @@
|
|||||||
#ifndef LLVM_C_ORCEE_H
|
#ifndef LLVM_C_ORCEE_H
|
||||||
#define LLVM_C_ORCEE_H
|
#define LLVM_C_ORCEE_H
|
||||||
|
|
||||||
#include "llvm-c/Error.h"
|
#include "Error.h"
|
||||||
#include "llvm-c/ExecutionEngine.h"
|
#include "ExecutionEngine.h"
|
||||||
#include "llvm-c/Orc.h"
|
#include "Orc.h"
|
||||||
#include "llvm-c/TargetMachine.h"
|
#include "TargetMachine.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,8 @@
|
|||||||
#ifndef LLVM_C_REMARKS_H
|
#ifndef LLVM_C_REMARKS_H
|
||||||
#define LLVM_C_REMARKS_H
|
#define LLVM_C_REMARKS_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#else
|
#else
|
||||||
|
|||||||
@@ -14,9 +14,9 @@
|
|||||||
#ifndef LLVM_C_SUPPORT_H
|
#ifndef LLVM_C_SUPPORT_H
|
||||||
#define LLVM_C_SUPPORT_H
|
#define LLVM_C_SUPPORT_H
|
||||||
|
|
||||||
#include "llvm-c/DataTypes.h"
|
#include "DataTypes.h"
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
|
|||||||
+15
-15
@@ -19,9 +19,9 @@
|
|||||||
#ifndef LLVM_C_TARGET_H
|
#ifndef LLVM_C_TARGET_H
|
||||||
#define LLVM_C_TARGET_H
|
#define LLVM_C_TARGET_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
#include "llvm-c/Config//llvm-config.h"
|
#include "Config/llvm-config.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
@@ -40,34 +40,34 @@ typedef struct LLVMOpaqueTargetLibraryInfotData *LLVMTargetLibraryInfoRef;
|
|||||||
/* Declare all of the target-initialization functions that are available. */
|
/* Declare all of the target-initialization functions that are available. */
|
||||||
#define LLVM_TARGET(TargetName) \
|
#define LLVM_TARGET(TargetName) \
|
||||||
void LLVMInitialize##TargetName##TargetInfo(void);
|
void LLVMInitialize##TargetName##TargetInfo(void);
|
||||||
#include "llvm-c/Config//Targets.def"
|
#include "Config/Targets.def"
|
||||||
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
||||||
|
|
||||||
#define LLVM_TARGET(TargetName) void LLVMInitialize##TargetName##Target(void);
|
#define LLVM_TARGET(TargetName) void LLVMInitialize##TargetName##Target(void);
|
||||||
#include "llvm-c/Config//Targets.def"
|
#include "Config/Targets.def"
|
||||||
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
||||||
|
|
||||||
#define LLVM_TARGET(TargetName) \
|
#define LLVM_TARGET(TargetName) \
|
||||||
void LLVMInitialize##TargetName##TargetMC(void);
|
void LLVMInitialize##TargetName##TargetMC(void);
|
||||||
#include "llvm-c/Config//Targets.def"
|
#include "Config/Targets.def"
|
||||||
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
||||||
|
|
||||||
/* Declare all of the available assembly printer initialization functions. */
|
/* Declare all of the available assembly printer initialization functions. */
|
||||||
#define LLVM_ASM_PRINTER(TargetName) \
|
#define LLVM_ASM_PRINTER(TargetName) \
|
||||||
void LLVMInitialize##TargetName##AsmPrinter(void);
|
void LLVMInitialize##TargetName##AsmPrinter(void);
|
||||||
#include "llvm-c/Config//AsmPrinters.def"
|
#include "Config/AsmPrinters.def"
|
||||||
#undef LLVM_ASM_PRINTER /* Explicit undef to make SWIG happier */
|
#undef LLVM_ASM_PRINTER /* Explicit undef to make SWIG happier */
|
||||||
|
|
||||||
/* Declare all of the available assembly parser initialization functions. */
|
/* Declare all of the available assembly parser initialization functions. */
|
||||||
#define LLVM_ASM_PARSER(TargetName) \
|
#define LLVM_ASM_PARSER(TargetName) \
|
||||||
void LLVMInitialize##TargetName##AsmParser(void);
|
void LLVMInitialize##TargetName##AsmParser(void);
|
||||||
#include "llvm-c/Config//AsmParsers.def"
|
#include "Config/AsmParsers.def"
|
||||||
#undef LLVM_ASM_PARSER /* Explicit undef to make SWIG happier */
|
#undef LLVM_ASM_PARSER /* Explicit undef to make SWIG happier */
|
||||||
|
|
||||||
/* Declare all of the available disassembler initialization functions. */
|
/* Declare all of the available disassembler initialization functions. */
|
||||||
#define LLVM_DISASSEMBLER(TargetName) \
|
#define LLVM_DISASSEMBLER(TargetName) \
|
||||||
void LLVMInitialize##TargetName##Disassembler(void);
|
void LLVMInitialize##TargetName##Disassembler(void);
|
||||||
#include "llvm-c/Config//Disassemblers.def"
|
#include "Config/Disassemblers.def"
|
||||||
#undef LLVM_DISASSEMBLER /* Explicit undef to make SWIG happier */
|
#undef LLVM_DISASSEMBLER /* Explicit undef to make SWIG happier */
|
||||||
|
|
||||||
/** LLVMInitializeAllTargetInfos - The main program should call this function if
|
/** LLVMInitializeAllTargetInfos - The main program should call this function if
|
||||||
@@ -75,7 +75,7 @@ typedef struct LLVMOpaqueTargetLibraryInfotData *LLVMTargetLibraryInfoRef;
|
|||||||
support. */
|
support. */
|
||||||
static inline void LLVMInitializeAllTargetInfos(void) {
|
static inline void LLVMInitializeAllTargetInfos(void) {
|
||||||
#define LLVM_TARGET(TargetName) LLVMInitialize##TargetName##TargetInfo();
|
#define LLVM_TARGET(TargetName) LLVMInitialize##TargetName##TargetInfo();
|
||||||
#include "llvm-c/Config//Targets.def"
|
#include "Config/Targets.def"
|
||||||
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@ static inline void LLVMInitializeAllTargetInfos(void) {
|
|||||||
support. */
|
support. */
|
||||||
static inline void LLVMInitializeAllTargets(void) {
|
static inline void LLVMInitializeAllTargets(void) {
|
||||||
#define LLVM_TARGET(TargetName) LLVMInitialize##TargetName##Target();
|
#define LLVM_TARGET(TargetName) LLVMInitialize##TargetName##Target();
|
||||||
#include "llvm-c/Config//Targets.def"
|
#include "Config/Targets.def"
|
||||||
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@ static inline void LLVMInitializeAllTargets(void) {
|
|||||||
support. */
|
support. */
|
||||||
static inline void LLVMInitializeAllTargetMCs(void) {
|
static inline void LLVMInitializeAllTargetMCs(void) {
|
||||||
#define LLVM_TARGET(TargetName) LLVMInitialize##TargetName##TargetMC();
|
#define LLVM_TARGET(TargetName) LLVMInitialize##TargetName##TargetMC();
|
||||||
#include "llvm-c/Config//Targets.def"
|
#include "Config/Targets.def"
|
||||||
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
#undef LLVM_TARGET /* Explicit undef to make SWIG happier */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,7 +102,7 @@ static inline void LLVMInitializeAllTargetMCs(void) {
|
|||||||
available via the TargetRegistry. */
|
available via the TargetRegistry. */
|
||||||
static inline void LLVMInitializeAllAsmPrinters(void) {
|
static inline void LLVMInitializeAllAsmPrinters(void) {
|
||||||
#define LLVM_ASM_PRINTER(TargetName) LLVMInitialize##TargetName##AsmPrinter();
|
#define LLVM_ASM_PRINTER(TargetName) LLVMInitialize##TargetName##AsmPrinter();
|
||||||
#include "llvm-c/Config//AsmPrinters.def"
|
#include "Config/AsmPrinters.def"
|
||||||
#undef LLVM_ASM_PRINTER /* Explicit undef to make SWIG happier */
|
#undef LLVM_ASM_PRINTER /* Explicit undef to make SWIG happier */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ static inline void LLVMInitializeAllAsmPrinters(void) {
|
|||||||
available via the TargetRegistry. */
|
available via the TargetRegistry. */
|
||||||
static inline void LLVMInitializeAllAsmParsers(void) {
|
static inline void LLVMInitializeAllAsmParsers(void) {
|
||||||
#define LLVM_ASM_PARSER(TargetName) LLVMInitialize##TargetName##AsmParser();
|
#define LLVM_ASM_PARSER(TargetName) LLVMInitialize##TargetName##AsmParser();
|
||||||
#include "llvm-c/Config//AsmParsers.def"
|
#include "Config/AsmParsers.def"
|
||||||
#undef LLVM_ASM_PARSER /* Explicit undef to make SWIG happier */
|
#undef LLVM_ASM_PARSER /* Explicit undef to make SWIG happier */
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ static inline void LLVMInitializeAllAsmParsers(void) {
|
|||||||
static inline void LLVMInitializeAllDisassemblers(void) {
|
static inline void LLVMInitializeAllDisassemblers(void) {
|
||||||
#define LLVM_DISASSEMBLER(TargetName) \
|
#define LLVM_DISASSEMBLER(TargetName) \
|
||||||
LLVMInitialize##TargetName##Disassembler();
|
LLVMInitialize##TargetName##Disassembler();
|
||||||
#include "llvm-c/Config//Disassemblers.def"
|
#include "Config/Disassemblers.def"
|
||||||
#undef LLVM_DISASSEMBLER /* Explicit undef to make SWIG happier */
|
#undef LLVM_DISASSEMBLER /* Explicit undef to make SWIG happier */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,9 +19,9 @@
|
|||||||
#ifndef LLVM_C_TARGETMACHINE_H
|
#ifndef LLVM_C_TARGETMACHINE_H
|
||||||
#define LLVM_C_TARGETMACHINE_H
|
#define LLVM_C_TARGETMACHINE_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
#include "llvm-c/Target.h"
|
#include "Target.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
@@ -31,6 +31,7 @@ LLVM_C_EXTERN_C_BEGIN
|
|||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
typedef struct LLVMOpaqueTargetMachineOptions *LLVMTargetMachineOptionsRef;
|
||||||
typedef struct LLVMOpaqueTargetMachine *LLVMTargetMachineRef;
|
typedef struct LLVMOpaqueTargetMachine *LLVMTargetMachineRef;
|
||||||
typedef struct LLVMTarget *LLVMTargetRef;
|
typedef struct LLVMTarget *LLVMTargetRef;
|
||||||
|
|
||||||
@@ -66,6 +67,12 @@ typedef enum {
|
|||||||
LLVMObjectFile
|
LLVMObjectFile
|
||||||
} LLVMCodeGenFileType;
|
} LLVMCodeGenFileType;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
LLVMGlobalISelAbortEnable,
|
||||||
|
LLVMGlobalISelAbortDisable,
|
||||||
|
LLVMGlobalISelAbortDisableWithDiag,
|
||||||
|
} LLVMGlobalISelAbortMode;
|
||||||
|
|
||||||
/** Returns the first llvm::Target in the registered targets list. */
|
/** Returns the first llvm::Target in the registered targets list. */
|
||||||
LLVMTargetRef LLVMGetFirstTarget(void);
|
LLVMTargetRef LLVMGetFirstTarget(void);
|
||||||
/** Returns the next llvm::Target given a previous one (or null if there's none) */
|
/** Returns the next llvm::Target given a previous one (or null if there's none) */
|
||||||
@@ -98,6 +105,55 @@ LLVMBool LLVMTargetHasTargetMachine(LLVMTargetRef T);
|
|||||||
LLVMBool LLVMTargetHasAsmBackend(LLVMTargetRef T);
|
LLVMBool LLVMTargetHasAsmBackend(LLVMTargetRef T);
|
||||||
|
|
||||||
/*===-- Target Machine ----------------------------------------------------===*/
|
/*===-- Target Machine ----------------------------------------------------===*/
|
||||||
|
/**
|
||||||
|
* Create a new set of options for an llvm::TargetMachine.
|
||||||
|
*
|
||||||
|
* The returned option structure must be released with
|
||||||
|
* LLVMDisposeTargetMachineOptions() after the call to
|
||||||
|
* LLVMCreateTargetMachineWithOptions().
|
||||||
|
*/
|
||||||
|
LLVMTargetMachineOptionsRef LLVMCreateTargetMachineOptions(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dispose of an LLVMTargetMachineOptionsRef instance.
|
||||||
|
*/
|
||||||
|
void LLVMDisposeTargetMachineOptions(LLVMTargetMachineOptionsRef Options);
|
||||||
|
|
||||||
|
void LLVMTargetMachineOptionsSetCPU(LLVMTargetMachineOptionsRef Options,
|
||||||
|
const char *CPU);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the list of features for the target machine.
|
||||||
|
*
|
||||||
|
* \param Features a comma-separated list of features.
|
||||||
|
*/
|
||||||
|
void LLVMTargetMachineOptionsSetFeatures(LLVMTargetMachineOptionsRef Options,
|
||||||
|
const char *Features);
|
||||||
|
|
||||||
|
void LLVMTargetMachineOptionsSetABI(LLVMTargetMachineOptionsRef Options,
|
||||||
|
const char *ABI);
|
||||||
|
|
||||||
|
void LLVMTargetMachineOptionsSetCodeGenOptLevel(
|
||||||
|
LLVMTargetMachineOptionsRef Options, LLVMCodeGenOptLevel Level);
|
||||||
|
|
||||||
|
void LLVMTargetMachineOptionsSetRelocMode(LLVMTargetMachineOptionsRef Options,
|
||||||
|
LLVMRelocMode Reloc);
|
||||||
|
|
||||||
|
void LLVMTargetMachineOptionsSetCodeModel(LLVMTargetMachineOptionsRef Options,
|
||||||
|
LLVMCodeModel CodeModel);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new llvm::TargetMachine.
|
||||||
|
*
|
||||||
|
* \param T the target to create a machine for.
|
||||||
|
* \param Triple a triple describing the target machine.
|
||||||
|
* \param Options additional configuration (see
|
||||||
|
* LLVMCreateTargetMachineOptions()).
|
||||||
|
*/
|
||||||
|
LLVMTargetMachineRef
|
||||||
|
LLVMCreateTargetMachineWithOptions(LLVMTargetRef T, const char *Triple,
|
||||||
|
LLVMTargetMachineOptionsRef Options);
|
||||||
|
|
||||||
/** Creates a new llvm::TargetMachine. See llvm::Target::createTargetMachine */
|
/** Creates a new llvm::TargetMachine. See llvm::Target::createTargetMachine */
|
||||||
LLVMTargetMachineRef LLVMCreateTargetMachine(LLVMTargetRef T,
|
LLVMTargetMachineRef LLVMCreateTargetMachine(LLVMTargetRef T,
|
||||||
const char *Triple, const char *CPU, const char *Features,
|
const char *Triple, const char *CPU, const char *Features,
|
||||||
@@ -132,6 +188,21 @@ LLVMTargetDataRef LLVMCreateTargetDataLayout(LLVMTargetMachineRef T);
|
|||||||
void LLVMSetTargetMachineAsmVerbosity(LLVMTargetMachineRef T,
|
void LLVMSetTargetMachineAsmVerbosity(LLVMTargetMachineRef T,
|
||||||
LLVMBool VerboseAsm);
|
LLVMBool VerboseAsm);
|
||||||
|
|
||||||
|
/** Enable fast-path instruction selection. */
|
||||||
|
void LLVMSetTargetMachineFastISel(LLVMTargetMachineRef T, LLVMBool Enable);
|
||||||
|
|
||||||
|
/** Enable global instruction selection. */
|
||||||
|
void LLVMSetTargetMachineGlobalISel(LLVMTargetMachineRef T, LLVMBool Enable);
|
||||||
|
|
||||||
|
/** Set abort behaviour when global instruction selection fails to lower/select
|
||||||
|
* an instruction. */
|
||||||
|
void LLVMSetTargetMachineGlobalISelAbort(LLVMTargetMachineRef T,
|
||||||
|
LLVMGlobalISelAbortMode Mode);
|
||||||
|
|
||||||
|
/** Enable the MachineOutliner pass. */
|
||||||
|
void LLVMSetTargetMachineMachineOutliner(LLVMTargetMachineRef T,
|
||||||
|
LLVMBool Enable);
|
||||||
|
|
||||||
/** Emits an asm or object file for the given module to the filename. This
|
/** Emits an asm or object file for the given module to the filename. This
|
||||||
wraps several c++ only classes (among them a file stream). Returns any
|
wraps several c++ only classes (among them a file stream). Returns any
|
||||||
error in ErrorMessage. Use LLVMDisposeMessage to dispose the message. */
|
error in ErrorMessage. Use LLVMDisposeMessage to dispose the message. */
|
||||||
|
|||||||
@@ -14,9 +14,9 @@
|
|||||||
#ifndef LLVM_C_TRANSFORMS_PASSBUILDER_H
|
#ifndef LLVM_C_TRANSFORMS_PASSBUILDER_H
|
||||||
#define LLVM_C_TRANSFORMS_PASSBUILDER_H
|
#define LLVM_C_TRANSFORMS_PASSBUILDER_H
|
||||||
|
|
||||||
#include "llvm-c/Error.h"
|
#include "../Error.h"
|
||||||
#include "llvm-c/TargetMachine.h"
|
#include "../TargetMachine.h"
|
||||||
#include "llvm-c/Types.h"
|
#include "../Types.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup LLVMCCoreNewPM New Pass Manager
|
* @defgroup LLVMCCoreNewPM New Pass Manager
|
||||||
|
|||||||
+7
-2
@@ -14,8 +14,8 @@
|
|||||||
#ifndef LLVM_C_TYPES_H
|
#ifndef LLVM_C_TYPES_H
|
||||||
#define LLVM_C_TYPES_H
|
#define LLVM_C_TYPES_H
|
||||||
|
|
||||||
#include "llvm-c/DataTypes.h"
|
#include "DataTypes.h"
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
|
|
||||||
LLVM_C_EXTERN_C_BEGIN
|
LLVM_C_EXTERN_C_BEGIN
|
||||||
|
|
||||||
@@ -132,6 +132,11 @@ typedef struct LLVMOpaquePassManager *LLVMPassManagerRef;
|
|||||||
* @see llvm::Use */
|
* @see llvm::Use */
|
||||||
typedef struct LLVMOpaqueUse *LLVMUseRef;
|
typedef struct LLVMOpaqueUse *LLVMUseRef;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see llvm::OperandBundleDef
|
||||||
|
*/
|
||||||
|
typedef struct LLVMOpaqueOperandBundle *LLVMOperandBundleRef;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to represent an attributes.
|
* Used to represent an attributes.
|
||||||
*
|
*
|
||||||
|
|||||||
+1
-1
@@ -16,7 +16,7 @@
|
|||||||
#ifndef LLVM_C_LTO_H
|
#ifndef LLVM_C_LTO_H
|
||||||
#define LLVM_C_LTO_H
|
#define LLVM_C_LTO_H
|
||||||
|
|
||||||
#include "llvm-c/ExternC.h"
|
#include "ExternC.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
|||||||
Reference in New Issue
Block a user