clang 24.0.0git
cir::CIRABIClassifier Class Referenceabstract

Produces the classification CallConvLowering rewrites a signature from. More...

#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CIR/Dialect/Transforms/CIRABIClassifier.h"

Inheritance diagram for cir::CIRABIClassifier:
[legend]

Public Member Functions

virtual ~CIRABIClassifier ()=default
virtual std::optional< mlir::abi::FunctionClassification > classifyFunction (cir::FuncOp func)=0
 Classify func's declared signature.
virtual std::optional< mlir::abi::FunctionClassification > classifyVariadicCall (cir::CIRCallOpInterface call, cir::FuncOp callee)=0
 Classify a direct call to the variadic function callee that passes arguments through the ellipsis.
virtual std::optional< mlir::abi::FunctionClassification > classifyIndirectCall (cir::CIRCallOpInterface call)=0
 Classify call, whose callee is resolved at run time, from the signature its callee pointer points to.
virtual std::optional< mlir::abi::ArgClassification > classifyVAArg (cir::VAArgOp vaArg)=0
 Classify the type fetched by vaArg as an unnamed argument with a full register budget.

Detailed Description

Produces the classification CallConvLowering rewrites a signature from.

A subclass supplies one target's rules, or one of the two test drivers that stand in for a target. The pass holds a single instance for the whole module. Each method returns std::nullopt after emitting an error on the operation it was given, including for an operation the subclass does not support yet.

Definition at line 64 of file CIRABIClassifier.h.

Constructor & Destructor Documentation

◆ ~CIRABIClassifier()

virtual cir::CIRABIClassifier::~CIRABIClassifier ( )
virtualdefault

Member Function Documentation

◆ classifyFunction()

virtual std::optional< mlir::abi::FunctionClassification > cir::CIRABIClassifier::classifyFunction ( cir::FuncOp func)
pure virtual

Classify func's declared signature.

Implemented in cir::CIRABIClassifierCommon.

◆ classifyIndirectCall()

virtual std::optional< mlir::abi::FunctionClassification > cir::CIRABIClassifier::classifyIndirectCall ( cir::CIRCallOpInterface call)
pure virtual

Classify call, whose callee is resolved at run time, from the signature its callee pointer points to.

Implemented in cir::CIRABIClassifierCommon.

◆ classifyVAArg()

virtual std::optional< mlir::abi::ArgClassification > cir::CIRABIClassifier::classifyVAArg ( cir::VAArgOp vaArg)
pure virtual

Classify the type fetched by vaArg as an unnamed argument with a full register budget.

◆ classifyVariadicCall()

virtual std::optional< mlir::abi::FunctionClassification > cir::CIRABIClassifier::classifyVariadicCall ( cir::CIRCallOpInterface call,
cir::FuncOp callee )
pure virtual

Classify a direct call to the variadic function callee that passes arguments through the ellipsis.

The classification covers every operand of call, and classifies the declared parameters the same way as classifyFunction(callee).

Implemented in cir::CIRABIClassifierCommon.


The documentation for this class was generated from the following file: