@@ -130,9 +130,18 @@ def AIE_TileOp: AIE_Op<"tile", [
130130 let extraClassDefinition = [{
131131 void $cppClass::getAsmResultNames(
132132 function_ref<void(::mlir::Value, ::llvm::StringRef)> setNameFn) {
133- std::string nameWithoutDialect =
133+ std::string tileName =
134134 getOperationName().str().substr(getOperationName().find('.') + 1);
135- setNameFn(getResult(), nameWithoutDialect + "_" +
135+ // Specialize the SSA value name according to the tile kind
136+ if (isMemTile())
137+ tileName = "mem_" + tileName;
138+ else if (isShimNOCTile())
139+ tileName = "shim_noc_" + tileName;
140+ else if (isShimPLTile())
141+ tileName = "shim_pl_" + tileName;
142+ else if (isShimTile())
143+ tileName = "shim_" + tileName;
144+ setNameFn(getResult(), tileName + "_" +
136145 std::to_string(getCol()) + "_" +
137146 std::to_string(getRow()));
138147 }
@@ -642,13 +651,13 @@ def AIE_PacketFlowOp: AIE_Op<"packet_flow", [SingleBlockImplicitTerminator<"EndO
642651 let description = [{
643652 A logical packet-switched flow between tiles. During place and
644653 route, this is replaced by MasterSets and PacketRules inside
645- switchboxes.
646-
647- The optional attribute keep_pkt_header indicates whether each
648- data packet's packet header gets preserved at the flow's
654+ switchboxes.
655+
656+ The optional attribute keep_pkt_header indicates whether each
657+ data packet's packet header gets preserved at the flow's
649658 destination. The optional attribute priority_route indicates
650- whether the packet flow is routed in priority over other flows,
651- so that they always get allocated with the same master, slave
659+ whether the packet flow is routed in priority over other flows,
660+ so that they always get allocated with the same master, slave
652661 ports, arbiters and master selects (msel).
653662
654663 Example:
@@ -864,9 +873,9 @@ def AIE_DMABDOp: AIE_Op<"dma_bd", []> {
864873 ## DMA constant padding on AIE-ML Devices
865874
866875 AIE-ML devices can apply constant padding at the buffer descriptor level, described with pairs of padding
867- counts before and after a dimension, to all dimensions in the data layout transformations. The padding
868- counts can be supplied to the `dma_bd` through an optional argument, an array of "tuple-like" attributes
869- `bd_pad_layout<const_pad_before, const_pad_after>`, followed by an optional argument `const_val` (default
876+ counts before and after a dimension, to all dimensions in the data layout transformations. The padding
877+ counts can be supplied to the `dma_bd` through an optional argument, an array of "tuple-like" attributes
878+ `bd_pad_layout<const_pad_before, const_pad_after>`, followed by an optional argument `const_val` (default
870879 is 0). All counts are expressed in multiples of the element width.
871880 }];
872881
@@ -1004,7 +1013,7 @@ def AIE_DMAStartOp: AIE_Op<"dma_start", [
10041013 bool isSend() { return getChannelDir() == DMAChannelDir::MM2S; }
10051014 bool isRecv() { return getChannelDir() == DMAChannelDir::S2MM; }
10061015 }];
1007-
1016+
10081017 let hasCanonicalizer = 1;
10091018}
10101019
@@ -1467,8 +1476,8 @@ def AIE_CascadeFlowOp: AIE_Op<"cascade_flow", []> {
14671476 );
14681477 let summary = "A cascade connection between tiles";
14691478 let description = [{
1470- The `aie.cascade_flow` operation represents a cascade connection between two `aie.tile` operations.
1471- During lowering, this is replaced by `aie.configure_cascade` operations for each `aie.tile` based on
1479+ The `aie.cascade_flow` operation represents a cascade connection between two `aie.tile` operations.
1480+ During lowering, this is replaced by `aie.configure_cascade` operations for each `aie.tile` based on
14721481 their relative placement to one another.
14731482
14741483 Example:
@@ -1491,7 +1500,7 @@ def AIE_CascadeFlowOp: AIE_Op<"cascade_flow", []> {
14911500def AIE_ConfigureCascadeOp: AIE_Op<"configure_cascade", [HasParent<"DeviceOp">]> {
14921501 let summary = "An op to configure the input and output directions of the cascade for a single AIE tile";
14931502 let description = [{
1494- An operation to configure the cascade on a single tile in both the input and the output
1503+ An operation to configure the cascade on a single tile in both the input and the output
14951504 directions.
14961505
14971506 Example:
@@ -1666,7 +1675,7 @@ def AIE_ObjectFifoCreateOp: AIE_Op<"objectfifo", [HasParent<"DeviceOp">, Symbol]
16661675 BDDimLayoutArrayArrayAttr:$dimensionsFromStreamPerConsumer,
16671676 DefaultValuedAttr<BoolAttr, "false">:$via_DMA,
16681677 DefaultValuedAttr<BoolAttr, "false">:$plio,
1669- // disable_synchronization==true will skip lock generation for
1678+ // disable_synchronization==true will skip lock generation for
16701679 // objectfifo synchronous accesses
16711680 DefaultValuedAttr<BoolAttr, "false">:$disable_synchronization,
16721681 // via_shared_mem==0 means use producer tile's memory module
@@ -1915,7 +1924,7 @@ def AIE_ObjectFifoSubviewAccessOp : AIE_Op<"objectfifo.subview.access", []> {
19151924 }];
19161925
19171926 let arguments = (
1918- ins AIE_ObjectFifoSubviewType:$subview,
1927+ ins AIE_ObjectFifoSubviewType:$subview,
19191928 ConfinedAttr<AIEI32Attr, [IntMinValue<0>]>:$index
19201929 );
19211930
@@ -2007,11 +2016,11 @@ def AIE_ObjectFifoRegisterProcessOp: AIE_Op<"objectfifo.register_process", []> {
20072016def AIE_BDChainOp: AIE_Op<"bd_chain", [Symbol, SkipAccessibilityCheckTrait]> {
20082017 let summary = "Definition of a Parametrizable Chain of Buffer Descriptors";
20092018 let description = [{
2010- This operation allows you to define buffer descriptor chains with parametrizable inputs.
2019+ This operation allows you to define buffer descriptor chains with parametrizable inputs.
20112020 This is useful for common patterns such as double buffering (ping-pong) that may look identical but use different input/output buffers and locks.
20122021 Currently, only buffers and locks are parametrizable.
20132022
2014- Once defined, an abstract BD chain can be used elsewhere using AIEX ops in the runtime sequence.
2023+ Once defined, an abstract BD chain can be used elsewhere using AIEX ops in the runtime sequence.
20152024 In the future, abstract BD chains will also be usable elsewhere, inside the static configuration.
20162025 At its usage sites, the abstract BD chain will be concretized with the given input arguments.
20172026 }];
0 commit comments