CGRA-ME
Functions
OpGraph.cpp File Reference
#include <CGRA/OpGraph.h>
#include <CGRA/Exception.h>
#include <CGRA/GraphAlgorithms.h>
#include <CGRA/utility/ConfigGraph.h>
#include <CGRA/MRRGProcedures.h>
#include <CGRA/dotparse.h>
#include <iostream>
#include <sstream>
#include <cmath>
#include <algorithm>
#include <limits>
#include <fstream>

Go to the source code of this file.

Functions

std::ostream & operator<< (std::ostream &os, const OpGraphOpCode &opcode)
 
const std::string & to_string (const OpGraphOpCode &opcode)
 
OpGraphOpCode opcode_from_string (const std::string &str)
 
std::istream & operator>> (std::istream &is, OpGraphOpCode &opcode)
 
std::ostream & operator<< (std::ostream &output, const OpGraphOp &op)
 
std::ostream & operator<< (std::ostream &output, const OpGraphVal &val)
 
OpSchedule computeASAP (const OpGraph &op_graph)
 
OpSchedule computeALAP (const OpGraph &op_graph, unsigned int max_cycles)
 
bool verifyAndPrintReport (const OpGraph &opgraph, std::ostream &os, bool silent_on_no_errors, bool throw_if_errors)
 
bool analyzeOpgraphVerifyResults (std::ostream &os, const std::vector< OpGraph::VerifyMessage > &messages, const bool silent_on_no_errors)
 
static void dfs_visit (int time, int &longest_cycle, std::map< OpGraphOp *, int > &dfs_colour, std::map< OpGraphOp *, int > &dfs_timestamp, OpGraphOp *op)
 
bool operator== (const OpGraph &lhs, const OpGraph &rhs)
 
OpGraphTransformResult filter (const OpGraph &src, const std::set< OpGraph::OpDescriptor > &allowed_ops)
 
std::set< OpGraph::OpDescriptorfindNDownstreamOps (const OpGraph &opgraph, const std::vector< OpGraphOp * > &starting_points, const std::ptrdiff_t n_ops)
 
std::ostream & operator<< (std::ostream &os, const OpGraph::EdgeDescriptor &ed)
 
std::ostream & operator<< (std::ostream &os, const OpGraph::VerifyMessage::Type &vm_type)
 

Function Documentation

◆ analyzeOpgraphVerifyResults()

bool analyzeOpgraphVerifyResults ( std::ostream &  os,
const std::vector< OpGraph::VerifyMessage > &  messages,
const bool  silent_on_no_errors 
)

A helper for the verifyAndPrintReport function

Definition at line 800 of file OpGraph.cpp.

◆ computeALAP()

OpSchedule computeALAP ( const OpGraph op_graph,
unsigned int  max_cycles 
)

Definition at line 629 of file OpGraph.cpp.

◆ computeASAP()

OpSchedule computeASAP ( const OpGraph op_graph)

Definition at line 572 of file OpGraph.cpp.

◆ dfs_visit()

static void dfs_visit ( int  time,
int &  longest_cycle,
std::map< OpGraphOp *, int > &  dfs_colour,
std::map< OpGraphOp *, int > &  dfs_timestamp,
OpGraphOp op 
)
static

Definition at line 834 of file OpGraph.cpp.

◆ filter()

OpGraphTransformResult filter ( const OpGraph src,
const std::set< OpGraph::OpDescriptor > &  allowed_ops 
)

Return a new graph with only the allowed_ops present

Definition at line 1212 of file OpGraph.cpp.

◆ findNDownstreamOps()

std::set<OpGraph::OpDescriptor> findNDownstreamOps ( const OpGraph opgraph,
const std::vector< OpGraphOp * > &  starting_points,
const std::ptrdiff_t  n_ops 
)

Starting from starting_points, does a fanout BFS to find at least the given number of ops, including the starting points. If this function must return an op to find enough ops, then it will return all ops at that distance from the starting points. This way, it is independent of OpGraph's implementation details.

Definition at line 1246 of file OpGraph.cpp.

◆ opcode_from_string()

OpGraphOpCode opcode_from_string ( const std::string &  str)

Definition at line 113 of file OpGraph.cpp.

◆ operator<<() [1/5]

std::ostream& operator<< ( std::ostream &  os,
const OpGraph::EdgeDescriptor ed 
)

Definition at line 1278 of file OpGraph.cpp.

◆ operator<<() [2/5]

std::ostream& operator<< ( std::ostream &  os,
const OpGraph::VerifyMessage::Type vm_type 
)
inline

Definition at line 1282 of file OpGraph.cpp.

◆ operator<<() [3/5]

std::ostream& operator<< ( std::ostream &  os,
const OpGraphOpCode opcode 
)

Definition at line 100 of file OpGraph.cpp.

◆ operator<<() [4/5]

std::ostream& operator<< ( std::ostream &  output,
const OpGraphOp op 
)

Definition at line 559 of file OpGraph.cpp.

◆ operator<<() [5/5]

std::ostream& operator<< ( std::ostream &  output,
const OpGraphVal val 
)

Definition at line 565 of file OpGraph.cpp.

◆ operator==()

bool operator== ( const OpGraph lhs,
const OpGraph rhs 
)

Definition at line 1159 of file OpGraph.cpp.

◆ operator>>()

std::istream& operator>> ( std::istream &  is,
OpGraphOpCode opcode 
)

Definition at line 140 of file OpGraph.cpp.

◆ to_string()

const std::string& to_string ( const OpGraphOpCode opcode)

Definition at line 111 of file OpGraph.cpp.

◆ verifyAndPrintReport()

bool verifyAndPrintReport ( const OpGraph opgraph,
std::ostream &  os,
bool  silent_on_no_errors,
bool  throw_if_errors 
)

A routine for verifying the OpGraph. Prints out a success message, unless told not to. Can throw if errors are found. Returns true if no errors found

Definition at line 790 of file OpGraph.cpp.