19#ifndef BACKENDS_TOFINO_BF_P4C_BACKEND_H_
20#define BACKENDS_TOFINO_BF_P4C_BACKEND_H_
22#include "backends/tofino/bf-p4c/bf-p4c-options.h"
23#include "backends/tofino/bf-p4c/common/bridged_packing.h"
24#include "backends/tofino/bf-p4c/logging/phv_logging.h"
25#include "backends/tofino/bf-p4c/mau/finalize_mau_pred_deps_power.h"
26#include "backends/tofino/bf-p4c/mau/jbay_next_table.h"
27#include "backends/tofino/bf-p4c/mau/mau_alloc.h"
28#include "backends/tofino/bf-p4c/mau/table_dependency_graph.h"
29#include "backends/tofino/bf-p4c/mau/table_mutex.h"
30#include "backends/tofino/bf-p4c/mau/table_summary.h"
31#include "backends/tofino/bf-p4c/parde/clot/clot_info.h"
32#include "backends/tofino/bf-p4c/parde/decaf.h"
33#include "backends/tofino/bf-p4c/parde/parser_header_sequences.h"
34#include "backends/tofino/bf-p4c/phv/mau_backtracker.h"
35#include "backends/tofino/bf-p4c/phv/phv_fields.h"
36#include "backends/tofino/bf-p4c/phv/phv_parde_mau_use.h"
37#include "backends/tofino/bf-p4c/phv/utils/live_range_report.h"
45class Backend :
public PassManager {
56 State::state_t compilation_state = State::INITIAL;
80 bool longBranchDisabled;
83 std::set<cstring> zeroInitFields;
85 std::set<PHV::FieldRange> mauInitFields;
90 PhvInfo::resetDarkSpillARA();
91 return PassManager::init_apply(root);
97 explicit Backend(
const BFN_Options &options,
int pipe_id);
101 const PhvInfo &get_phv()
const {
return phv; }
102 const ClotInfo &get_clot()
const {
return clot; }
103 const FieldDefUse &get_defuse()
const {
return defuse; }
105 const NextTable *get_nxt_tbl()
const {
return &nextTblProp; }
106 const TableSummary &get_tbl_summary()
const {
return table_summary; }
107 const LiveRangeReport *get_live_range_report()
const {
return liveRangeReport; }
111 return flexibleLogging->get_flexible_logging();
115 BUG_CHECK(phvLoggingDefUseInfo,
"DefUse info for PHV logging was not initialized");
116 return phvLoggingDefUseInfo;
119 return table_summary.getTableAlloc();
Definition bf-p4c-options.h:27
static BFNContext & get()
Definition bf-p4c-options.cpp:785
void setBackendOptions(BFN_Options *options)
Record options created in the Backend.
Definition bf-p4c-options.cpp:791
void clearBackendOptions()
Clear the backend options.
Definition bf-p4c-options.cpp:797
Definition clot_info.h:41
Definition next_table.h:45
Definition live_range_report.h:29
Definition bridged_packing.h:751
Definition mau_backtracker.h:29
Definition finalize_mau_pred_deps_power.h:47
Definition next_table.h:26
Definition lib/json.h:177
Definition ordered_map.h:32
Definition phv_fields.h:1095
Definition phv_logging.h:157
Definition phv_parde_mau_use.h:154
Definition mau_alloc.h:34
Definition table_summary.h:158
Definition mau/table_mutex.h:110
Top level PassManager.
Definition decaf.h:749
Definition field_defuse.h:77
The namespace encapsulating Barefoot/Intel-specific stuff.
Definition bf-asm/alloc.h:10
Definition phv_logging.h:52
Definition table_dependency_graph.h:52