A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://clang.llvm.org/doxygen/CGObjCRuntime_8h_source.html below:

clang: lib/CodeGen/CGObjCRuntime.h Source File

15#ifndef LLVM_CLANG_LIB_CODEGEN_CGOBJCRUNTIME_H 16#define LLVM_CLANG_LIB_CODEGEN_CGOBJCRUNTIME_H 23#include "llvm/ADT/UniqueVector.h" 43 class

ObjCAtThrowStmt;

44 class

ObjCAtSynchronizedStmt;

45 class

ObjCContainerDecl;

46 class

ObjCCategoryImplDecl;

47 class

ObjCImplementationDecl;

48 class

ObjCInterfaceDecl;

49 class

ObjCMessageExpr;

51 class

ObjCProtocolDecl;

54 class

ObjCStringLiteral;

55 class

BlockDeclRefExpr;

89

llvm::Value *BaseValue,

91 unsigned

CVRQualifiers,

101

llvm::FunctionCallee beginCatchFn,

102

llvm::FunctionCallee endCatchFn,

103

llvm::FunctionCallee exceptionRethrowFn);

114

llvm::FunctionCallee syncEnterFn,

115

llvm::FunctionCallee syncExitFn);

121 bool

includeCategoryName =

true

);

172

llvm::Value *Receiver,

186

llvm::Value *Receiver,

190 bool

isClassMessage);

216

std::vector<const ObjCProtocolDecl *>

277

llvm_unreachable(

"autoreleasepool unsupported in this ABI"

);

290 bool

ClearInsertionPoint=

true

) = 0;

294

llvm::Value *src,

Address

dest) = 0;

296

llvm::Value *src,

Address

dest,

297 bool

threadlocal=

false

) = 0;

299

llvm::Value *src,

Address

dest,

300

llvm::Value *ivarOffset) = 0;

302

llvm::Value *src,

Address

dest) = 0;

306

llvm::Value *BaseValue,

308 unsigned

CVRQualifiers) = 0;

315

llvm::Value *Size) = 0;

334

llvm::PointerType *messengerType)

345

llvm::Value *receiver);

Defines the clang::IdentifierInfo, clang::IdentifierTable, and clang::Selector interfaces.

Like RawAddress, an abstract representation of an aligned address, but the pointer contained in this ...

CGBlockInfo - Information to generate a block literal.

CGFunctionInfo - Class to encapsulate the information about a function definition.

Implements runtime-specific code generation functions.

virtual llvm::Constant * GetEHType(QualType T)=0

Get the type constant to catch for the given ObjC pointer type.

virtual void EmitObjCIvarAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src, Address dest, llvm::Value *ivarOffset)=0

virtual llvm::FunctionCallee GetCppAtomicObjectGetFunction()=0

API for atomic copying of qualified aggregates with non-trivial copy assignment (c++) in getter.

virtual void EmitObjCWeakAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src, Address dest)=0

virtual CatchTypeInfo getCatchAllTypeInfo()

virtual llvm::Constant * BuildByrefLayout(CodeGen::CodeGenModule &CGM, QualType T)=0

Returns an i8* which points to the byref layout information.

void EmitInitOfCatchParam(CodeGenFunction &CGF, llvm::Value *exn, const VarDecl *paramDecl)

bool canMessageReceiverBeNull(CodeGenFunction &CGF, const ObjCMethodDecl *method, bool isSuper, const ObjCInterfaceDecl *classReceiver, llvm::Value *receiver)

virtual void EmitGCMemmoveCollectable(CodeGen::CodeGenFunction &CGF, Address DestPtr, Address SrcPtr, llvm::Value *Size)=0

virtual llvm::FunctionCallee GetPropertySetFunction()=0

Return the runtime function for setting properties.

virtual llvm::FunctionCallee GetCppAtomicObjectSetFunction()=0

API for atomic copying of qualified aggregates with non-trivial copy assignment (c++) in setter.

virtual void EmitTryStmt(CodeGen::CodeGenFunction &CGF, const ObjCAtTryStmt &S)=0

virtual CodeGen::RValue GenerateMessageSend(CodeGen::CodeGenFunction &CGF, ReturnValueSlot ReturnSlot, QualType ResultType, Selector Sel, llvm::Value *Receiver, const CallArgList &CallArgs, const ObjCInterfaceDecl *Class=nullptr, const ObjCMethodDecl *Method=nullptr)=0

Generate an Objective-C message send operation.

virtual LValue EmitObjCValueForIvar(CodeGen::CodeGenFunction &CGF, QualType ObjectTy, llvm::Value *BaseValue, const ObjCIvarDecl *Ivar, unsigned CVRQualifiers)=0

