P4C
The P4 Compiler
Loading...
Searching...
No Matches
normalize_hash_list.h
1
19#ifndef BF_P4C_MIDEND_NORMALIZE_HASH_LIST_H_
20#define BF_P4C_MIDEND_NORMALIZE_HASH_LIST_H_
21
22#include "ir/ir.h"
23#include "ir/pass_manager.h"
24
25namespace P4 {
26
27class TypeChecking;
28class TypeMap;
29class ReferenceMap;
30
31} // namespace P4
32
91class NormalizeHashList : public PassManager {
92 public:
93 explicit NormalizeHashList(::P4::ReferenceMap *ref_map_, ::P4::TypeMap *type_map_,
94 ::P4::TypeChecking *type_checking_);
95
96 /* -- avoid copying */
97 NormalizeHashList &operator=(NormalizeHashList &&) = delete;
98
102 static bool isHasher(const IR::MethodCallExpression *mc);
103};
104
105#endif // BF_P4C_MIDEND_NORMALIZE_HASH_LIST_H_
Normalize field lists in hashing expression (Hash.get primitive)
Definition normalize_hash_list.h:91
static bool isHasher(const IR::MethodCallExpression *mc)
Check whether a method call is the hasher call.
Definition midend/normalize_hash_list.cpp:442
Class used to encode maps from paths to declarations.
Definition referenceMap.h:66
Definition typeChecker.h:55
Definition typeMap.h:41
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24