10
10
#include " iree-amd-aie/Transforms/Utils/AMDAIEUtils.h"
11
11
#include " iree-amd-aie/aie_runtime/Utils/ChannelGenerator.h"
12
12
13
- #define DEBUG_TYPE " iree-amdaie-generate-column- control-overlay"
13
+ #define DEBUG_TYPE " iree-amdaie-generate-control-overlay"
14
14
15
15
namespace mlir ::iree_compiler::AMDAIE {
16
16
@@ -49,9 +49,11 @@ LogicalResult initializeChannelsGenerators(
49
49
if (direction == AMDAIE::DMAChannelDir::MM2S) {
50
50
shimTileToGeneratorMap[tileOp.getResult ()].assignProducerDMAChannel (
51
51
channel);
52
- } else {
52
+ } else if (direction == AMDAIE::DMAChannelDir::S2MM) {
53
53
shimTileToGeneratorMap[tileOp.getResult ()].assignConsumerDMAChannel (
54
54
channel);
55
+ } else {
56
+ assert (false && " unexpected DMA channel direction" );
55
57
}
56
58
}
57
59
}
@@ -60,9 +62,9 @@ LogicalResult initializeChannelsGenerators(
60
62
return success ();
61
63
}
62
64
63
- LogicalResult generateColumnControlOverlay (AMDAIE::WorkgroupOp workgroupOp,
64
- bool routeShimToTileCtrl,
65
- bool routeShimCtrlToTct) {
65
+ LogicalResult generateControlOverlay (AMDAIE::WorkgroupOp workgroupOp,
66
+ bool routeShimToTileCtrl,
67
+ bool routeShimCtrlToTct) {
66
68
// Get the device model.
67
69
std::optional<AMDAIEDevice> device = getConfigAMDAIEDevice (workgroupOp);
68
70
if (!device) {
@@ -78,8 +80,7 @@ LogicalResult generateColumnControlOverlay(AMDAIE::WorkgroupOp workgroupOp,
78
80
uint32_t col = getConstantIndexOrAssert (tileOp.getCol ());
79
81
uint32_t row = getConstantIndexOrAssert (tileOp.getRow ());
80
82
occupiedCols.insert (col);
81
- if (deviceModel.getTileType (col, row) == AMDAIETileType::SHIMNOC)
82
- columnToShimTile[col] = tileOp;
83
+ if (deviceModel.isShimNOCTile (col, row)) columnToShimTile[col] = tileOp;
83
84
});
84
85
85
86
// If the column is occupied, but the shim tile op is not present, then create
@@ -153,13 +154,13 @@ LogicalResult generateColumnControlOverlay(AMDAIE::WorkgroupOp workgroupOp,
153
154
return success ();
154
155
}
155
156
156
- class AMDAIEGenerateColumnControlOverlayPass
157
- : public impl::AMDAIEGenerateColumnControlOverlayBase <
158
- AMDAIEGenerateColumnControlOverlayPass > {
157
+ class AMDAIEGenerateControlOverlayPass
158
+ : public impl::AMDAIEGenerateControlOverlayBase <
159
+ AMDAIEGenerateControlOverlayPass > {
159
160
public:
160
- AMDAIEGenerateColumnControlOverlayPass (
161
- const AMDAIEGenerateColumnControlOverlayOptions &options)
162
- : AMDAIEGenerateColumnControlOverlayBase (options) {}
161
+ AMDAIEGenerateControlOverlayPass (
162
+ const AMDAIEGenerateControlOverlayOptions &options)
163
+ : AMDAIEGenerateControlOverlayBase (options) {}
163
164
164
165
void getDependentDialects (DialectRegistry ®istry) const override {
165
166
registry.insert <AMDAIEDialect>();
@@ -168,11 +169,11 @@ class AMDAIEGenerateColumnControlOverlayPass
168
169
void runOnOperation () override ;
169
170
};
170
171
171
- void AMDAIEGenerateColumnControlOverlayPass ::runOnOperation () {
172
+ void AMDAIEGenerateControlOverlayPass ::runOnOperation () {
172
173
Operation *parentOp = getOperation ();
173
174
WalkResult res = parentOp->walk ([&](AMDAIE::WorkgroupOp workgroupOp) {
174
- if (failed (generateColumnControlOverlay (workgroupOp, routeShimToTileCtrl,
175
- routeShimCtrlToTct))) {
175
+ if (failed (generateControlOverlay (workgroupOp, routeShimToTileCtrl,
176
+ routeShimCtrlToTct))) {
176
177
return WalkResult::interrupt ();
177
178
}
178
179
return WalkResult::advance ();
@@ -183,9 +184,9 @@ void AMDAIEGenerateColumnControlOverlayPass::runOnOperation() {
183
184
184
185
} // namespace
185
186
186
- std::unique_ptr<Pass> createAMDAIEGenerateColumnControlOverlayPass (
187
- AMDAIEGenerateColumnControlOverlayOptions options) {
188
- return std::make_unique<AMDAIEGenerateColumnControlOverlayPass >(options);
187
+ std::unique_ptr<Pass> createAMDAIEGenerateControlOverlayPass (
188
+ AMDAIEGenerateControlOverlayOptions options) {
189
+ return std::make_unique<AMDAIEGenerateControlOverlayPass >(options);
189
190
}
190
191
191
192
} // namespace mlir::iree_compiler::AMDAIE
0 commit comments