MLIR 23.0.0git
mlir::abi Namespace Reference

Classes

class  ABIRewriteContext
 ABIRewriteContext is the abstract interface that each dialect implements to perform ABI-specific rewrites on its operations. More...
class  ABITypeMapper
 ABITypeMapper translates mlir::Type values into the llvm::abi::Type hierarchy used by the LLVM ABI Lowering Library. More...
struct  ArgClassification
 Describes how a single argument or return value is passed after ABI lowering. More...
struct  FunctionClassification
 Holds the full ABI classification for a function: return type and all arguments. More...

Enumerations

enum class  ArgKind : uint8_t {
  Direct , Extend , Indirect , Ignore ,
  Expand
}
 Classification of how a single argument or return value should be passed at the ABI level. More...

Enumeration Type Documentation

◆ ArgKind

enum class mlir::abi::ArgKind : uint8_t
strong

Classification of how a single argument or return value should be passed at the ABI level.

This is a dialect-agnostic representation. It mirrors the kinds found in the LLVM ABI library and in CIR's ABIArgInfo, but does not depend on either.

Enumerator
Direct 

Pass directly in registers, possibly coerced to a different type.

Extend 

Like Direct, but with a sign/zero extension attribute.

Indirect 

Pass indirectly via a pointer (sret for returns, byval for args).

Ignore 

Ignore (void return, empty struct).

Expand 

Expand an aggregate into its constituent scalar fields.

Definition at line 38 of file ABIRewriteContext.h.