MLIR-AIE 1.4.5.dev
xilinx::AIE::Pathfinder::TreeBuilder Struct Reference
Collaboration diagram for xilinx::AIE::Pathfinder::TreeBuilder:

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

Detailed Description

Definition at line 1382 of file AIEPathFinder.cpp.

Constructor & Destructor Documentation

◆ TreeBuilder()

xilinx::AIE::Pathfinder::TreeBuilder::TreeBuilder ( Pathfinder & pf,
RouteState & st,
int flow )

Definition at line 1460 of file AIEPathFinder.cpp.

References avoid, flow, part, pending, pf, pinned, st, tree, and treeHops.

Member Function Documentation

◆ claim()

◆ dstState()

int xilinx::AIE::Pathfinder::TreeBuilder::dstState ( const PathEndPoint & p) const
inline

Definition at line 1387 of file AIEPathFinder.cpp.

References pf.

Referenced by findJoins(), grow(), isPending(), placePinned(), and reach().

◆ findJoins()

void xilinx::AIE::Pathfinder::TreeBuilder::findJoins ( )

◆ grow()

llvm::Error xilinx::AIE::Pathfinder::TreeBuilder::grow ( )

◆ isPending()

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().

◆ join()

bool xilinx::AIE::Pathfinder::TreeBuilder::join ( int state,
int predId,
const Edge & e )

◆ joinable()

bool xilinx::AIE::Pathfinder::TreeBuilder::joinable ( int at,
ArrayRef< int > dsts ) const

Definition at line 1521 of file AIEPathFinder.cpp.

References isPending(), and unjoinable.

Referenced by grow(), and meet().

◆ joinTrees()

void xilinx::AIE::Pathfinder::TreeBuilder::joinTrees ( )

Definition at line 2199 of file AIEPathFinder.cpp.

References flow, join(), joinedAt, joinOwners, pinnedJoinDsts, pinnedJoins, planned, and st.

◆ meet() [1/2]

void xilinx::AIE::Pathfinder::TreeBuilder::meet ( )

Definition at line 1613 of file AIEPathFinder.cpp.

References pf, and st.

Referenced by grow().

◆ meet() [2/2]

◆ placePinned()

llvm::Error xilinx::AIE::Pathfinder::TreeBuilder::placePinned ( )

◆ reach()

void xilinx::AIE::Pathfinder::TreeBuilder::reach ( ArrayRef< int > dsts)

Definition at line 1513 of file AIEPathFinder.cpp.

References dstState(), part, pending, and toSelf.

Referenced by grow(), and meet().

◆ record()

void xilinx::AIE::Pathfinder::TreeBuilder::record ( )

◆ reroute()

void xilinx::AIE::Pathfinder::TreeBuilder::reroute ( )

◆ search()

void xilinx::AIE::Pathfinder::TreeBuilder::search ( const llvm::DenseSet< int > & drop,
ArrayRef< int > targets,
const llvm::DenseSet< int > & off = {} )

Definition at line 1792 of file AIEPathFinder.cpp.

References avoid, branchAvoid, flow, part, pf, planned, seedCosts, seeds, st, stops, tree, and treeHops.

Referenced by grow(), meet(), and reroute().

◆ splitOff()

llvm::DenseSet< int > xilinx::AIE::Pathfinder::TreeBuilder::splitOff ( int dst) const

Definition at line 1873 of file AIEPathFinder.cpp.

References flow, partOff, pf, planned, reached, and st.

Referenced by grow(), and reroute().

◆ trace()

bool xilinx::AIE::Pathfinder::TreeBuilder::trace ( int state)

Definition at line 1847 of file AIEPathFinder.cpp.

References children, pf, planned, st, tree, and treeHops.

Referenced by grow(), meet(), and reroute().

◆ trunkOff()

llvm::DenseSet< int > xilinx::AIE::Pathfinder::TreeBuilder::trunkOff ( int dst) const

Definition at line 1910 of file AIEPathFinder.cpp.

References planned, reached, tree, and trunkDsts.

Referenced by grow(), and reroute().

Member Data Documentation

◆ avoid

const llvm::BitVector* xilinx::AIE::Pathfinder::TreeBuilder::avoid

Definition at line 1413 of file AIEPathFinder.cpp.

Referenced by meet(), reroute(), search(), and TreeBuilder().

◆ branchAvoid

llvm::DenseMap<int, llvm::BitVector> xilinx::AIE::Pathfinder::TreeBuilder::branchAvoid

Definition at line 1429 of file AIEPathFinder.cpp.

Referenced by reroute(), and search().

◆ children

llvm::DenseMap<int, int> xilinx::AIE::Pathfinder::TreeBuilder::children

