mirror of https://github.com/llvm/circt.git
[NFC] add nicer builders to chirtl mems
This commit is contained in:
parent
f646974aa6
commit
729d521b7f
|
@ -96,6 +96,12 @@ def CombMemOp : FIRRTLOp<"combmem"> {
|
|||
let results = (outs CMemoryType:$result);
|
||||
let assemblyFormat = "custom<ImplicitSSAName>(attr-dict) `:` type($result)";
|
||||
let hasCanonicalizer = true;
|
||||
let builders = [
|
||||
OpBuilder<(ins "FIRRTLType":$elementType,
|
||||
"unsigned":$numElements, "mlir::StringRef":$name,
|
||||
CArg<"ArrayRef<Attribute>","{}">:$annotations)>
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
def SeqMemOp : FIRRTLOp<"seqmem"> {
|
||||
|
@ -109,6 +115,11 @@ def SeqMemOp : FIRRTLOp<"seqmem"> {
|
|||
let results = (outs CMemoryType:$result);
|
||||
let assemblyFormat = "$ruw custom<SeqMemOp>(attr-dict) `:` type($result)";
|
||||
let hasCanonicalizer = true;
|
||||
let builders = [
|
||||
OpBuilder<(ins "FIRRTLType":$elementType,
|
||||
"unsigned":$numElements, "RUWAttr":$ruw, "mlir::StringRef":$name,
|
||||
CArg<"ArrayRef<Attribute>","{}">:$annotations)>
|
||||
];
|
||||
}
|
||||
|
||||
def MemoryPortOp : FIRRTLOp<"memoryport", [InferTypeOpInterface,
|
||||
|
|
|
@ -2863,6 +2863,26 @@ static void printSeqMemOp(OpAsmPrinter &p, Operation *op, DictionaryAttr attr) {
|
|||
printImplicitSSAName(p, op, attr, {"ruw"});
|
||||
}
|
||||
|
||||
void SeqMemOp::build(OpBuilder &builder, OperationState &result,
|
||||
FIRRTLType elementType, unsigned numElements, RUWAttr ruw,
|
||||
StringRef name, ArrayRef<Attribute> annotations) {
|
||||
build(builder, result,
|
||||
CMemoryType::get(builder.getContext(), elementType, numElements), ruw,
|
||||
name, builder.getArrayAttr(annotations));
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// CombMemOp Custom attr-dict Directive
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
void CombMemOp::build(OpBuilder &builder, OperationState &result,
|
||||
FIRRTLType elementType, unsigned numElements,
|
||||
StringRef name, ArrayRef<Attribute> annotations) {
|
||||
build(builder, result,
|
||||
CMemoryType::get(builder.getContext(), elementType, numElements), name,
|
||||
builder.getArrayAttr(annotations));
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// MemOp Custom attr-dict Directive
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
|
Loading…
Reference in New Issue