| /*===-- llvm-c/Comdat.h - Module Comdat C Interface -------------*- C++ -*-===*\ | |
| |* *| | |
| |* The LLVM Compiler Infrastructure *| | |
| |* *| | |
| |* This file is distributed under the University of Illinois Open Source *| | |
| |* License. See LICENSE.TXT for details. *| | |
| |* *| | |
| |*===----------------------------------------------------------------------===*| | |
| |* *| | |
| |* This file defines the C interface to COMDAT. *| | |
| |* *| | |
| \*===----------------------------------------------------------------------===*/ | |
| #ifndef LLVM_C_COMDAT_H | |
| #define LLVM_C_COMDAT_H | |
| #include "llvm-c/Types.h" | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| typedef enum { | |
| LLVMAnyComdatSelectionKind, ///< The linker may choose any COMDAT. | |
| LLVMExactMatchComdatSelectionKind, ///< The data referenced by the COMDAT must | |
| ///< be the same. | |
| LLVMLargestComdatSelectionKind, ///< The linker will choose the largest | |
| ///< COMDAT. | |
| LLVMNoDuplicatesComdatSelectionKind, ///< No other Module may specify this | |
| ///< COMDAT. | |
| LLVMSameSizeComdatSelectionKind ///< The data referenced by the COMDAT must be | |
| ///< the same size. | |
| } LLVMComdatSelectionKind; | |
| /** | |
| * Return the Comdat in the module with the specified name. It is created | |
| * if it didn't already exist. | |
| * | |
| * @see llvm::Module::getOrInsertComdat() | |
| */ | |
| LLVMComdatRef LLVMGetOrInsertComdat(LLVMModuleRef M, const char *Name); | |
| /** | |
| * Get the Comdat assigned to the given global object. | |
| * | |
| * @see llvm::GlobalObject::getComdat() | |
| */ | |
| LLVMComdatRef LLVMGetComdat(LLVMValueRef V); | |
| /** | |
| * Assign the Comdat to the given global object. | |
| * | |
| * @see llvm::GlobalObject::setComdat() | |
| */ | |
| void LLVMSetComdat(LLVMValueRef V, LLVMComdatRef C); | |
| /* | |
| * Get the conflict resolution selection kind for the Comdat. | |
| * | |
| * @see llvm::Comdat::getSelectionKind() | |
| */ | |
| LLVMComdatSelectionKind LLVMGetComdatSelectionKind(LLVMComdatRef C); | |
| /* | |
| * Set the conflict resolution selection kind for the Comdat. | |
| * | |
| * @see llvm::Comdat::setSelectionKind() | |
| */ | |
| void LLVMSetComdatSelectionKind(LLVMComdatRef C, LLVMComdatSelectionKind Kind); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif |