| //===- 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 <stdint.h> |
| |
| #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 LLVMSetCurrentDebugLocation2(LLVMBuilderRef Bref, unsigned Line, |
| unsigned Col, LLVMMetadataRef Scope, |
| LLVMMetadataRef InlinedAt); |
| |
| struct LLVMDebugLocMetadata LLVMGetCurrentDebugLocation2(LLVMBuilderRef Bref); |
| |
| #ifdef __cplusplus |
| } |
| |
| #endif |
| |
| #endif |