P4C
The P4 Compiler
Loading...
Searching...
No Matches
DecidePlacement::GroupPlace Struct Reference

Public Member Functions

 GroupPlace (const DecidePlacement &self_, ordered_set< const GroupPlace * > &work, const ordered_set< const GroupPlace * > &par, const IR::MAU::TableSeq *s)
 
ordered_set< constGroupPlace * >::iterator finish (ordered_set< const GroupPlace * > &work) const
 
void finish_if_placed (ordered_set< const GroupPlace * > &, const Placed *) const
 

Static Public Member Functions

static bool in_work (ordered_set< const GroupPlace * > &work, const IR::MAU::TableSeq *s)
 

Public Attributes

ordered_set< const GroupPlace * > ancestors
 
int depth
 
const TablePlacement::TableSeqInfoinfo
 
ordered_set< const GroupPlace * > parents
 
const DecidePlacementself
 
const IR::MAU::TableSeq * seq
 

Friends

std::ostream & operator<< (std::ostream &out, const ordered_set< const DecidePlacement::GroupPlace * > &set)
 

Member Function Documentation

◆ finish()

ordered_set< constGroupPlace * >::iterator DecidePlacement::GroupPlace::finish ( ordered_set< const GroupPlace * > & work) const
inline

finish a table group – remove it from the work queue and append its parents unless the parent or a descendant is already present in the queue.

Returns
an iterator to the newly added groups, if any.