Skip to content

Commit 393d4d7

Browse files
committed
Rename in-tree AIE passes to AMDAIE
1 parent edb7d6f commit 393d4d7

File tree

92 files changed

+444
-224
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+444
-224
lines changed

compiler/plugins/target/AMD-AIE/aie/AIEAssignBufferAddressesBasic.cpp renamed to compiler/plugins/target/AMD-AIE/aie/AMDAIEAssignBufferAddressesBasic.cpp

+9-18
Original file line numberDiff line numberDiff line change
@@ -10,39 +10,30 @@
1010
#include "mlir/IR/Attributes.h"
1111
#include "mlir/Pass/Pass.h"
1212

13-
#define DEBUG_TYPE "aie-assign-buffers-basic"
13+
#define DEBUG_TYPE "amdaie-assign-buffers-basic"
1414

1515
using namespace mlir;
16-
using namespace xilinx;
1716
using namespace xilinx::AIE;
1817

1918
namespace mlir::iree_compiler::AMDAIE {
20-
struct AIEAssignBufferAddressesPassBasic : mlir::OperationPass<DeviceOp> {
19+
struct AMDAIEAssignBufferAddressesPassBasic : mlir::OperationPass<DeviceOp> {
2120
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(
22-
AIEAssignBufferAddressesPassBasic)
21+
AMDAIEAssignBufferAddressesPassBasic)
2322

24-
AIEAssignBufferAddressesPassBasic()
23+
AMDAIEAssignBufferAddressesPassBasic()
2524
: mlir::OperationPass<DeviceOp>(resolveTypeID()) {}
26-
AIEAssignBufferAddressesPassBasic(
27-
const AIEAssignBufferAddressesPassBasic &other)
28-
: mlir::OperationPass<DeviceOp>(other) {}
2925

3026
llvm::StringRef getArgument() const override {
31-
return "aie-assign-buffer-addresses-basic";
27+
return "amdaie-assign-buffer-addresses-basic";
3228
}
3329

3430
llvm::StringRef getName() const override {
35-
return "AIEAssignBufferAddressesBasic";
31+
return "AMDAIEAssignBufferAddressesBasic";
3632
}
3733

3834
std::unique_ptr<mlir::Pass> clonePass() const override {
39-
return std::make_unique<AIEAssignBufferAddressesPassBasic>(
40-
*static_cast<const AIEAssignBufferAddressesPassBasic *>(this));
41-
}
42-
43-
void getDependentDialects(DialectRegistry &registry) const override {
44-
registry.insert<func::FuncDialect>();
45-
registry.insert<AIEDialect>();
35+
return std::make_unique<AMDAIEAssignBufferAddressesPassBasic>(
36+
*static_cast<const AMDAIEAssignBufferAddressesPassBasic *>(this));
4637
}
4738

4839
void runOnOperation() override {
@@ -86,7 +77,7 @@ struct AIEAssignBufferAddressesPassBasic : mlir::OperationPass<DeviceOp> {
8677

8778
std::unique_ptr<OperationPass<DeviceOp>>
8879
createAIEAssignBufferAddressesBasicPass() {
89-
return std::make_unique<AIEAssignBufferAddressesPassBasic>();
80+
return std::make_unique<AMDAIEAssignBufferAddressesPassBasic>();
9081
}
9182

9283
void registerAIEAssignBufferAddressesBasic() {

compiler/plugins/target/AMD-AIE/aie/AIEAssignBufferDescriptorIDs.cpp renamed to compiler/plugins/target/AMD-AIE/aie/AMDAIEAssignBufferDescriptorIDs.cpp

+22-13
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,14 @@
1010
#include "aie/Dialect/AIE/IR/AIEDialect.h"
1111
#include "mlir/Pass/Pass.h"
1212

13-
#define DEBUG_TYPE "aie-assign-bd-ids"
13+
#define DEBUG_TYPE "amdaie-assign-bd-ids"
1414
#define EVEN_BD_ID_START 0
1515
#define ODD_BD_ID_START 24
1616

1717
using namespace mlir;
1818
using namespace xilinx;
1919
using namespace xilinx::AIE;
2020

21-
#define GEN_PASS_DECL_AIEASSIGNBUFFERDESCRIPTORIDS
22-
#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
23-
#undef GEN_PASS_DECL_AIEASSIGNBUFFERDESCRIPTORIDS
24-
25-
#define GEN_PASS_DEF_AIEASSIGNBUFFERDESCRIPTORIDS
26-
#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
27-
#undef GEN_PASS_DEF_AIEASSIGNBUFFERDESCRIPTORIDS
28-
2921
struct BdIdGenerator {
3022
BdIdGenerator(int col, int row, const AIETargetModel &targetModel)
3123
: col(col), row(row), isMemTile(targetModel.isMemTile(col, row)) {}
@@ -55,9 +47,26 @@ struct BdIdGenerator {
5547

5648
namespace mlir::iree_compiler::AMDAIE {
5749

58-
struct AIEAssignBufferDescriptorIDsPass
59-
: ::impl::AIEAssignBufferDescriptorIDsBase<
60-
AIEAssignBufferDescriptorIDsPass> {
50+
struct AMDAIEAssignBufferDescriptorIDsPass : mlir::OperationPass<DeviceOp> {
51+
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(
52+
AMDAIEAssignBufferDescriptorIDsPass)
53+
54+
AMDAIEAssignBufferDescriptorIDsPass()
55+
: mlir::OperationPass<DeviceOp>(resolveTypeID()) {}
56+
57+
llvm::StringRef getArgument() const override {
58+
return "amdaie-assign-bd-ids";
59+
}
60+
61+
llvm::StringRef getName() const override {
62+
return "AMDAIEAssignBufferDescriptorIDsPass";
63+
}
64+
65+
std::unique_ptr<mlir::Pass> clonePass() const override {
66+
return std::make_unique<AMDAIEAssignBufferDescriptorIDsPass>(
67+
*static_cast<const AMDAIEAssignBufferDescriptorIDsPass *>(this));
68+
}
69+
6170
void runOnOperation() override {
6271
DeviceOp targetOp = getOperation();
6372
const AIETargetModel &targetModel = targetOp.getTargetModel();
@@ -134,7 +143,7 @@ struct AIEAssignBufferDescriptorIDsPass
134143

135144
std::unique_ptr<OperationPass<DeviceOp>>
136145
createAIEAssignBufferDescriptorIDsPass() {
137-
return std::make_unique<AIEAssignBufferDescriptorIDsPass>();
146+
return std::make_unique<AMDAIEAssignBufferDescriptorIDsPass>();
138147
}
139148

140149
void registerAIEAssignBufferDescriptorIDs() {

compiler/plugins/target/AMD-AIE/aie/AIEAssignLockIDs.cpp renamed to compiler/plugins/target/AMD-AIE/aie/AMDAIEAssignLockIDs.cpp

+15-14
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,27 @@
1616
#include "llvm/ADT/DenseMap.h"
1717
#include "mlir/Pass/Pass.h"
1818

19-
#define DEBUG_TYPE "aie-assign-lock-ids"
19+
#define DEBUG_TYPE "amdaie-assign-lock-ids"
2020

2121
using namespace mlir;
2222
using namespace xilinx;
2323
using namespace xilinx::AIE;
2424

25-
#define GEN_PASS_DECL_AIEASSIGNLOCKIDS
26-
#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
27-
#undef GEN_PASS_DECL_AIEASSIGNLOCKIDS
25+
namespace mlir::iree_compiler::AMDAIE {
26+
struct AMDAIEAssignLockIDsPass : mlir::OperationPass<DeviceOp> {
27+
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(AMDAIEAssignLockIDsPass)
2828

29-
#define GEN_PASS_DEF_AIEASSIGNLOCKIDS
30-
#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
31-
#undef GEN_PASS_DEF_AIEASSIGNLOCKIDS
29+
AMDAIEAssignLockIDsPass() : mlir::OperationPass<DeviceOp>(resolveTypeID()) {}
3230

33-
namespace mlir::iree_compiler::AMDAIE {
34-
struct AIEAssignLockIDsPass
35-
: ::impl::AIEAssignLockIDsBase<AIEAssignLockIDsPass> {
36-
void getDependentDialects(DialectRegistry &registry) const override {
37-
registry.insert<func::FuncDialect>();
38-
registry.insert<AIEDialect>();
31+
llvm::StringRef getArgument() const override {
32+
return "amdaie-assign-lock-ids";
33+
}
34+
35+
llvm::StringRef getName() const override { return "AMDAIEAssignLockIDsPass"; }
36+
37+
std::unique_ptr<mlir::Pass> clonePass() const override {
38+
return std::make_unique<AMDAIEAssignLockIDsPass>(
39+
*static_cast<const AMDAIEAssignLockIDsPass *>(this));
3940
}
4041

4142
void runOnOperation() override {
@@ -103,7 +104,7 @@ struct AIEAssignLockIDsPass
103104
}
104105
};
105106
std::unique_ptr<OperationPass<DeviceOp>> createAIEAssignLockIDsPass() {
106-
return std::make_unique<AIEAssignLockIDsPass>();
107+
return std::make_unique<AMDAIEAssignLockIDsPass>();
107108
}
108109

109110
void registerAIEAssignLockIDs() {

compiler/plugins/target/AMD-AIE/aie/AIECoreToStandard.cpp renamed to compiler/plugins/target/AMD-AIE/aie/AMDAIECoreToStandard.cpp

+38-11
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,13 @@
2020
#include "mlir/Tools/mlir-translate/MlirTranslateMain.h"
2121
#include "mlir/Transforms/DialectConversion.h"
2222

23+
#define DEBUG_TYPE "amdaie-standard-lowering"
24+
2325
using namespace mlir;
2426
using namespace mlir::vector;
2527
using namespace xilinx;
2628
using namespace xilinx::AIE;
2729

28-
#define GEN_PASS_DECL_AIECORETOSTANDARD
29-
#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
30-
#undef GEN_PASS_DECL_AIECORETOSTANDARD
31-
32-
#define GEN_PASS_DEF_AIECORETOSTANDARD
33-
#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
34-
#undef GEN_PASS_DEF_AIECORETOSTANDARD
35-
3630
struct AIEUseLockToStdLowering : OpConversionPattern<UseLockOp> {
3731
using OpConversionPattern::OpConversionPattern;
3832
LogicalResult matchAndRewrite(
@@ -181,8 +175,41 @@ void outlineOps(DeviceOp device) {
181175
}
182176

183177
namespace mlir::iree_compiler::AMDAIE {
184-
struct AIECoreToStandardPass
185-
: ::impl::AIECoreToStandardBase<AIECoreToStandardPass> {
178+
struct AMDAIECoreToStandardPass : mlir::OperationPass<ModuleOp> {
179+
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(AMDAIECoreToStandardPass)
180+
181+
AMDAIECoreToStandardPass() : mlir::OperationPass<ModuleOp>(resolveTypeID()) {}
182+
AMDAIECoreToStandardPass(const AMDAIECoreToStandardPass &other)
183+
: mlir::OperationPass<mlir::ModuleOp>(other) {}
184+
185+
llvm::StringRef getArgument() const override {
186+
return "amdaie-standard-lowering";
187+
}
188+
189+
llvm::StringRef getName() const override {
190+
return "AMDAIECoreToStandardPass";
191+
}
192+
193+
std::unique_ptr<mlir::Pass> clonePass() const override {
194+
return std::make_unique<AMDAIECoreToStandardPass>(
195+
*static_cast<const AMDAIECoreToStandardPass *>(this));
196+
}
197+
198+
void getDependentDialects(mlir::DialectRegistry &registry) const override {
199+
registry.insert<mlir::func::FuncDialect>();
200+
registry.insert<mlir::memref::MemRefDialect>();
201+
registry.insert<xilinx::AIE::AIEDialect>();
202+
}
203+
204+
mlir::Pass::Option<unsigned> tileCol{
205+
*this, "tilecol",
206+
llvm::cl::desc("X coordinate of tile to generate code for"),
207+
llvm::cl::init(-1)};
208+
mlir::Pass::Option<unsigned> tileRow{
209+
*this, "tilerow",
210+
llvm::cl::desc("Y coordinate of tile to generate code for"),
211+
llvm::cl::init(-1)};
212+
186213
void runOnOperation() override {
187214
ModuleOp m = getOperation();
188215
OpBuilder builder = OpBuilder::atBlockEnd(m.getBody());
@@ -244,7 +271,7 @@ struct AIECoreToStandardPass
244271
};
245272

246273
std::unique_ptr<OperationPass<ModuleOp>> createAIECoreToStandardPass() {
247-
return std::make_unique<AIECoreToStandardPass>();
274+
return std::make_unique<AMDAIECoreToStandardPass>();
248275
}
249276

250277
void registerAIECoreToStandard() {

compiler/plugins/target/AMD-AIE/aie/AIECreatePathFindFlows.cpp renamed to compiler/plugins/target/AMD-AIE/aie/AMDAIECreatePathFindFlows.cpp

+40-36
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,11 @@ using namespace mlir;
2323
using namespace xilinx;
2424
using namespace xilinx::AIE;
2525

26-
#define DEBUG_TYPE "aie-create-pathfinder-flows"
26+
#define DEBUG_TYPE "amdaie-create-pathfinder-flows"
2727
#define OVER_CAPACITY_COEFF 0.02
2828
#define USED_CAPACITY_COEFF 0.02
2929
#define DEMAND_COEFF 1.1
3030

31-
#define GEN_PASS_DECL_AIEROUTEPATHFINDERFLOWS
32-
#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
33-
#undef GEN_PASS_DECL_AIEROUTEPATHFINDERFLOWS
34-
35-
#define GEN_PASS_DEF_AIEROUTEPATHFINDERFLOWS
36-
#include "aie/Dialect/AIE/Transforms/AIEPasses.h.inc"
37-
#undef GEN_PASS_DEF_AIEROUTEPATHFINDERFLOWS
38-
3931
namespace mlir::iree_compiler::AMDAIE {
4032
struct Port {
4133
xilinx::AIE::WireBundle bundle;
@@ -1128,12 +1120,26 @@ struct ConvertFlowsToInterconnect : OpConversionPattern<FlowOp> {
11281120
/// 3. rewrite flows to stream-switches using 'weights' from analysis pass.
11291121
/// 4. check a region is legal
11301122
/// 5. rewrite stream-switches (within a bounding box) back to flows
1131-
struct AIEPathfinderPass
1132-
: ::impl::AIERoutePathfinderFlowsBase<AIEPathfinderPass> {
1123+
struct AMDAIEPathfinderPass : mlir::OperationPass<DeviceOp> {
1124+
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID(AMDAIEPathfinderPass)
1125+
1126+
AMDAIEPathfinderPass() : mlir::OperationPass<DeviceOp>(resolveTypeID()) {}
1127+
1128+
llvm::StringRef getArgument() const override {
1129+
return "amdaie-create-pathfinder-flows";
1130+
}
1131+
1132+
llvm::StringRef getName() const override { return "AMDAIEPathfinderPass"; }
1133+
1134+
std::unique_ptr<mlir::Pass> clonePass() const override {
1135+
return std::make_unique<AMDAIEPathfinderPass>(
1136+
*static_cast<const AMDAIEPathfinderPass *>(this));
1137+
}
1138+
11331139
DynamicTileAnalysis analyzer;
1134-
AIEPathfinderPass() = default;
1135-
AIEPathfinderPass(DynamicTileAnalysis analyzer)
1136-
: analyzer(std::move(analyzer)) {}
1140+
AMDAIEPathfinderPass(DynamicTileAnalysis analyzer)
1141+
: mlir::OperationPass<DeviceOp>(resolveTypeID()),
1142+
analyzer(std::move(analyzer)) {}
11371143

11381144
void runOnOperation() override;
11391145

@@ -1156,9 +1162,9 @@ struct AIEPathfinderPass
11561162
SwitchboxOp getSwitchbox(DeviceOp &d, int col, int row);
11571163
};
11581164

1159-
void AIEPathfinderPass::runOnOperation() {
1165+
void AMDAIEPathfinderPass::runOnOperation() {
11601166
// create analysis pass with routing graph for entire device
1161-
LLVM_DEBUG(llvm::dbgs() << "---Begin AIEPathfinderPass---\n");
1167+
LLVM_DEBUG(llvm::dbgs() << "---Begin AMDAIEPathfinderPass---\n");
11621168

11631169
DeviceOp d = getOperation();
11641170
if (failed(analyzer.runAnalysis(d))) return signalPassFailure();
@@ -1273,10 +1279,9 @@ void AIEPathfinderPass::runOnOperation() {
12731279
}
12741280
}
12751281

1276-
bool AIEPathfinderPass::attemptFixupMemTileRouting(const OpBuilder &builder,
1277-
SwitchboxOp northSwOp,
1278-
SwitchboxOp southSwOp,
1279-
ConnectOp &problemConnect) {
1282+
bool AMDAIEPathfinderPass::attemptFixupMemTileRouting(
1283+
const OpBuilder &builder, SwitchboxOp northSwOp, SwitchboxOp southSwOp,
1284+
ConnectOp &problemConnect) {
12801285
int problemNorthChannel;
12811286
if (problemConnect.getSourceBundle() == WireBundle::North) {
12821287
problemNorthChannel = problemConnect.getSourceChannel();
@@ -1313,12 +1318,12 @@ bool AIEPathfinderPass::attemptFixupMemTileRouting(const OpBuilder &builder,
13131318
return false;
13141319
}
13151320

1316-
bool AIEPathfinderPass::reconnectConnectOps(const OpBuilder &builder,
1317-
SwitchboxOp sw,
1318-
ConnectOp problemConnect,
1319-
bool isIncomingToSW,
1320-
WireBundle problemBundle,
1321-
int problemChan, int emptyChan) {
1321+
bool AMDAIEPathfinderPass::reconnectConnectOps(const OpBuilder &builder,
1322+
SwitchboxOp sw,
1323+
ConnectOp problemConnect,
1324+
bool isIncomingToSW,
1325+
WireBundle problemBundle,
1326+
int problemChan, int emptyChan) {
13221327
bool hasEmptyChannelSlot = true;
13231328
bool foundCandidateForFixup = false;
13241329
ConnectOp candidate;
@@ -1368,21 +1373,20 @@ bool AIEPathfinderPass::reconnectConnectOps(const OpBuilder &builder,
13681373
}
13691374

13701375
// Replace connect op
1371-
ConnectOp AIEPathfinderPass::replaceConnectOpWithNewDest(OpBuilder builder,
1372-
ConnectOp connect,
1373-
WireBundle newBundle,
1374-
int newChannel) {
1376+
ConnectOp AMDAIEPathfinderPass::replaceConnectOpWithNewDest(
1377+
OpBuilder builder, ConnectOp connect, WireBundle newBundle,
1378+
int newChannel) {
13751379
builder.setInsertionPoint(connect);
13761380
auto newOp = builder.create<ConnectOp>(
13771381
builder.getUnknownLoc(), connect.getSourceBundle(),
13781382
connect.getSourceChannel(), newBundle, newChannel);
13791383
connect.erase();
13801384
return newOp;
13811385
}
1382-
ConnectOp AIEPathfinderPass::replaceConnectOpWithNewSource(OpBuilder builder,
1383-
ConnectOp connect,
1384-
WireBundle newBundle,
1385-
int newChannel) {
1386+
1387+
ConnectOp AMDAIEPathfinderPass::replaceConnectOpWithNewSource(
1388+
OpBuilder builder, ConnectOp connect, WireBundle newBundle,
1389+
int newChannel) {
13861390
builder.setInsertionPoint(connect);
13871391
auto newOp = builder.create<ConnectOp>(builder.getUnknownLoc(), newBundle,
13881392
newChannel, connect.getDestBundle(),
@@ -1391,7 +1395,7 @@ ConnectOp AIEPathfinderPass::replaceConnectOpWithNewSource(OpBuilder builder,
13911395
return newOp;
13921396
}
13931397

1394-
SwitchboxOp AIEPathfinderPass::getSwitchbox(DeviceOp &d, int col, int row) {
1398+
SwitchboxOp AMDAIEPathfinderPass::getSwitchbox(DeviceOp &d, int col, int row) {
13951399
SwitchboxOp output = nullptr;
13961400
d.walk([&](SwitchboxOp swBox) {
13971401
if (swBox.colIndex() == col && swBox.rowIndex() == row) {
@@ -1402,7 +1406,7 @@ SwitchboxOp AIEPathfinderPass::getSwitchbox(DeviceOp &d, int col, int row) {
14021406
}
14031407

14041408
std::unique_ptr<OperationPass<DeviceOp>> createAIEPathfinderPass() {
1405-
return std::make_unique<AIEPathfinderPass>();
1409+
return std::make_unique<AMDAIEPathfinderPass>();
14061410
}
14071411

14081412
void registerAIERoutePathfinderFlows() {

0 commit comments

Comments
 (0)