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.