55 DeviceOp device = getOperation();
56 OpBuilder builder = OpBuilder::atBlockTerminator(device.getBody());
58 for (
auto multicast : device.getOps<MulticastOp>()) {
59 Region &r = multicast.getPorts();
61 Port sourcePort = multicast.port();
62 TileOp srcTile = cast<TileOp>(multicast.getTile().getDefiningOp());
63 for (Operation &Op : b.getOperations()) {
64 if (MultiDestOp multiDest = dyn_cast<MultiDestOp>(Op)) {
65 TileOp destTile = cast<TileOp>(multiDest.getTile().getDefiningOp());
66 Port destPort = multiDest.port();
67 FlowOp::create(builder, multiDest.getLoc(), srcTile,
68 sourcePort.bundle, sourcePort.channel, destTile,
69 destPort.bundle, destPort.channel);
74 ConversionTarget target(getContext());
75 RewritePatternSet patterns(&getContext());
79 if (failed(applyPartialConversion(device, target, std::move(patterns))))