|
MLIR-AIE 1.4.5.dev
|
Public Member Functions | |
| TreeBuilder (Pathfinder &pf, RouteState &st, int flow) | |
| int | dstState (const PathEndPoint &p) const |
| bool | isPending (int state) const |
| void | reach (ArrayRef< int > dsts) |
| bool | joinable (int at, ArrayRef< int > dsts) const |
| void | findJoins () |
| void | meet () |
| void | meet (int owner) |
| void | search (const llvm::DenseSet< int > &drop, ArrayRef< int > targets, const llvm::DenseSet< int > &off={}) |
| bool | trace (int state) |
| llvm::DenseSet< int > | splitOff (int dst) const |
| llvm::DenseSet< int > | trunkOff (int dst) const |
| llvm::Error | placePinned () |
| llvm::Error | grow () |
| void | reroute () |
| void | claim () |
| bool | join (int state, int predId, const Edge &e) |
| void | joinTrees () |
| void | record () |
Public Attributes | |
| Pathfinder & | pf |
| RouteState & | st |
| int | flow |
| const Flow & | part |
| const llvm::BitVector * | avoid |
| const std::vector< TreeHop > * | pinned = nullptr |
| SwitchSettings | switchSettings |
| SmallVector< int, 16 > | tree |
| SmallVector< int, 16 > | treeHops |
| SmallVector< int, 16 > | seeds |
| SmallVector< double, 16 > | seedCosts |
| llvm::MapVector< int, std::pair< int, Edge > > | planned |
| llvm::DenseMap< int, int > | children |
| llvm::DenseMap< int, llvm::BitVector > | branchAvoid |
| SmallVector< PathEndPoint, 4 > | pending |
| bool | toSelf = false |
| std::optional< PathEndPoint > | first |
| llvm::DenseMap< int, SmallVector< int, 4 > > | joins |
| llvm::DenseMap< int, SmallVector< int, 2 > > | joinOwners |
| llvm::DenseSet< int > | stops |
| llvm::DenseSet< int > | unjoinable |
| llvm::MapVector< int, SmallVector< int, 4 > > | sharedDsts |
| llvm::DenseSet< int > | disagree |
| llvm::DenseSet< int > | foreign |
| SmallVector< int, 4 > | met |
| llvm::DenseSet< int > | partOff |
| llvm::DenseSet< int > | trunkDsts |
| SmallVector< int, 4 > | reached |
| SmallVector< std::pair< int, const SmallVector< int, 4 > * >, 2 > | joinedAt |
| SmallVector< std::pair< int, std::pair< int, Edge > >, 8 > | pinnedJoins |
| SmallVector< int, 4 > | pinnedJoinDsts |
Definition at line 1382 of file AIEPathFinder.cpp.
| xilinx::AIE::Pathfinder::TreeBuilder::TreeBuilder | ( | Pathfinder & | pf, |
| RouteState & | st, | ||
| int | flow ) |
| void xilinx::AIE::Pathfinder::TreeBuilder::claim | ( | ) |
Definition at line 2090 of file AIEPathFinder.cpp.
References xilinx::AIE::SwitchboxConnect::addToUnit(), xilinx::AIE::SwitchboxConnect::at(), xilinx::AIE::SwitchboxConnect::bumpDemand(), claim(), xilinx::AIE::PathEndPoint::coords, xilinx::AIE::SwitchboxConnect::dstPorts, first, flow, xilinx::AIE::isDirectional(), xilinx::AIE::SwitchboxConnect::Cell::isPriority, xilinx::AIE::SwitchboxConnect::joinUnits(), met, xilinx::AIE::SwitchboxConnect::Cell::packetFlowCount, xilinx::AIE::SwitchboxConnect::Cell::packetGroupId, xilinx::AIE::SwitchboxConnect::Cell::packetIds, part, pf, planned, xilinx::AIE::PathEndPoint::port, reached, xilinx::AIE::SwitchboxConnect::srcPorts, st, switchSettings, toSelf, and xilinx::AIE::SwitchboxConnect::Cell::usedCapacity.
Referenced by claim().
|
inline |
Definition at line 1387 of file AIEPathFinder.cpp.
References pf.
Referenced by findJoins(), grow(), isPending(), placePinned(), and reach().
| void xilinx::AIE::Pathfinder::TreeBuilder::findJoins | ( | ) |
Definition at line 1526 of file AIEPathFinder.cpp.
References disagree, xilinx::AIE::Flow::dsts, dstState(), flow, foreign, isPending(), joinOwners, joins, part, pf, sharedDsts, xilinx::AIE::Flow::src, st, stops, and unjoinable.
| llvm::Error xilinx::AIE::Pathfinder::TreeBuilder::grow | ( | ) |
Definition at line 1980 of file AIEPathFinder.cpp.
References children, xilinx::AIE::describeTilePort(), dstState(), first, joinable(), joinedAt, joins, meet(), part, pending, pf, reach(), reached, search(), splitOff(), trace(), and trunkOff().
| bool xilinx::AIE::Pathfinder::TreeBuilder::isPending | ( | int | state | ) | const |
Definition at line 1506 of file AIEPathFinder.cpp.
References dstState(), part, pending, and toSelf.
Referenced by findJoins(), joinable(), and meet().
| bool xilinx::AIE::Pathfinder::TreeBuilder::join | ( | int | state, |
| int | predId, | ||
| const Edge & | e ) |
Definition at line 2185 of file AIEPathFinder.cpp.
References xilinx::AIE::SwitchboxConnect::addToUnit(), xilinx::AIE::PathEndPoint::coords, flow, part, pf, xilinx::AIE::PathEndPoint::port, st, and switchSettings.
Referenced by joinTrees().
| bool xilinx::AIE::Pathfinder::TreeBuilder::joinable | ( | int | at, |
| ArrayRef< int > | dsts ) const |
Definition at line 1521 of file AIEPathFinder.cpp.
References isPending(), and unjoinable.
| void xilinx::AIE::Pathfinder::TreeBuilder::joinTrees | ( | ) |
Definition at line 2199 of file AIEPathFinder.cpp.
References flow, join(), joinedAt, joinOwners, pinnedJoinDsts, pinnedJoins, planned, and st.
| void xilinx::AIE::Pathfinder::TreeBuilder::meet | ( | ) |
| void xilinx::AIE::Pathfinder::TreeBuilder::meet | ( | int | owner | ) |
Definition at line 1640 of file AIEPathFinder.cpp.
References avoid, children, xilinx::AIE::SwitchboxConnect::circuitOnlyDst, xilinx::AIE::SwitchboxConnect::dstCoords, flow, foreign, isPending(), joinable(), joinedAt, joins, met, part, partOff, pf, planned, reach(), search(), sharedDsts, xilinx::AIE::Flow::src, xilinx::AIE::SwitchboxConnect::srcCoords, xilinx::AIE::SwitchboxConnect::srcPorts, st, stops, trace(), tree, and treeHops.
| llvm::Error xilinx::AIE::Pathfinder::TreeBuilder::placePinned | ( | ) |
Definition at line 1934 of file AIEPathFinder.cpp.
References xilinx::AIE::describeTilePort(), xilinx::AIE::SwitchboxConnect::dstCoords, dstState(), part, pending, pf, pinned, pinnedJoinDsts, pinnedJoins, planned, reached, xilinx::AIE::SwitchboxConnect::srcCoords, and toSelf.
| void xilinx::AIE::Pathfinder::TreeBuilder::reach | ( | ArrayRef< int > | dsts | ) |
Definition at line 1513 of file AIEPathFinder.cpp.
References dstState(), part, pending, and toSelf.
| void xilinx::AIE::Pathfinder::TreeBuilder::record | ( | ) |
Definition at line 2226 of file AIEPathFinder.cpp.
References xilinx::AIE::SwitchSetting::dsts, flow, part, xilinx::AIE::SwitchSetting::srcs, st, and switchSettings.
| void xilinx::AIE::Pathfinder::TreeBuilder::reroute | ( | ) |
Definition at line 2047 of file AIEPathFinder.cpp.
References avoid, branchAvoid, children, part, pf, planned, reached, search(), splitOff(), st, trace(), tree, treeHops, and trunkOff().
| void xilinx::AIE::Pathfinder::TreeBuilder::search | ( | const llvm::DenseSet< int > & | drop, |
| ArrayRef< int > | targets, | ||
| const llvm::DenseSet< int > & | off = {} ) |
| llvm::DenseSet< int > xilinx::AIE::Pathfinder::TreeBuilder::splitOff | ( | int | dst | ) | const |
| bool xilinx::AIE::Pathfinder::TreeBuilder::trace | ( | int | state | ) |
| llvm::DenseSet< int > xilinx::AIE::Pathfinder::TreeBuilder::trunkOff | ( | int | dst | ) | const |
| const llvm::BitVector* xilinx::AIE::Pathfinder::TreeBuilder::avoid |
Definition at line 1413 of file AIEPathFinder.cpp.
Referenced by meet(), reroute(), search(), and TreeBuilder().
| llvm::DenseMap<int, llvm::BitVector> xilinx::AIE::Pathfinder::TreeBuilder::branchAvoid |
Definition at line 1429 of file AIEPathFinder.cpp.
| llvm::DenseMap<int, int> xilinx::AIE::Pathfinder::TreeBuilder::children |
| llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::disagree |
Definition at line 1445 of file AIEPathFinder.cpp.
Referenced by findJoins().
| std::optional<PathEndPoint> xilinx::AIE::Pathfinder::TreeBuilder::first |
Definition at line 1433 of file AIEPathFinder.cpp.
| int xilinx::AIE::Pathfinder::TreeBuilder::flow |
Definition at line 1411 of file AIEPathFinder.cpp.
Referenced by claim(), findJoins(), join(), joinTrees(), meet(), record(), search(), splitOff(), and TreeBuilder().
| llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::foreign |
Definition at line 1445 of file AIEPathFinder.cpp.
Referenced by findJoins(), and meet().
| SmallVector<std::pair<int, const SmallVector<int, 4> *>, 2> xilinx::AIE::Pathfinder::TreeBuilder::joinedAt |
Definition at line 1455 of file AIEPathFinder.cpp.
Referenced by grow(), joinTrees(), and meet().
| llvm::DenseMap<int, SmallVector<int, 2> > xilinx::AIE::Pathfinder::TreeBuilder::joinOwners |
Definition at line 1440 of file AIEPathFinder.cpp.
Referenced by findJoins(), and joinTrees().
| llvm::DenseMap<int, SmallVector<int, 4> > xilinx::AIE::Pathfinder::TreeBuilder::joins |
Definition at line 1439 of file AIEPathFinder.cpp.
Referenced by findJoins(), grow(), and meet().
| SmallVector<int, 4> xilinx::AIE::Pathfinder::TreeBuilder::met |
Definition at line 1447 of file AIEPathFinder.cpp.
| const Flow& xilinx::AIE::Pathfinder::TreeBuilder::part |
Definition at line 1412 of file AIEPathFinder.cpp.
Referenced by claim(), findJoins(), grow(), isPending(), join(), meet(), placePinned(), reach(), record(), reroute(), search(), and TreeBuilder().
| llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::partOff |
Definition at line 1450 of file AIEPathFinder.cpp.
Referenced by meet(), and splitOff().
| SmallVector<PathEndPoint, 4> xilinx::AIE::Pathfinder::TreeBuilder::pending |
Definition at line 1430 of file AIEPathFinder.cpp.
Referenced by grow(), isPending(), placePinned(), reach(), and TreeBuilder().
| Pathfinder& xilinx::AIE::Pathfinder::TreeBuilder::pf |
Definition at line 1409 of file AIEPathFinder.cpp.
Referenced by claim(), dstState(), findJoins(), grow(), join(), meet(), meet(), placePinned(), reroute(), search(), splitOff(), trace(), and TreeBuilder().
| const std::vector<TreeHop>* xilinx::AIE::Pathfinder::TreeBuilder::pinned = nullptr |
Definition at line 1415 of file AIEPathFinder.cpp.
Referenced by placePinned(), and TreeBuilder().
| SmallVector<int, 4> xilinx::AIE::Pathfinder::TreeBuilder::pinnedJoinDsts |
Definition at line 1457 of file AIEPathFinder.cpp.
Referenced by joinTrees(), and placePinned().
| SmallVector<std::pair<int, std::pair<int, Edge> >, 8> xilinx::AIE::Pathfinder::TreeBuilder::pinnedJoins |
Definition at line 1456 of file AIEPathFinder.cpp.
Referenced by joinTrees(), and placePinned().
| llvm::MapVector<int, std::pair<int, Edge> > xilinx::AIE::Pathfinder::TreeBuilder::planned |
Definition at line 1424 of file AIEPathFinder.cpp.
Referenced by claim(), joinTrees(), meet(), placePinned(), reroute(), search(), splitOff(), trace(), and trunkOff().
| SmallVector<int, 4> xilinx::AIE::Pathfinder::TreeBuilder::reached |
Definition at line 1454 of file AIEPathFinder.cpp.
Referenced by claim(), grow(), placePinned(), reroute(), splitOff(), and trunkOff().
| SmallVector<double, 16> xilinx::AIE::Pathfinder::TreeBuilder::seedCosts |
Definition at line 1420 of file AIEPathFinder.cpp.
Referenced by search().
| SmallVector<int, 16> xilinx::AIE::Pathfinder::TreeBuilder::seeds |
Definition at line 1419 of file AIEPathFinder.cpp.
Referenced by search().
| llvm::MapVector<int, SmallVector<int, 4> > xilinx::AIE::Pathfinder::TreeBuilder::sharedDsts |
Definition at line 1444 of file AIEPathFinder.cpp.
Referenced by findJoins(), and meet().
| RouteState& xilinx::AIE::Pathfinder::TreeBuilder::st |
Definition at line 1410 of file AIEPathFinder.cpp.
Referenced by claim(), findJoins(), join(), joinTrees(), meet(), meet(), record(), reroute(), search(), splitOff(), trace(), and TreeBuilder().
| llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::stops |
Definition at line 1441 of file AIEPathFinder.cpp.
Referenced by findJoins(), meet(), and search().
| SwitchSettings xilinx::AIE::Pathfinder::TreeBuilder::switchSettings |
Definition at line 1416 of file AIEPathFinder.cpp.
| bool xilinx::AIE::Pathfinder::TreeBuilder::toSelf = false |
Definition at line 1431 of file AIEPathFinder.cpp.
Referenced by claim(), isPending(), placePinned(), and reach().
| SmallVector<int, 16> xilinx::AIE::Pathfinder::TreeBuilder::tree |
Definition at line 1418 of file AIEPathFinder.cpp.
Referenced by meet(), reroute(), search(), trace(), TreeBuilder(), and trunkOff().
| SmallVector<int, 16> xilinx::AIE::Pathfinder::TreeBuilder::treeHops |
Definition at line 1418 of file AIEPathFinder.cpp.
Referenced by meet(), reroute(), search(), trace(), and TreeBuilder().
| llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::trunkDsts |
Definition at line 1453 of file AIEPathFinder.cpp.
Referenced by trunkOff().
| llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::unjoinable |
Definition at line 1441 of file AIEPathFinder.cpp.
Referenced by findJoins(), and joinable().