19#ifndef BACKENDS_TOFINO_BF_P4C_PHV_ANALYSIS_PACK_CONFLICTS_H_
20#define BACKENDS_TOFINO_BF_P4C_PHV_ANALYSIS_PACK_CONFLICTS_H_
22#include "backends/tofino/bf-p4c/lib/assoc.h"
23#include "backends/tofino/bf-p4c/mau/action_analysis.h"
24#include "backends/tofino/bf-p4c/mau/action_mutex.h"
25#include "backends/tofino/bf-p4c/mau/table_dependency_graph.h"
26#include "backends/tofino/bf-p4c/mau/table_mutex.h"
27#include "backends/tofino/bf-p4c/phv/mau_backtracker.h"
28#include "backends/tofino/bf-p4c/phv/phv_fields.h"
29#include "backends/tofino/bf-p4c/phv/pragma/pa_no_pack.h"
48 size_t totalNumSet = 0;
58 int fieldslice_id_counter = 0;
66 bool preorder(
const IR::MAU::Action *act)
override;
69 bool preorder(
const IR::BFN::Digest *digest)
override;
75 void end_apply()
override;
82 void generateNoPackConstraints(
const IR::MAU::Table *t1,
const IR::MAU::Table *t2);
84 void generateNoPackConstraintsForBridgedFields(
const IR::MAU::Table *,
const IR::MAU::Table *);
88 void updateNumPackConstraints();
100 table_summary(table_summary) {
101 addPasses({
new GatherWrites(*
this), &ignore});
110 bool writtenInSameStageDifferentTable(
const IR::MAU::Table *t1,
const IR::MAU::Table *t2)
const;
112 void printNoPackConflicts()
const;
114 unsigned size()
const;
Definition action_mutex.h:29
Definition mau/table_mutex.h:36
Definition mau_backtracker.h:29
Definition ir/pass_manager.h:40
Definition symbitmatrix.h:27
Definition ordered_map.h:32
Definition phv_fields.h:898
Definition pack_conflicts.h:36
Definition phv_fields.h:1095
Definition pa_no_pack.h:28
Definition table_summary.h:158
Definition mau/table_mutex.h:110
Definition table_dependency_graph.h:52