P4C
The P4 Compiler
Loading...
Searching...
No Matches
critical_path_clusters.h
1
19#ifndef BF_P4C_PHV_ANALYSIS_CRITICAL_PATH_CLUSTERS_H_
20#define BF_P4C_PHV_ANALYSIS_CRITICAL_PATH_CLUSTERS_H_
21
22#include "backends/tofino/bf-p4c/phv/analysis/parser_critical_path.h"
23#include "backends/tofino/bf-p4c/phv/make_clusters.h"
24#include "ir/ir.h"
25#include "lib/cstring.h"
26
39 private:
40 ordered_set<const PHV::Field *> critical_fields_i;
41 const CalcParserCriticalPath &parser_critical_path;
42 const IR::Node *apply_visitor(const IR::Node *, const char *name = 0) override;
43
44 public:
45 explicit CalcCriticalPathClusters(const CalcParserCriticalPath &parser_critical_path)
46 : parser_critical_path(parser_critical_path) {}
47
48 ordered_set<PHV::SuperCluster *> calc_critical_clusters(
49 const std::list<PHV::SuperCluster *> &clusters) const;
50
51 profile_t init_apply(const IR::Node *root) override;
52
53 void print(std::ostream &out, const ordered_set<PHV::SuperCluster *> &clusters) const;
54};
55
56#endif /* BF_P4C_PHV_ANALYSIS_CRITICAL_PATH_CLUSTERS_H_ */
Definition critical_path_clusters.h:38
profile_t init_apply(const IR::Node *root) override
Definition phv/analysis/critical_path_clusters.cpp:21
Definition parser_critical_path.h:131
Definition node.h:94
Definition visitor.h:400
Definition visitor.h:78
Definition ordered_set.h:32