Definition at line 1425 of file AIEPathFinder.cpp.

Referenced by grow(), meet(), reroute(), and trace().

◆ disagree

llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::disagree

Definition at line 1445 of file AIEPathFinder.cpp.

Referenced by findJoins().

◆ first

std::optional<PathEndPoint> xilinx::AIE::Pathfinder::TreeBuilder::first

Definition at line 1433 of file AIEPathFinder.cpp.

Referenced by claim(), and grow().

◆ flow

int xilinx::AIE::Pathfinder::TreeBuilder::flow

◆ foreign

llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::foreign

Definition at line 1445 of file AIEPathFinder.cpp.

Referenced by findJoins(), and meet().

◆ joinedAt

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().

◆ joinOwners

llvm::DenseMap<int, SmallVector<int, 2> > xilinx::AIE::Pathfinder::TreeBuilder::joinOwners

Definition at line 1440 of file AIEPathFinder.cpp.

Referenced by findJoins(), and joinTrees().

◆ joins

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().

◆ met

SmallVector<int, 4> xilinx::AIE::Pathfinder::TreeBuilder::met

Definition at line 1447 of file AIEPathFinder.cpp.

Referenced by claim(), and meet().

◆ part

const Flow& xilinx::AIE::Pathfinder::TreeBuilder::part

◆ partOff

llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::partOff

Definition at line 1450 of file AIEPathFinder.cpp.

Referenced by meet(), and splitOff().

◆ pending

SmallVector<PathEndPoint, 4> xilinx::AIE::Pathfinder::TreeBuilder::pending

Definition at line 1430 of file AIEPathFinder.cpp.

Referenced by grow(), isPending(), placePinned(), reach(), and TreeBuilder().

◆ pf

Pathfinder& xilinx::AIE::Pathfinder::TreeBuilder::pf

◆ pinned

const std::vector<TreeHop>* xilinx::AIE::Pathfinder::TreeBuilder::pinned = nullptr

Definition at line 1415 of file AIEPathFinder.cpp.

Referenced by placePinned(), and TreeBuilder().

◆ pinnedJoinDsts

SmallVector<int, 4> xilinx::AIE::Pathfinder::TreeBuilder::pinnedJoinDsts

Definition at line 1457 of file AIEPathFinder.cpp.

Referenced by joinTrees(), and placePinned().

◆ pinnedJoins

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().

◆ planned

llvm::MapVector<int, std::pair<int, Edge> > xilinx::AIE::Pathfinder::TreeBuilder::planned

◆ reached

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().

◆ seedCosts

SmallVector<double, 16> xilinx::AIE::Pathfinder::TreeBuilder::seedCosts

Definition at line 1420 of file AIEPathFinder.cpp.

Referenced by search().

◆ seeds

SmallVector<int, 16> xilinx::AIE::Pathfinder::TreeBuilder::seeds

Definition at line 1419 of file AIEPathFinder.cpp.

Referenced by search().

◆ sharedDsts

llvm::MapVector<int, SmallVector<int, 4> > xilinx::AIE::Pathfinder::TreeBuilder::sharedDsts

Definition at line 1444 of file AIEPathFinder.cpp.

Referenced by findJoins(), and meet().

◆ st

RouteState& xilinx::AIE::Pathfinder::TreeBuilder::st

◆ stops

llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::stops

Definition at line 1441 of file AIEPathFinder.cpp.

Referenced by findJoins(), meet(), and search().

◆ switchSettings

SwitchSettings xilinx::AIE::Pathfinder::TreeBuilder::switchSettings

Definition at line 1416 of file AIEPathFinder.cpp.

Referenced by claim(), join(), and record().

◆ toSelf

bool xilinx::AIE::Pathfinder::TreeBuilder::toSelf = false

Definition at line 1431 of file AIEPathFinder.cpp.

Referenced by claim(), isPending(), placePinned(), and reach().

◆ tree

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().

◆ treeHops

SmallVector<int, 16> xilinx::AIE::Pathfinder::TreeBuilder::treeHops

Definition at line 1418 of file AIEPathFinder.cpp.

Referenced by meet(), reroute(), search(), trace(), and TreeBuilder().

◆ trunkDsts

llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::trunkDsts

Definition at line 1453 of file AIEPathFinder.cpp.

Referenced by trunkOff().

◆ unjoinable

llvm::DenseSet<int> xilinx::AIE::Pathfinder::TreeBuilder::unjoinable

Definition at line 1441 of file AIEPathFinder.cpp.

Referenced by findJoins(), and joinable().


The documentation for this struct was generated from the following file: