22 assert(
implMemoryEffectOpInterface &&
"`::llzk::verif::ConditionOpInterface` expected its base interface `::mlir::MemoryEffectOpInterface` to be registered");
25 template<
typename ConcreteOp>
31 static inline ::mlir::TypedValue<::mlir::IntegerType>
getCondition(
const Concept *
impl, ::mlir::Operation *tablegen_opaque_val);
33 template<
typename ConcreteOp>
39 static inline ::mlir::TypedValue<::mlir::IntegerType>
getCondition(
const Concept *
impl, ::mlir::Operation *tablegen_opaque_val);
41 template<
typename ConcreteModel,
typename ConcreteOp>
47template <
typename ConcreteOp>
51class ConditionOpInterface :
public ::mlir::OpInterface<ConditionOpInterface, detail::ConditionOpInterfaceInterfaceTraits> {
53 using ::mlir::OpInterface<ConditionOpInterface, detail::ConditionOpInterfaceInterfaceTraits>::OpInterface;
54 template <
typename ConcreteOp>
62 operator ::mlir::MemoryEffectOpInterface ()
const {
63 if (!*
this)
return nullptr;
64 return ::mlir::MemoryEffectOpInterface(*
this, getImpl()->implMemoryEffectOpInterface);
68 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> & effects);
71 template <
typename ConcreteOp>
72 struct ConditionOpInterfaceTrait :
public ::mlir::OpInterface<ConditionOpInterface, detail::ConditionOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
79class PreconditionOpInterface;
90 assert(
implMemoryEffectOpInterface &&
"`::llzk::verif::PreconditionOpInterface` expected its base interface `::mlir::MemoryEffectOpInterface` to be registered");
92 assert(
implConditionOpInterface &&
"`::llzk::verif::PreconditionOpInterface` expected its base interface `::llzk::verif::ConditionOpInterface` to be registered");
95 template<
typename ConcreteOp>
102 template<
typename ConcreteOp>
109 template<
typename ConcreteModel,
typename ConcreteOp>
115template <
typename ConcreteOp>
119class PreconditionOpInterface :
public ::mlir::OpInterface<PreconditionOpInterface, detail::PreconditionOpInterfaceInterfaceTraits> {
121 using ::mlir::OpInterface<PreconditionOpInterface, detail::PreconditionOpInterfaceInterfaceTraits>::OpInterface;
122 template <
typename ConcreteOp>
128 operator ::mlir::MemoryEffectOpInterface ()
const {
129 if (!*
this)
return nullptr;
130 return ::mlir::MemoryEffectOpInterface(*
this, getImpl()->implMemoryEffectOpInterface);
134 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> & effects);
139 operator ::llzk::verif::ConditionOpInterface ()
const {
140 if (!*
this)
return nullptr;
141 return ::llzk::verif::ConditionOpInterface(*
this, getImpl()->implConditionOpInterface);
148 template <
typename ConcreteOp>
149 struct PreconditionOpInterfaceTrait :
public ::mlir::OpInterface<PreconditionOpInterface, detail::PreconditionOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
156class PostconditionOpInterface;
167 assert(
implMemoryEffectOpInterface &&
"`::llzk::verif::PostconditionOpInterface` expected its base interface `::mlir::MemoryEffectOpInterface` to be registered");
169 assert(
implConditionOpInterface &&
"`::llzk::verif::PostconditionOpInterface` expected its base interface `::llzk::verif::ConditionOpInterface` to be registered");
172 template<
typename ConcreteOp>
179 template<
typename ConcreteOp>
186 template<
typename ConcreteModel,
typename ConcreteOp>
192template <
typename ConcreteOp>
196class PostconditionOpInterface :
public ::mlir::OpInterface<PostconditionOpInterface, detail::PostconditionOpInterfaceInterfaceTraits> {
198 using ::mlir::OpInterface<PostconditionOpInterface, detail::PostconditionOpInterfaceInterfaceTraits>::OpInterface;
199 template <
typename ConcreteOp>
205 operator ::mlir::MemoryEffectOpInterface ()
const {
206 if (!*
this)
return nullptr;
207 return ::mlir::MemoryEffectOpInterface(*
this, getImpl()->implMemoryEffectOpInterface);
211 void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect>> & effects);
216 operator ::llzk::verif::ConditionOpInterface ()
const {
217 if (!*
this)
return nullptr;
218 return ::llzk::verif::ConditionOpInterface(*
this, getImpl()->implConditionOpInterface);
225 template <
typename ConcreteOp>
226 struct PostconditionOpInterfaceTrait :
public ::mlir::OpInterface<PostconditionOpInterface, detail::PostconditionOpInterfaceInterfaceTraits>::Trait<ConcreteOp> {
233template<
typename ConcreteOp>
235 return (llvm::cast<ConcreteOp>(tablegen_opaque_val)).getCondition();
237template<
typename ConcreteOp>
239 return static_cast<const ConcreteOp *
>(
impl)->
getCondition(tablegen_opaque_val);
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Collects all of the operation's effects into effects.
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Gets the SSA Value for the condition operand.
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Gets the SSA Value for the condition operand.
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Collects all of the operation's effects into effects.
::mlir::TypedValue<::mlir::IntegerType > getCondition()
Gets the SSA Value for the condition operand.
void getEffects(::llvm::SmallVectorImpl<::mlir::SideEffects::EffectInstance<::mlir::MemoryEffects::Effect > > &effects)
Collects all of the operation's effects into effects.
ConcreteOp ConcreteEntity
::llzk::verif::ConditionOpInterface Interface
static inline ::mlir::TypedValue<::mlir::IntegerType > getCondition(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
static inline ::mlir::TypedValue<::mlir::IntegerType > getCondition(const Concept *impl, ::mlir::Operation *tablegen_opaque_val)
::llzk::verif::ConditionOpInterface Interface
ConcreteOp ConcreteEntity
::llzk::verif::PostconditionOpInterface Interface
::llzk::verif::PostconditionOpInterface Interface
ConcreteOp ConcreteEntity
::llzk::verif::PreconditionOpInterface Interface
::llzk::verif::PreconditionOpInterface Interface
const ::mlir::MemoryEffectOpInterface::Concept * implMemoryEffectOpInterface
The base classes of this interface.
void initializeInterfaceConcept(::mlir::detail::InterfaceMap &interfaceMap)
::mlir::TypedValue<::mlir::IntegerType >(* getCondition)(const Concept *impl, ::mlir::Operation *)
The methods defined by the interface.
const ::mlir::MemoryEffectOpInterface::Concept * implMemoryEffectOpInterface
The methods defined by the interface.
const ::llzk::verif::ConditionOpInterface::Concept * implConditionOpInterface
void initializeInterfaceConcept(::mlir::detail::InterfaceMap &interfaceMap)
const ::mlir::MemoryEffectOpInterface::Concept * implMemoryEffectOpInterface
The methods defined by the interface.
void initializeInterfaceConcept(::mlir::detail::InterfaceMap &interfaceMap)
const ::llzk::verif::ConditionOpInterface::Concept * implConditionOpInterface