P4C
The P4 Compiler
Loading...
Searching...
No Matches
collect_hardware_constrained_fields.h
1
19#ifndef BF_P4C_ARCH_COLLECT_HARDWARE_CONSTRAINED_FIELDS_H_
20#define BF_P4C_ARCH_COLLECT_HARDWARE_CONSTRAINED_FIELDS_H_
21
22#include "backends/tofino/bf-p4c/common/ir_utils.h"
23#include "backends/tofino/bf-p4c/common/pragma/all_pragmas.h"
24#include "backends/tofino/bf-p4c/phv/phv_fields.h"
25#include "ir/ir.h"
26#include "lib/cstring.h"
27#include "lib/ordered_map.h"
28#include "lib/ordered_set.h"
29
30namespace BFN {
31
32// This class add hardware constrained fields to pipe->thread[gress].hw_constrained_fields. This is
33// a honeypot for Alias pass, so that Alias pass can replace hardware constrained fields' Member
34// with AliasMember or AliasSlice. And this part of information can be used in CollectPhvInfo and
35// DisableAutoInitMetadata to set Field's properties properly for alias fields for hardware
36// constrained fields.
37
39 public:
40 void postorder(IR::BFN::Pipe *) override;
41};
42
47
48} // namespace BFN
49
50#endif /* BF_P4C_ARCH_COLLECT_HARDWARE_CONSTRAINED_FIELDS_H_ */
Definition collect_hardware_constrained_fields.h:38
Definition collect_hardware_constrained_fields.h:43
Definition visitor.h:372
Definition ir/pass_manager.h:40
The namespace encapsulating Barefoot/Intel-specific stuff.
Definition add_t2na_meta.cpp:21