18 #ifndef LLVM_IR_GLOBALVALUE_H
19 #define LLVM_IR_GLOBALVALUE_H
236 if (!Name.
empty() && Name[0] ==
'\1')
void setVisibility(VisibilityTypes V)
LinkageTypes getLinkage() const
Like Private, but linker removes.
Special purpose, only applies to global arrays.
VisibilityTypes getVisibility() const
virtual void copyAttributesFrom(const GlobalValue *Src)
The main container class for the LLVM Intermediate Representation.
unsigned getAlignment() const
Same, but only replaced by something equivalent.
static bool isExternalLinkage(LinkageTypes Linkage)
Available for inspection, not emission.
bool use_empty_except_constants()
Determine if the usage of this global value is empty except for transitively dead constants...
bool hasAppendingLinkage() const
StringRef substr(size_t Start, size_t N=npos) const
Like Internal, but omit from symbol table.
Externally visible function.
bool hasAvailableExternallyLinkage() const
static bool isCommonLinkage(LinkageTypes Linkage)
void setSection(StringRef S)
static bool isLocalLinkage(LinkageTypes Linkage)
static bool isLinkOnceLinkage(LinkageTypes Linkage)
bool hasCommonLinkage() const
bool hasDefaultVisibility() const
bool hasLinkerPrivateWeakLinkage() const
bool hasInternalLinkage() const
void setName(const Twine &Name)
bool hasPrivateLinkage() const
static bool isPrivateLinkage(LinkageTypes Linkage)
VisibilityTypes
An enumeration for the kinds of visibility of global values.
Function to be imported from DLL.
bool isMaterializable() const
static bool isAppendingLinkage(LinkageTypes Linkage)
bool isDiscardableIfUnused() const
bool isWeakForLinker() const
static bool isWeakForLinker(LinkageTypes Linkage)
ExternalWeak linkage description.
Same, but only replaced by something equivalent.
static bool isInternalLinkage(LinkageTypes Linkage)
static bool mayBeOverridden(LinkageTypes Linkage)
static bool classof(const Value *V)
LLVM Constant Representation.
bool hasHiddenVisibility() const
bool hasDLLExportLinkage() const
bool isDematerializable() const
unsigned getValueID() const
bool hasLinkerPrivateLinkage() const
static bool isDiscardableIfUnused(LinkageTypes Linkage)
const Module * getParent() const
Function to be accessible from DLL.
const std::string & getSection() const
bool hasWeakLinkage() const
static LinkageTypes getWeakLinkage(bool ODR)
bool hasExternalWeakLinkage() const
bool hasExternalLinkage() const
virtual void removeFromParent()=0
static bool isWeakLinkage(LinkageTypes Linkage)
void setAlignment(unsigned Align)
Keep one copy of function when linking (inline)
void setUnnamedAddr(bool Val)
static bool isAvailableExternallyLinkage(LinkageTypes Linkage)
void setLinkage(LinkageTypes LT)
static bool isExternalWeakLinkage(LinkageTypes Linkage)
#define LLVM_DELETED_FUNCTION
static bool isLinkerPrivateWeakLinkage(LinkageTypes Linkage)
LinkageTypes
An enumeration for the kinds of linkage for global values.
static cl::opt< AlignMode > Align(cl::desc("Load/store alignment support"), cl::Hidden, cl::init(DefaultAlign), cl::values(clEnumValN(DefaultAlign,"arm-default-align","Generate unaligned accesses only on hardware/OS ""combinations that are known to support them"), clEnumValN(StrictAlign,"arm-strict-align","Disallow all unaligned memory accesses"), clEnumValN(NoStrictAlign,"arm-no-strict-align","Allow unaligned memory accesses"), clEnumValEnd))
Like LinkerPrivate, but weak.
static bool isDLLExportLinkage(LinkageTypes Linkage)
bool hasLinkOnceLinkage() const
virtual void destroyConstant()
Override from Constant class.
static StringRef getRealLinkageName(StringRef Name)
PointerType * getType() const
getType - Global values are always pointers.
bool isDeclaration() const
bool hasProtectedVisibility() const
static bool isDLLImportLinkage(LinkageTypes Linkage)
Keep one copy of named function when linking (weak)
static bool isLinkerPrivateLinkage(LinkageTypes Linkage)
Rename collisions when linking (static functions).
bool hasLocalLinkage() const
void removeDeadConstantUsers() const
LLVM Value Representation.
bool hasUnnamedAddr() const
static LinkageTypes getLinkOnceLinkage(bool ODR)
GlobalValue(Type *ty, ValueTy vty, Use *Ops, unsigned NumOps, LinkageTypes linkage, const Twine &Name)
bool mayBeOverridden() const
virtual void eraseFromParent()=0
bool hasDLLImportLinkage() const
bool Materialize(std::string *ErrInfo=0)
bool empty() const
empty - Check if the string is empty.