15 #ifndef LLVM_IR_GLOBALALIAS_H
16 #define LLVM_IR_GLOBALALIAS_H
26 template<
typename ValueSubClass,
typename ItemParentClass>
27 class SymbolTableListTraits;
34 void setParent(
Module *parent);
41 void *
operator new(
size_t s) {
42 return User::operator
new(s, 1);
110 return V->
getValueID() == Value::GlobalAliasVal;
A parsed version of the target data layout string in and methods for querying it. ...
A Module instance is used to store all the information related to an LLVM module. ...
static bool isExternalLinkage(LinkageTypes Linkage)
const GlobalObject * getBaseObject(const DataLayout &DL, APInt &Offset) const
const Constant * getAliasee() const
static bool isLocalLinkage(LinkageTypes Linkage)
static bool isLinkOnceLinkage(LinkageTypes Linkage)
static bool classof(const Value *V)
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
Value * stripAndAccumulateInBoundsConstantOffsets(const DataLayout &DL, APInt &Offset)
Accumulate offsets from stripInBoundsConstantOffsets().
#define DEFINE_TRANSPARENT_OPERAND_ACCESSORS(CLASS, VALUECLASS)
Macro for generating out-of-class operand accessor definitions.
PointerType - Class to represent pointers.
static GlobalAlias * create(PointerType *Ty, LinkageTypes Linkage, const Twine &Name, Constant *Aliasee, Module *Parent)
If a parent module is specified, the alias is automatically inserted into the end of the specified mo...
This is an important base class in LLVM.
Value * stripInBoundsOffsets()
Strip off pointer casts and inbounds GEPs.
static bool isValidLinkage(LinkageTypes L)
void removeFromParent() override
removeFromParent - This method unlinks 'this' from the containing module, but does not delete it...
unsigned getValueID() const
Return an ID for the concrete type of this object.
GlobalObject * getBaseObject(const DataLayout &DL, APInt &Offset)
Value * getOperand(unsigned i) const
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Constant)
Provide fast operand accessors.
static bool isWeakLinkage(LinkageTypes Linkage)
Class for arbitrary precision integers.
void eraseFromParent() override
eraseFromParent - This method unlinks 'this' from the containing module and deletes it...
LinkageTypes
An enumeration for the kinds of linkage for global values.
LLVM_ATTRIBUTE_UNUSED_RESULT std::enable_if< !is_simple_type< Y >::value, typename cast_retty< X, const Y >::ret_type >::type dyn_cast(const Y &Val)
ilist_node - Base class that provides next/prev services for nodes that use ilist_nextprev_traits or ...
Compile-time customization of User operands.
const GlobalObject * getBaseObject() const
LLVM Value Representation.
FixedNumOperandTraits - determine the allocation regime of the Use array when it is a prefix to the U...
GlobalObject * getBaseObject()
void setAliasee(Constant *Aliasee)
These methods retrive and set alias target.