LLVM 23.0.0git
llvm::abi Namespace Reference

Classes

struct  ABICompatInfo
 Flags controlling target-specific ABI compatibility behaviour. More...
struct  ArgEntry
class  ArgInfo
 Helper class to encapsulate information about how a specific type should be passed to or returned from a function. More...
class  ArrayType
class  BPFTargetInfo
class  ComplexType
struct  FieldInfo
class  FloatType
class  FunctionInfo
class  IntegerType
class  MemberPointerType
class  PointerLikeType
class  PointerType
class  RecordType
class  TargetInfo
class  Type
 Represents the ABI-specific view of a type in LLVM. More...
class  TypeBuilder
 TypeBuilder manages the lifecycle of ABI types using bump pointer allocation. More...
class  VectorType
class  VoidType

Enumerations

enum  RecordArgABI { RAA_Default = 0 , RAA_DirectInMemory , RAA_Indirect }
enum class  TypeKind {
  Void , MemberPointer , Complex , Integer ,
  Float , Pointer , Array , Vector ,
  Record
}
enum class  StructPacking { Default , Packed , ExplicitPacking }
enum  RecordFlags : unsigned {
  None = 0 , CanPassInRegisters = 1 << 0 , IsUnion = 1 << 1 , IsTransparent = 1 << 2 ,
  IsCXXRecord = 1 << 3 , IsPolymorphic = 1 << 4 , HasFlexibleArrayMember = 1 << 5 , LLVM_MARK_AS_BITMASK_ENUM =( HasFlexibleArrayMember)
}

Functions

std::unique_ptr< TargetInfocreateBPFTargetInfo (TypeBuilder &TB)

Enumeration Type Documentation

◆ RecordArgABI

Enumerator
RAA_Default 

Pass it using the normal C aggregate rules for the ABI, potentially introducing extra copies and passing some or all of it in registers.

RAA_DirectInMemory 

Pass it on the stack using its defined layout.

The argument must be evaluated directly into the correct stack position in the arguments area, and the call machinery must not move it or introduce extra copies.

RAA_Indirect 

Pass it as a pointer to temporary memory.

Definition at line 24 of file TargetInfo.h.

◆ RecordFlags

Enumerator
None 
CanPassInRegisters 
IsUnion 
IsTransparent 
IsCXXRecord 
IsPolymorphic 
HasFlexibleArrayMember 
LLVM_MARK_AS_BITMASK_ENUM 

Definition at line 252 of file Types.h.

◆ StructPacking

enum class llvm::abi::StructPacking
strong
Enumerator
Default 
Packed 
ExplicitPacking 

Definition at line 250 of file Types.h.

◆ TypeKind

enum class llvm::abi::TypeKind
strong
Enumerator
Void 
MemberPointer 
Complex 
Integer 
Float 
Pointer 
Array 
Vector 
Record 

Definition at line 27 of file Types.h.

Function Documentation

◆ createBPFTargetInfo()

std::unique_ptr< TargetInfo > llvm::abi::createBPFTargetInfo ( TypeBuilder & TB)

Definition at line 84 of file BPF.cpp.