LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp > Struct Template Reference
Inheritance diagram for llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp >:
[legend]
Collaboration diagram for llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp >:
[legend]

Public Member Functions

::mlir::FunctionType getTypeSignature ()
 Returns the function signature inferred from this call site.
::mlir::FailureOr<::llzk::UnificationMap > unifyTypeSignatureWithNamespace (::mlir::FunctionType other, ::mlir::ArrayRef<::llvm::StringRef > rhsReversePrefix)
 Unifies this call site's inferred signature with other, resolving paths in other relative to rhsReversePrefix.
::mlir::FailureOr<::llzk::UnificationMap > unifyTypeSignature (::mlir::FunctionType other)
 Unifies this call site's inferred signature with other.
static ::llvm::SmallVector<::mlir::ValueRange > toVectorOfValueRange (::mlir::OperandRangeRange input)
 Allocates consecutive storage for operand groups so they can be passed to builders as an ArrayRef<ValueRange>.
::mlir::LogicalResult verifyTemplateParamValueCompatibility (::mlir::Attribute paramFromCallOp, ::llzk::polymorphic::TemplateParamOp targetParam)
 Checks a template parameter value against the declared type of its target parameter.
::mlir::LogicalResult verifyTemplateParamValuesCompatibility (::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp > > targetParamDefs)
 Checks each explicit template parameter against its corresponding declared parameter.
::mlir::LogicalResult verifyTemplateParamsMatchInferred (::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp > > targetParamDefs, const ::llzk::UnificationMap &unifications)
 Checks that explicit template parameters agree with their inferred values.

Detailed Description

template<typename ConcreteOp>
struct llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp >

Definition at line 223 of file CallLikeOpInterfaces.h.inc.

Member Function Documentation

◆ getTypeSignature()

template<typename ConcreteOp>
::mlir::FunctionType llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp >::getTypeSignature ( )
inline

Returns the function signature inferred from this call site.

Definition at line 226 of file CallLikeOpInterfaces.h.inc.

◆ toVectorOfValueRange()

template<typename ConcreteOp>
::llvm::SmallVector<::mlir::ValueRange > llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp >::toVectorOfValueRange ( ::mlir::OperandRangeRange input)
inline

Allocates consecutive storage for operand groups so they can be passed to builders as an ArrayRef<ValueRange>.

Definition at line 251 of file CallLikeOpInterfaces.h.inc.

◆ unifyTypeSignature()

template<typename ConcreteOp>
::mlir::FailureOr<::llzk::UnificationMap > llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp >::unifyTypeSignature ( ::mlir::FunctionType other)
inline

Unifies this call site's inferred signature with other.

Definition at line 245 of file CallLikeOpInterfaces.h.inc.

◆ unifyTypeSignatureWithNamespace()

template<typename ConcreteOp>
::mlir::FailureOr<::llzk::UnificationMap > llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp >::unifyTypeSignatureWithNamespace ( ::mlir::FunctionType other,
::mlir::ArrayRef<::llvm::StringRef > rhsReversePrefix )
inline

Unifies this call site's inferred signature with other, resolving paths in other relative to rhsReversePrefix.

Definition at line 235 of file CallLikeOpInterfaces.h.inc.

◆ verifyTemplateParamsMatchInferred()

template<typename ConcreteOp>
::mlir::LogicalResult llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp >::verifyTemplateParamsMatchInferred ( ::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp > > targetParamDefs,
const ::llzk::UnificationMap & unifications )
inline

Checks that explicit template parameters agree with their inferred values.

         Pre-condition assertions:
           - `!isNullOrEmpty(getTemplateParamsAttr())`
           - `getTemplateParamsAttr().size() == llvm::range_size(targetParamDefs)` 

Definition at line 279 of file CallLikeOpInterfaces.h.inc.

◆ verifyTemplateParamValueCompatibility()

template<typename ConcreteOp>
::mlir::LogicalResult llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp >::verifyTemplateParamValueCompatibility ( ::mlir::Attribute paramFromCallOp,
::llzk::polymorphic::TemplateParamOp targetParam )
inline

Checks a template parameter value against the declared type of its target parameter.

Definition at line 259 of file CallLikeOpInterfaces.h.inc.

◆ verifyTemplateParamValuesCompatibility()

template<typename ConcreteOp>
::mlir::LogicalResult llzk::detail::LLZKCallLikeOpInterfaceTrait< ConcreteOp >::verifyTemplateParamValuesCompatibility ( ::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp > > targetParamDefs)
inline

Checks each explicit template parameter against its corresponding declared parameter.

         Pre-condition assertions:
           - `!isNullOrEmpty(getTemplateParamsAttr())`
           - `getTemplateParamsAttr().size() == llvm::range_size(targetParamDefs)` 

Definition at line 269 of file CallLikeOpInterfaces.h.inc.


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