Go to the documentation of this file.
17 #ifndef LLVM_IR_GLOBALIFUNC_H
18 #define LLVM_IR_GLOBALIFUNC_H
32 template <
typename ValueSubClass>
class SymbolTableListTraits;
51 void *
operator new(
size_t S) {
return User::operator
new(
S, 1); }
52 void operator delete(
void *Ptr) { User::operator
delete(Ptr); }
71 return static_cast<Constant *
>(Op<0>().get());
94 return V->
getValueID() == Value::GlobalIFuncVal;
106 #endif // LLVM_IR_GLOBALIFUNC_H
This is an optimization pass for GlobalISel generic memory operations.
static bool isLocalLinkage(LinkageTypes Linkage)
static FunctionType * get(Type *Result, ArrayRef< Type * > Params, bool isVarArg)
This static method is the primary way of constructing a FunctionType.
Function * getResolverFunction()
The instances of the Type class are immutable: once they are created, they are never changed.
#define DEFINE_TRANSPARENT_OPERAND_ACCESSORS(CLASS, VALUECLASS)
Macro for generating out-of-class operand accessor definitions.
LinkageTypes
An enumeration for the kinds of linkage for global values.
Interface for looking up the initializer for a variable name, used by Init::resolveReferences.
Compile-time customization of User operands.
void copyAttributesFrom(const GlobalIFunc *Src)
unsigned getValueID() const
Return an ID for the concrete type of this object.
void removeFromParent()
This method unlinks 'this' from the containing module, but does not delete it.
This is an important base class in LLVM.
void setResolver(Constant *Resolver)
These methods retrieve and set ifunc resolver function.
const Constant * getResolver() const
static bool isExternalLinkage(LinkageTypes Linkage)
static bool isWeakLinkage(LinkageTypes Linkage)
A Module instance is used to store all the information related to an LLVM module.
DECLARE_TRANSPARENT_OPERAND_ACCESSORS(Constant)
Provide fast operand accessors.
add sub stmia L5 ldr r0 bl L_printf $stub Instead of a and a wouldn t it be better to do three moves *Return an aggregate type is even return S
Machine Check Debug Module
static GlobalIFunc * create(Type *Ty, unsigned AddressSpace, LinkageTypes Linkage, const Twine &Name, Constant *Resolver, Module *Parent)
If a parent module is specified, the ifunc is automatically inserted into the end of the specified mo...
GlobalIFunc & operator=(const GlobalIFunc &)=delete
static bool isLinkOnceLinkage(LinkageTypes Linkage)
static bool isValidLinkage(LinkageTypes L)
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
static FunctionType * getResolverFunctionType(Type *IFuncValTy)
PointerType * getPointerTo(unsigned AddrSpace=0) const
Return a pointer to the current type.
void copyAttributesFrom(const GlobalObject *Src)
FixedNumOperandTraits - determine the allocation regime of the Use array when it is a prefix to the U...
const Function * getResolverFunction() const
LLVM Value Representation.
void eraseFromParent()
This method unlinks 'this' from the containing module and deletes it.
static bool classof(const Value *V)
Class to represent function types.