//===- IRBindings.h - Additional bindings for IR ----------------*- 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 defines additional C bindings for the IR component. // //===----------------------------------------------------------------------===// #ifndef LLVM_BINDINGS_GO_LLVM_IRBINDINGS_H #define LLVM_BINDINGS_GO_LLVM_IRBINDINGS_H #include "llvm-c/Core.h" #include "llvm-c/DebugInfo.h" #ifdef __cplusplus #include "llvm/IR/Metadata.h" #include "llvm/Support/CBindingWrapping.h" #endif #include #ifdef __cplusplus extern "C" { #endif struct LLVMDebugLocMetadata{ unsigned Line; unsigned Col; LLVMMetadataRef Scope; LLVMMetadataRef InlinedAt; }; LLVMMetadataRef LLVMConstantAsMetadata(LLVMValueRef Val); LLVMMetadataRef LLVMMDString2(LLVMContextRef C, const char *Str, unsigned SLen); LLVMMetadataRef LLVMMDNode2(LLVMContextRef C, LLVMMetadataRef *MDs, unsigned Count); void LLVMAddNamedMetadataOperand2(LLVMModuleRef M, const char *name, LLVMMetadataRef Val); void LLVMSetMetadata2(LLVMValueRef Inst, unsigned KindID, LLVMMetadataRef MD); void LLVMGoSetCurrentDebugLocation(LLVMBuilderRef Bref, unsigned Line, unsigned Col, LLVMMetadataRef Scope, LLVMMetadataRef InlinedAt); struct LLVMDebugLocMetadata LLVMGoGetCurrentDebugLocation(LLVMBuilderRef Bref); LLVMValueRef LLVMGoGetInlineAsm(LLVMTypeRef Ty, char *AsmString, size_t AsmStringSize, char *Constraints, size_t ConstraintsSize, LLVMBool HasSideEffects, LLVMBool IsAlignStack, LLVMInlineAsmDialect Dialect, LLVMBool CanThrow); #ifdef __cplusplus } #endif #endif