virtual llvm::Value * GetSelector(CodeGenFunction &CGF, const ObjCMethodDecl *Method)=0

Get a typed selector.

std::string getSymbolNameForMethod(const ObjCMethodDecl *method, bool includeCategoryName=true)

virtual void RegisterAlias(const ObjCCompatibleAliasDecl *OAD)=0

Register an class alias.

virtual void GenerateCategory(const ObjCCategoryImplDecl *OCD)=0

Generate a category.

static void destroyCalleeDestroyedArguments(CodeGenFunction &CGF, const ObjCMethodDecl *method, const CallArgList &callArgs)

Destroy the callee-destroyed arguments of the given method, if it has any.

CodeGen::RValue GeneratePossiblySpecializedMessageSend(CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType, Selector Sel, llvm::Value *Receiver, const CallArgList &Args, const ObjCInterfaceDecl *OID, const ObjCMethodDecl *Method, bool isClassMessage)

Generate an Objective-C message send operation.

virtual void EmitThrowStmt(CodeGen::CodeGenFunction &CGF, const ObjCAtThrowStmt &S, bool ClearInsertionPoint=true)=0

LValue EmitValueForIvarAtOffset(CodeGen::CodeGenFunction &CGF, const ObjCInterfaceDecl *OID, llvm::Value *BaseValue, const ObjCIvarDecl *Ivar, unsigned CVRQualifiers, llvm::Value *Offset)

virtual llvm::Value * EmitIvarOffset(CodeGen::CodeGenFunction &CGF, const ObjCInterfaceDecl *Interface, const ObjCIvarDecl *Ivar)=0

uint64_t ComputeIvarBaseOffset(CodeGen::CodeGenModule &CGM, const ObjCInterfaceDecl *OID, const ObjCIvarDecl *Ivar)

Compute an offset to the given ivar, suitable for passing to EmitValueForIvarAtOffset.

virtual llvm::Function * GenerateMethod(const ObjCMethodDecl *OMD, const ObjCContainerDecl *CD)=0

Generate a function preamble for a method with the specified types.

virtual llvm::Value * GenerateProtocolRef(CodeGenFunction &CGF, const ObjCProtocolDecl *OPD)=0

Emit the code to return the named protocol as an object, as in a @protocol expression.

virtual llvm::Value * EmitObjCWeakRead(CodeGen::CodeGenFunction &CGF, Address AddrWeakObj)=0

virtual llvm::Function * ModuleInitFunction()=0

Generate the function required to register all Objective-C components in this compilation unit with t...

virtual CodeGen::RValue GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF, ReturnValueSlot ReturnSlot, QualType ResultType, Selector Sel, const ObjCInterfaceDecl *Class, bool isCategoryImpl, llvm::Value *Self, bool IsClassMessage, const CallArgList &CallArgs, const ObjCMethodDecl *Method=nullptr)=0

Generate an Objective-C message send operation to the super class initiated in a method for Class and...

virtual void GenerateClass(const ObjCImplementationDecl *OID)=0

Generate a class structure for this class.

virtual std::string getRCBlockLayoutStr(CodeGen::CodeGenModule &CGM, const CGBlockInfo &blockInfo)

virtual llvm::FunctionCallee EnumerationMutationFunction()=0

EnumerationMutationFunction - Return the function that's called by the compiler when a mutation is de...

virtual llvm::Constant * BuildGCBlockLayout(CodeGen::CodeGenModule &CGM, const CodeGen::CGBlockInfo &blockInfo)=0

static bool isWeakLinkedClass(const ObjCInterfaceDecl *cls)

virtual llvm::FunctionCallee GetGetStructFunction()=0

virtual llvm::Constant * GetOrEmitProtocol(const ObjCProtocolDecl *PD)=0

GetOrEmitProtocol - Get the protocol object for the given declaration, emitting it if necessary.

virtual ConstantAddress GenerateConstantString(const StringLiteral *)=0

Generate a constant string object.

virtual llvm::Value * GetClass(CodeGenFunction &CGF, const ObjCInterfaceDecl *OID)=0

GetClass - Return a reference to the class for the given interface decl.

virtual void GenerateProtocol(const ObjCProtocolDecl *OPD)=0

Generate the named protocol.

virtual llvm::Constant * BuildRCBlockLayout(CodeGen::CodeGenModule &CGM, const CodeGen::CGBlockInfo &blockInfo)=0

virtual llvm::FunctionCallee GetOptimizedPropertySetFunction(bool atomic, bool copy)=0

Return the runtime function for optimized setting properties.

