LLVM  11.0.0git
Comdat.h
Go to the documentation of this file.
1 /*===-- llvm-c/Comdat.h - Module Comdat C Interface -------------*- C++ -*-===*\
2 |* *|
3 |* Part of the LLVM Project, under the Apache License v2.0 with LLVM *|
4 |* Exceptions. *|
5 |* See https://llvm.org/LICENSE.txt for license information. *|
6 |* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *|
7 |* *|
8 |*===----------------------------------------------------------------------===*|
9 |* *|
10 |* This file defines the C interface to COMDAT. *|
11 |* *|
12 \*===----------------------------------------------------------------------===*/
13 
14 #ifndef LLVM_C_COMDAT_H
15 #define LLVM_C_COMDAT_H
16 
17 #include "llvm-c/ExternC.h"
18 #include "llvm-c/Types.h"
19 
21 
22 typedef enum {
23  LLVMAnyComdatSelectionKind, ///< The linker may choose any COMDAT.
24  LLVMExactMatchComdatSelectionKind, ///< The data referenced by the COMDAT must
25  ///< be the same.
26  LLVMLargestComdatSelectionKind, ///< The linker will choose the largest
27  ///< COMDAT.
28  LLVMNoDuplicatesComdatSelectionKind, ///< No other Module may specify this
29  ///< COMDAT.
30  LLVMSameSizeComdatSelectionKind ///< The data referenced by the COMDAT must be
31  ///< the same size.
33 
34 /**
35  * Return the Comdat in the module with the specified name. It is created
36  * if it didn't already exist.
37  *
38  * @see llvm::Module::getOrInsertComdat()
39  */
41 
42 /**
43  * Get the Comdat assigned to the given global object.
44  *
45  * @see llvm::GlobalObject::getComdat()
46  */
48 
49 /**
50  * Assign the Comdat to the given global object.
51  *
52  * @see llvm::GlobalObject::setComdat()
53  */
55 
56 /*
57  * Get the conflict resolution selection kind for the Comdat.
58  *
59  * @see llvm::Comdat::getSelectionKind()
60  */
62 
63 /*
64  * Set the conflict resolution selection kind for the Comdat.
65  *
66  * @see llvm::Comdat::setSelectionKind()
67  */
69 
71 
72 #endif
uint64_t CallInst * C
struct LLVMOpaqueModule * LLVMModuleRef
The top-level container for all other LLVM Intermediate Representation (IR) objects.
Definition: Types.h:61
amdgpu Simplify well known AMD library false FunctionCallee Value const Twine & Name
LLVMComdatSelectionKind
Definition: Comdat.h:22
The data referenced by the COMDAT must be the same size.
Definition: Comdat.h:30
struct LLVMComdat * LLVMComdatRef
Definition: Types.h:153
LLVMComdatRef LLVMGetComdat(LLVMValueRef V)
Get the Comdat assigned to the given global object.
Definition: Comdat.cpp:32
The linker may choose any COMDAT.
Definition: Comdat.h:23
The data referenced by the COMDAT must be the same.
Definition: Comdat.h:24
void LLVMSetComdatSelectionKind(LLVMComdatRef C, LLVMComdatSelectionKind Kind)
Definition: Comdat.cpp:58
LLVMComdatSelectionKind LLVMGetComdatSelectionKind(LLVMComdatRef C)
Definition: Comdat.cpp:42
The linker will choose the largest COMDAT.
Definition: Comdat.h:26
No other Module may specify this COMDAT.
Definition: Comdat.h:28
LLVMComdatRef LLVMGetOrInsertComdat(LLVMModuleRef M, const char *Name)
Return the Comdat in the module with the specified name.
Definition: Comdat.cpp:28
void LLVMSetComdat(LLVMValueRef V, LLVMComdatRef C)
Assign the Comdat to the given global object.
Definition: Comdat.cpp:37
#define LLVM_C_EXTERN_C_END
Definition: ExternC.h:36
#define LLVM_C_EXTERN_C_BEGIN
Definition: ExternC.h:35
struct LLVMOpaqueValue * LLVMValueRef
Represents an individual value in LLVM IR.
Definition: Types.h:75