|
MLIR-AIE 1.4.5.dev
|
How much data a stream carries over a run and how much a receiver takes in before it has to wait on another agent, read off BD lengths, repeat counts, lock initial values and runtime transfers. More...
#include "aie/Dialect/AIE/Transforms/AIEStreamDependencyAnalysis.h"
Public Member Functions | |
| StreamVolumeAnalysis (DeviceOp device, llvm::ArrayRef< RoutedStream > streams) | |
| StreamVolumeAnalysis (const StreamVolumeAnalysis &)=delete | |
| StreamVolumeAnalysis & | operator= (const StreamVolumeAnalysis &)=delete |
| std::optional< uint64_t > | sendVolume (const RoutedStream &stream) const |
| Bytes the stream's source sends with the stream's packet id, headers included where the receiver keeps them, or nullopt when that is unbounded or unknown. | |
| std::optional< uint64_t > | receiveCapacity (const StreamEndpoint &endpoint) const |
| Bytes the receiver at endpoint accepts before it waits on another agent, or nullopt when it never does. | |
| bool | canFill (const StreamEndpoint &endpoint, llvm::ArrayRef< RoutedStream > streams) const |
| Whether streams can send the receiver at endpoint more than it takes in before it waits on another agent. | |
| std::optional< bool > | maySendAfter (const RoutedStream &first, const RoutedStream &then) const |
| Whether the source both streams come from can send a packet of then after one of first; nullopt if its program doesn't show or they come from different sources. | |
How much data a stream carries over a run and how much a receiver takes in before it has to wait on another agent, read off BD lengths, repeat counts, lock initial values and runtime transfers.
Definition at line 147 of file AIEStreamDependencyAnalysis.h.
| xilinx::AIE::StreamVolumeAnalysis::StreamVolumeAnalysis | ( | DeviceOp | device, |
| llvm::ArrayRef< RoutedStream > | streams ) |
Referenced by operator=(), and StreamVolumeAnalysis().
|
delete |
References StreamVolumeAnalysis().
| bool StreamVolumeAnalysis::canFill | ( | const StreamEndpoint & | endpoint, |
| llvm::ArrayRef< RoutedStream > | streams ) const |
Whether streams can send the receiver at endpoint more than it takes in before it waits on another agent.
Definition at line 869 of file AIEStreamDependencyAnalysis.cpp.
References receiveCapacity(), and sendVolume().
Referenced by xilinx::AIE::StreamWaitGraph::StreamWaitGraph().
| std::optional< bool > StreamVolumeAnalysis::maySendAfter | ( | const RoutedStream & | first, |
| const RoutedStream & | then ) const |
Whether the source both streams come from can send a packet of then after one of first; nullopt if its program doesn't show or they come from different sources.
Definition at line 700 of file AIEStreamDependencyAnalysis.cpp.
References xilinx::AIE::RoutedStream::carries(), xilinx::AIE::DmaChannelProgram::loops, xilinx::AIE::RoutedStream::packetID, xilinx::AIE::RoutedStream::packetMask, xilinx::AIE::DmaChannelProgram::passes, xilinx::AIE::StreamEndpoint::port, xilinx::AIE::RoutedStream::src, and xilinx::AIE::StreamEndpoint::tile.
|
delete |
References StreamVolumeAnalysis().
| std::optional< uint64_t > StreamVolumeAnalysis::receiveCapacity | ( | const StreamEndpoint & | endpoint | ) | const |
Bytes the receiver at endpoint accepts before it waits on another agent, or nullopt when it never does.
Where the analysis gives up before the receiver waits, the bytes it took in so far.
Definition at line 855 of file AIEStreamDependencyAnalysis.cpp.
References xilinx::AIE::StreamEndpoint::port, and xilinx::AIE::StreamEndpoint::tile.
Referenced by canFill().
| std::optional< uint64_t > StreamVolumeAnalysis::sendVolume | ( | const RoutedStream & | stream | ) | const |
Bytes the stream's source sends with the stream's packet id, headers included where the receiver keeps them, or nullopt when that is unbounded or unknown.
A BD chain that loops sends only what the lock tokens other agents can ever release to it let it.
Definition at line 512 of file AIEStreamDependencyAnalysis.cpp.
References xilinx::AIE::RoutedStream::carries(), xilinx::AIE::RoutedStream::keepsPktHeader, xilinx::AIE::DmaChannelProgram::loops, xilinx::AIE::DmaChannelProgram::op, xilinx::AIE::DmaChannelProgram::passes, xilinx::AIE::StreamEndpoint::port, xilinx::AIE::RoutedStream::src, and xilinx::AIE::StreamEndpoint::tile.
Referenced by canFill().