void EmitTryCatchStmt(CodeGenFunction &CGF, const ObjCAtTryStmt &S, llvm::FunctionCallee beginCatchFn, llvm::FunctionCallee endCatchFn, llvm::FunctionCallee exceptionRethrowFn)

Emits a try / catch statement.

CodeGen::CodeGenModule & CGM

CGObjCRuntime(CodeGen::CodeGenModule &CGM)

MessageSendInfo getMessageSendInfo(const ObjCMethodDecl *method, QualType resultType, CallArgList &callArgs)

Compute the pointer-to-function type to which a message send should be casted in order to correctly c...

virtual llvm::Value * GetSelector(CodeGenFunction &CGF, Selector Sel)=0

Get a selector for the specified name and type values.

virtual void GenerateDirectMethodPrologue(CodeGenFunction &CGF, llvm::Function *Fn, const ObjCMethodDecl *OMD, const ObjCContainerDecl *CD)=0

Generates prologue for direct Objective-C Methods.

virtual Address GetAddrOfSelector(CodeGenFunction &CGF, Selector Sel)=0

Get the address of a selector for the specified name and type values.

virtual void EmitObjCStrongCastAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src, Address dest)=0

virtual llvm::Value * EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF)

virtual void EmitObjCGlobalAssign(CodeGen::CodeGenFunction &CGF, llvm::Value *src, Address dest, bool threadlocal=false)=0

void EmitAtSynchronizedStmt(CodeGenFunction &CGF, const ObjCAtSynchronizedStmt &S, llvm::FunctionCallee syncEnterFn, llvm::FunctionCallee syncExitFn)

Emits an @synchronize() statement, using the syncEnterFn and syncExitFn arguments as the functions ca...

virtual llvm::FunctionCallee GetPropertyGetFunction()=0

Return the runtime function for getting properties.

unsigned ComputeBitfieldBitOffset(CodeGen::CodeGenModule &CGM, const ObjCInterfaceDecl *ID, const ObjCIvarDecl *Ivar)

virtual llvm::FunctionCallee GetSetStructFunction()=0

std::vector< const ObjCProtocolDecl * > GetRuntimeProtocolList(ObjCProtocolDecl::protocol_iterator begin, ObjCProtocolDecl::protocol_iterator end)

Walk the list of protocol references from a class, category or protocol to traverse the DAG formed fr...

virtual void EmitSynchronizedStmt(CodeGen::CodeGenFunction &CGF, const ObjCAtSynchronizedStmt &S)=0

CallArgList - Type for representing both the value and type of arguments in a call.

CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code...

This class organizes the cross-function state that is used while generating LLVM code.

A specialization of Address that requires the address to be an LLVM Constant.

LValue - This represents an lvalue references.

RValue - This trivial value class is used to represent the result of an expression that is evaluated.

ReturnValueSlot - Contains the address where the return value of a function can be stored,...

Represents Objective-C's @synchronized statement.

Represents Objective-C's @throw statement.

Represents Objective-C's @try ... @catch ... @finally statement.

ObjCCategoryImplDecl - An object of this class encapsulates a category @implementation declaration.

ObjCCompatibleAliasDecl - Represents alias of a class.

ObjCContainerDecl - Represents a container for method declarations.

ObjCImplementationDecl - Represents a class definition - this is where method definitions are specifi...

Represents an ObjC class declaration.

ObjCIvarDecl - Represents an ObjC instance variable.

ObjCMethodDecl - Represents an instance or class method declaration.

Represents an Objective-C protocol declaration.

ObjCProtocolList::iterator protocol_iterator

A (possibly-)qualified type.

Smart pointer class that efficiently represents Objective-C method names.

StringLiteral - This represents a string literal expression, e.g.

Represents a variable declaration or definition.

CGObjCRuntime * CreateMacObjCRuntime(CodeGenModule &CGM)

CGObjCRuntime * CreateGNUObjCRuntime(CodeGenModule &CGM)

Creates an instance of an Objective-C runtime class.

The JSON file list parser is used to communicate input to InstallAPI.

@ Self

'self' clause, allowed on Compute and Combined Constructs, plus 'update'.

@ Module

Module linkage, which indicates that the entity can be referred to from other translation units withi...

const FunctionProtoType * T

@ Interface

The "__interface" keyword introduces the elaborated-type-specifier.

@ Class

The "class" keyword introduces the elaborated-type-specifier.

Diagnostic wrappers for TextAPI types for error reporting.

llvm::PointerType * MessengerType

MessageSendInfo(const CGFunctionInfo &callInfo, llvm::PointerType *messengerType)

const CGFunctionInfo & CallInfo

The MS C++ ABI needs a pointer to RTTI data plus some flags to describe the type of a catch handler,...


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4