9#ifndef CIRCT_DIALECT_SV_SVATTRIBUTES_H
10#define CIRCT_DIALECT_SV_SVATTRIBUTES_H
12#include "mlir/IR/Attributes.h"
13#include "mlir/IR/BuiltinAttributes.h"
14#include "llvm/ADT/ArrayRef.h"
15#include "llvm/ADT/STLExtras.h"
16#include "llvm/ADT/SmallVector.h"
18#include "circt/Dialect/SV/SVEnums.h.inc"
19#define GET_ATTRDEF_CLASSES
20#include "circt/Dialect/SV/SVAttributes.h.inc"
40 mlir::ArrayRef<SVAttributeAttr> attrs);
52 llvm::function_ref<
void(llvm::SmallVectorImpl<SVAttributeAttr> &)>
59 llvm::ArrayRef<SVAttributeAttr> attrs);
65 llvm::function_ref<
bool(SVAttributeAttr)> removeCallback);
70 llvm::ArrayRef<SVAttributeAttr> attrs);
mlir::ArrayAttr getSVAttributes(mlir::Operation *op)
Return all the SV attributes of an operation, or null if there are none.
unsigned removeSVAttributes(mlir::Operation *op, llvm::function_ref< bool(SVAttributeAttr)> removeCallback)
Remove the SV attributes from an operation for which removeCallback returns true.
bool modifySVAttributes(mlir::Operation *op, llvm::function_ref< void(llvm::SmallVectorImpl< SVAttributeAttr > &)> modifyCallback)
Modify the list of SV attributes of an operation.
bool hasSVAttributes(mlir::Operation *op)
Helper functions to handle SV attributes.
unsigned addSVAttributes(mlir::Operation *op, llvm::ArrayRef< SVAttributeAttr > attrs)
Add a list of SV attributes to an operation.
bool hasSVAttribute(mlir::Operation *op, SVAttributeAttr attr)
Check if an op contains a specific SV attribute.
void setSVAttributes(mlir::Operation *op, mlir::ArrayAttr attrs)
Set the SV attributes of an operation.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.