P4C
The P4 Compiler
Loading...
Searching...
No Matches
phv_slicing_split.h
1
19#ifndef BF_P4C_PHV_SLICING_PHV_SLICING_SPLIT_H_
20#define BF_P4C_PHV_SLICING_PHV_SLICING_SPLIT_H_
21
22#include <optional>
23#include <utility>
24
25#include "bf-p4c/phv/utils/utils.h"
26#include "lib/bitvec.h"
27#include "lib/ordered_map.h"
28
33namespace PHV {
34namespace Slicing {
35
36// Helper type
37using ListClusterPair = std::pair<SuperCluster::SliceList *, const RotationalCluster *>;
39
42std::optional<std::list<SuperCluster *>> split(const SuperCluster *sc, const SplitSchema &schema);
43
48std::optional<std::list<PHV::SuperCluster *>> split_rotational_cluster(const PHV::SuperCluster *sc,
49 bitvec split_schema,
50 int max_aligment = 0);
51
52} // namespace Slicing
53} // namespace PHV
54
55std::ostream &operator<<(std::ostream &out, const PHV::Slicing::ListClusterPair &pair);
56std::ostream &operator<<(std::ostream &out, const PHV::Slicing::ListClusterPair *pair);
57std::ostream &operator<<(std::ostream &out, const PHV::Slicing::SplitSchema &schema);
58
59#endif /* BF_P4C_PHV_SLICING_PHV_SLICING_SPLIT_H_ */
Definition bitvec.h:120
Definition ordered_map.h:32
Definition phv/utils/utils.h:1049
The namespace encapsulating PHV-related stuff.
Definition gateway.h:32