From 28b9d4a8ff72f51e4387a810ad760b99bfd9300c Mon Sep 17 00:00:00 2001 From: Jacob DeSousa Date: Tue, 21 Jan 2025 15:45:50 +0000 Subject: [PATCH] Fix style/typing feedback --- .../ttmlir/Dialect/TTKernel/IR/TTKernelOps.td | 47 +++++++++---------- .../Dialect/TTKernel/IR/TTKernelOpsTypes.td | 10 ---- .../TTKernelToEmitC/TTKernelToEmitC.cpp | 3 +- lib/Dialect/TTMetal/IR/TTMetalOps.cpp | 4 +- 4 files changed, 25 insertions(+), 39 deletions(-) diff --git a/include/ttmlir/Dialect/TTKernel/IR/TTKernelOps.td b/include/ttmlir/Dialect/TTKernel/IR/TTKernelOps.td index 52e6b68a2b..b9a25f100c 100644 --- a/include/ttmlir/Dialect/TTKernel/IR/TTKernelOps.td +++ b/include/ttmlir/Dialect/TTKernel/IR/TTKernelOps.td @@ -587,7 +587,7 @@ def TTKernel_NocSemaphoreWaitMinOp : TTKernel_Op<"noc_semaphore_wait_min"> { let summary = "NocSemaphoreWaitMin"; let description = [{ A blocking call that waits until the value of a local L1 memory address on - the Tensix core executing this function becomes equal to a target value. + the Tensix core executing this function becomes equal or greater than a target value. This L1 memory address is used as a semaphore of size 4 Bytes, as a synchronization mechanism. Also, see *noc_semaphore_set*. }]; @@ -613,7 +613,11 @@ def TTKernel_NocSemaphoreSetMulticastOp : TTKernel_Op<"noc_semaphore_set_multica *noc_semaphore_set_multicast_loopback_src* can be used. }]; - let arguments = (ins TTKernel_L1Addr:$src_local_l1_addr, TTKernel_NocAddr:$dst_noc_addr_multicast, I32:$num_dests, BoolAttr:$linked, BoolAttr:$multicast_path_reserve); + let arguments = (ins TTKernel_L1Addr:$src_local_l1_addr, + TTKernel_NocAddr:$dst_noc_addr_multicast, + I32:$num_dests, + BoolAttr:$linked, + BoolAttr:$multicast_path_reserve); } def TTKernel_NocSemaphoreSetMulticastLoopbackOp : TTKernel_Op<"noc_semaphore_set_multicast_loopback_src"> { @@ -634,7 +638,11 @@ def TTKernel_NocSemaphoreSetMulticastLoopbackOp : TTKernel_Op<"noc_semaphore_set regular non multicast operations such as *noc_async_write* in this case. }]; - let arguments = (ins TTKernel_L1Addr:$src_local_l1_addr, TTKernel_NocAddr:$dst_noc_addr_multicast, I32:$num_dests, BoolAttr:$linked, BoolAttr:$multicast_path_reserve); + let arguments = (ins TTKernel_L1Addr:$src_local_l1_addr, + TTKernel_NocAddr:$dst_noc_addr_multicast, + I32:$num_dests, + BoolAttr:$linked, + BoolAttr:$multicast_path_reserve); } //===----------------------------------------------------------------------===// @@ -649,7 +657,7 @@ def TTKernel_GetArgValOp : TTKernel_Op<"get_arg_val"> { let arguments = (ins I32:$arg_index); - let results = (outs I32:$arg_val); + let results = (outs AnyTypeOf<[TTKernel_Semaphore, I32]>:$arg_val); } //===----------------------------------------------------------------------===// @@ -662,11 +670,20 @@ def TTKernel_CastToL1PtrOp : TTKernel_Op<"reinterpret_cast:$addr); let results = (outs TTKernel_L1AddrPtr:$l1_ptr); } +def TTKernel_StoreToL1Op : TTKernel_Op<"store_to_l1"> { + let summary = "StoreToL1"; + let description = [{ + Store value to L1. + }]; + + let arguments = (ins I32:$value, TTKernel_L1AddrPtr:$l1_ptr, I32:$offset); +} + //===----------------------------------------------------------------------===// // TTKernel Multicast NoC operations //===----------------------------------------------------------------------===// @@ -790,24 +807,4 @@ def TTKernel_GetWritePtrOp : TTKernel_Op<"get_write_ptr"> { let results = (outs I32:$writePtr); } -def TTKernel_CastToL1PtrOp : TTKernel_Op<"reinterpret_cast"> { - let summary = "CastToL1Ptr"; - let description = [{ - Cast specified addr to L1 pointer. - }]; - - let arguments = (ins AnyTypeOf<[I32, TTKernel_L1Addr]>:$addr); - - let results = (outs TTKernel_L1AddrPtr:$l1_ptr); -} - -def TTKernel_StoreToL1Op : TTKernel_Op<"store_to_l1"> { - let summary = "StoreToL1"; - let description = [{ - Store value to L1. - }]; - - let arguments = (ins I32:$value, TTKernel_L1AddrPtr:$l1_ptr, I32:$offset); -} - #endif diff --git a/include/ttmlir/Dialect/TTKernel/IR/TTKernelOpsTypes.td b/include/ttmlir/Dialect/TTKernel/IR/TTKernelOpsTypes.td index a4d6279a13..f1b8dc88c2 100644 --- a/include/ttmlir/Dialect/TTKernel/IR/TTKernelOpsTypes.td +++ b/include/ttmlir/Dialect/TTKernel/IR/TTKernelOpsTypes.td @@ -117,16 +117,6 @@ def TTKernel_NocAddr : TTKernel_Type<"NocAddr", "noc_addr"> { let description = "Noc address type in TTKernel dialect"; } -def TTKernel_L1Addr : TTKernel_Type<"L1Addr", "l1_addr"> { - let summary = "TTKernel l1 address"; - let description = "L1 address type in TTKernel dialect"; -} - -def TTKernel_L1AddrPtr : TTKernel_Type<"L1AddrPtr", "l1_addr_ptr"> { - let summary = "TTKernel l1 address pointer"; - let description = "L1 pointer address type in TTKernel dialect"; -} - def TTKernel_ThreadTypeAttr : EnumAttr { let assemblyFormat = "`<` $value `>`"; } diff --git a/lib/Conversion/TTKernelToEmitC/TTKernelToEmitC.cpp b/lib/Conversion/TTKernelToEmitC/TTKernelToEmitC.cpp index 5ec3f94686..fdcd34fcef 100644 --- a/lib/Conversion/TTKernelToEmitC/TTKernelToEmitC.cpp +++ b/lib/Conversion/TTKernelToEmitC/TTKernelToEmitC.cpp @@ -451,8 +451,7 @@ class ConvertTTKernelToEmitCPass TTMetalToEmitCOpaqueRewriter, TTMetalToEmitCOpaqueRewriter, TTMetalToEmitCOpaqueRewriter, - TTMetalToEmitCOpaqueRewriter, - TTMetalToEmitCOpaqueRewriter>( + TTMetalToEmitCOpaqueRewriter>( typeConverter, funcOp.getContext()); patterns.add>( diff --git a/lib/Dialect/TTMetal/IR/TTMetalOps.cpp b/lib/Dialect/TTMetal/IR/TTMetalOps.cpp index 31afaeca07..9b641fadf7 100644 --- a/lib/Dialect/TTMetal/IR/TTMetalOps.cpp +++ b/lib/Dialect/TTMetal/IR/TTMetalOps.cpp @@ -89,8 +89,8 @@ ::mlir::LogicalResult DispatchOp::verify() { // Assert block inputs are CBs for (auto ®ion : getRegions()) { for (auto arg : region.getArguments()) { - if (!(mlir::isa(arg.getType()) || - mlir::isa(arg.getType()))) { + if (!mlir::isa(arg.getType()) && + !mlir::isa(arg.getType())) { return emitOpError("Block inputs must be CBType or SemType"); } }