26Comdat::Comdat() =
default;
30void Comdat::addUser(
GlobalObject *GO) { Users.insert(GO); }
32void Comdat::removeUser(
GlobalObject *GO) { Users.erase(GO); }
40 return wrap(
G->getComdat());
49 switch (
unwrap(
C)->getSelectionKind()) {
This file defines the StringMapEntry class - it is intended to be a low dependency implementation det...
Module.h This file contains the declarations for the Module class.
This file defines the SmallPtrSet class.
StringRef getName() const
@ Largest
The linker will choose the largest COMDAT.
@ SameSize
The data referenced by the COMDAT must be the same size.
@ Any
The linker may choose any COMDAT.
@ NoDeduplicate
No deduplication is performed.
@ ExactMatch
The data referenced by the COMDAT must be the same.
void setSelectionKind(SelectionKind Val)
StringRef - Represent a constant reference to a string, i.e.
LLVMComdatSelectionKind LLVMGetComdatSelectionKind(LLVMComdatRef C)
LLVMComdatRef LLVMGetOrInsertComdat(LLVMModuleRef M, const char *Name)
Return the Comdat in the module with the specified name.
void LLVMSetComdat(LLVMValueRef V, LLVMComdatRef C)
Assign the Comdat to the given global object.
void LLVMSetComdatSelectionKind(LLVMComdatRef C, LLVMComdatSelectionKind Kind)
LLVMComdatRef LLVMGetComdat(LLVMValueRef V)
Get the Comdat assigned to the given global object.
@ LLVMLargestComdatSelectionKind
The linker will choose the largest COMDAT.
@ LLVMSameSizeComdatSelectionKind
The data referenced by the COMDAT must be the same size.
@ LLVMExactMatchComdatSelectionKind
The data referenced by the COMDAT must be the same.
@ LLVMAnyComdatSelectionKind
The linker may choose any COMDAT.
@ LLVMNoDeduplicateComdatSelectionKind
No deduplication is performed.
struct LLVMOpaqueValue * LLVMValueRef
Represents an individual value in LLVM IR.
struct LLVMComdat * LLVMComdatRef
struct LLVMOpaqueModule * LLVMModuleRef
The top-level container for all other LLVM Intermediate Representation (IR) objects.
This file contains the declaration of the Comdat class, which represents a single COMDAT in LLVM.
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
@ C
The default llvm calling convention, compatible with C.
This is an optimization pass for GlobalISel generic memory operations.
Attribute unwrap(LLVMAttributeRef Attr)
LLVMAttributeRef wrap(Attribute Attr)