|
| TablePlacement (const BFN_Options &, DependencyGraph &, const TablesMutuallyExclusive &, PhvInfo &, LayoutChoices &, const SharedIndirectAttachedAnalysis &, SplitAttachedInfo &, TableSummary &, MauBacktracker &) |
|
const Placed * | add_starter_pistols (const Placed *done, const Placed **best, const StageUseEstimate ¤t) |
|
bool | backtrack (trigger &) override |
|
bool | can_split (const IR::MAU::Table *, const IR::MAU::AttachedMemory *) |
| Check if an indirect attached table can be split acorss stages.
|
|
bool | disable_split_layout (const IR::MAU::Table *tbl) |
|
void | end_apply () override |
|
template<class... Args> |
void | error (Args... args) |
|
int | errorCount () const |
|
void | filter_layout_options (Placed *pl) |
|
void | find_dependency_stages (const IR::MAU::Table *tbl, std::map< int, ordered_map< const Placed *, DependencyGraph::dependencies_t > > &) const |
|
std::multimap< cstring, constPlaced * >::const_iterator | find_placed (cstring name) const |
|
GatewayMergeChoices | gateway_merge_choices (const IR::MAU::Table *table) |
|
const IR::MAU::Table * | getTblByName (cstring t) |
|
profile_t | init_apply (const IR::Node *root) override |
|
bool | initial_stage_and_entries (TablePlacement::Placed *rv, int &furthest_stage) |
|
bool | pick_layout_option (Placed *next, std::vector< Placed * > allocated_layout) |
|
void | reject_placement (const Placed *of, choice_t reason, const Placed *better) |
|
void | setup_detached_gateway (IR::MAU::Table *tbl, const Placed *placed) |
|
bool | shrink_attached_tbl (Placed *next, bool first_time, bool &done_shrink) |
|
bool | shrink_estimate (Placed *next, int &srams_left, int &tcams_left, int min_entries) |
|
bool | shrink_preferred_lo (Placed *next) |
|
bool | try_alloc_adb (const gress_t &gress, std::vector< Placed * > tables_to_allocate, std::vector< Placed * > tables_placed) |
|
TableSummary::PlacementResult | try_alloc_all (Placed *next, std::vector< Placed * > whole_stage, const char *what, bool no_memory=false) |
|
bool | try_alloc_format (Placed *next, bool gw_linked) |
|
bool | try_alloc_imem (const gress_t &gress, std::vector< Placed * > tables_to_allocate, std::vector< Placed * > tables_placed) |
|
bool | try_alloc_ixbar (Placed *next, std::vector< Placed * > allocated_layout) |
|
bool | try_alloc_mem (Placed *next, std::vector< Placed * > whole_stage) |
|
bool | try_pick_layout (const gress_t &gress, std::vector< Placed * > tables_to_allocate, std::vector< Placed * > tables_placed) |
|
safe_vector< Placed * > | try_place_table (const IR::MAU::Table *t, const Placed *done, const StageUseEstimate ¤t, GatewayMergeChoices &gmc, const TableSummary::PlacedTable *pt=nullptr) |
|
Placed * | try_place_table (Placed *rv, const StageUseEstimate ¤t, const TableSummary::PlacedTable *pt=nullptr) |
|
int | uid (const IR::MAU::Table *t) |
|
int | uid (const IR::MAU::TableSeq *t) |
|
int | uid (cstring t) |
|
| PassManager (const PassManager &)=default |
|
| PassManager (const std::initializer_list< VisitorRef > &init) |
|
| PassManager (PassManager &&)=default |
|
void | addDebugHook (DebugHook h, bool recursive=false) |
|
void | addDebugHooks (std::vector< DebugHook > hooks, bool recursive=false) |
|
void | addPasses (const std::initializer_list< VisitorRef > &init) |
|
const IR::Node * | apply_visitor (const IR::Node *, const char *=0) override |
|
PassManager * | clone () const override |
|
void | early_exit () |
|
void | listPasses (std::ostream &, cstring sep) const |
|
bool | never_backtracks () override |
|
void | removePasses (const std::vector< cstring > &exclude) |
|
void | setStopOnError (bool stop) |
|
virtual bool | check_clone (const Visitor *a) |
|
virtual bool | check_global (cstring) |
|
virtual void | clear_globals () |
|
virtual ControlFlowVisitor * | controlFlowVisitor () |
|
virtual void | end_apply (const IR::Node *root) |
|
virtual void | erase_global (cstring) |
|
template<class T > |
const T * | findContext () const |
|
template<class T > |
const T * | findContext (const Context *&c) const |
|
template<class T > |
const T * | findOrigCtxt () const |
|
template<class T > |
const T * | findOrigCtxt (const Context *&c) const |
|
virtual Visitor & | flow_clone () |
|
virtual void | flow_merge (Visitor &) |
|
virtual bool | flow_merge_closure (Visitor &) |
|
virtual void | flow_merge_global_from (cstring) |
|
virtual void | flow_merge_global_to (cstring) |
|
const Context * | getChildContext () const |
|
int | getChildrenVisited () const |
|
const Context * | getContext () const |
|
int | getContextDepth () const |
|
const IR::Node * | getCurrentNode () const |
|
template<class T > |
const T * | getCurrentNode () const |
|
const IR::Node * | getOriginal () const |
|
template<class T > |
const T * | getOriginal () const |
|
template<class T > |
const T * | getParent () const |
|
virtual bool | has_flow_joins () const |
|
profile_t | init_apply (const IR::Node *root, const Context *parent_context) |
|
bool | isInContext (const IR::Node *n) const |
|
virtual const char * | name () const |
|
template<class T > |
void | parallel_visit (const IR::Vector< T > &v, const char *name, int cidx) |
|
template<class T > |
void | parallel_visit (const IR::Vector< T > &v, const char *name=0) |
|
template<class T > |
void | parallel_visit (IR::Vector< T > &v, const char *name, int cidx) |
|
template<class T > |
void | parallel_visit (IR::Vector< T > &v, const char *name=0) |
|
void | print_context () const |
|
const Visitor & | setCalledBy (const Visitor *visitor) |
|
void | setName (const char *name) |
|
void | visit (const IR::Node &n, const char *name, int cidx) |
|
void | visit (const IR::Node &n, const char *name=0) |
|
void | visit (const IR::Node *&n, const char *name, int cidx) |
|
void | visit (const IR::Node *&n, const char *name=0) |
|
void | visit (const IR::Node *const &n, const char *name, int cidx) |
|
void | visit (const IR::Node *const &n, const char *name=0) |
|
void | visit (IR::Node &n, const char *name, int cidx) |
|
void | visit (IR::Node &n, const char *name=0) |
|
void | visit (IR::Node *&, const char *=0, int=0) |
|
template<class T , typename = std::enable_if_t<Util::has_SourceInfo_v<T> && !std::is_pointer_v<T>>, class... Args> |
void | warn (const int kind, const char *format, const T &node, Args &&...args) |
| The const ref variant of the above.
|
|
template<class T , typename = std::enable_if_t<Util::has_SourceInfo_v<T>>, class... Args> |
void | warn (const int kind, const char *format, const T *node, Args &&...args) |
|
bool | warning_enabled (int warning_kind) const |
|