P4C
The P4 Compiler
|
#include <phv_slicing_iterator.h>
Public Member Functions | |
ItrContext (const PhvInfo &phv, const MapFieldToParserStates &fs, const CollectParserInfo &pi, const SuperCluster *sc, const PHVContainerSizeLayout &pa, const ActionPackingValidatorInterface &action_packing_validator, const ParserPackingValidatorInterface &parser_packing_validator, const PackConflictChecker pack_conflict, const IsReferencedChecker is_referenced) | |
void | invalidate (const SuperCluster::SliceList *sl) override |
void | iterate (const IterateCb &cb) override |
iterate will pass valid slicing results to cb. Stop when cb returns false. | |
void | set_config (const IteratorConfig &cfg) override |
set iterator configs. | |
Public Member Functions inherited from PHV::Slicing::IteratorInterface |
ItrContext holds the current context for the generated slicing iterator. Note that, the SlicingIterator here is making slicing decision on SliceList intead of SuperClusters. SuperClusters are just products of doing union-find on sliced SliceLists with rotational clusters. see README.md for more details. The input sc
is better to be: (1) split by pa_solitary already. (2) split by deparsed_bottom_bits already.
|
inlineoverridevirtual |
invalidate is the feedback mechanism for allocation algorithm to ask iterator to not produce slicing result contains sl
. This function can be called multiple times, and the implementation decides which one will be respected. For example, a DFS slicing iterator may choose to respect the list of top-most stack frame, i.e., the most recent decision made by DFS.
Implements PHV::Slicing::IteratorInterface.
|
inlineoverridevirtual |
iterate will pass valid slicing results to cb. Stop when cb returns false.
Implements PHV::Slicing::IteratorInterface.
|
inlineoverridevirtual |
set iterator configs.
Implements PHV::Slicing::IteratorInterface.