17 friend class HSIndexTransform;
18 friend class HSIndexContretizer;
22 const IR::ArrayIndex *arrayIndex =
nullptr;
23 const IR::PathExpression *newVariable =
nullptr;
24 GeneratedVariablesMap *generatedVariables;
25 std::set<cstring> storedMember;
26 std::list<IR::Member *> dependedMembers;
30 TypeMap *typeMap, GeneratedVariablesMap *generatedVariables)
34 generatedVariables(generatedVariables) {}
35 void postorder(
const IR::ArrayIndex *curArrayIndex)
override;
38 void addNewVariable();
71 GeneratedVariablesMap *generatedVariables;
76 GeneratedVariablesMap *generatedVariables =
nullptr)
77 : refMap(refMap), typeMap(typeMap), locals(locals), generatedVariables(generatedVariables) {
78 if (generatedVariables ==
nullptr) {
79 generatedVariables =
new GeneratedVariablesMap();
82 IR::Node *preorder(IR::IfStatement *ifStatement)
override;
83 IR::Node *preorder(IR::AssignmentStatement *assignmentStatement)
override;
84 IR::Node *preorder(IR::BlockStatement *blockStatement)
override;
85 IR::Node *preorder(IR::MethodCallStatement *methodCallStatement)
override;
86 IR::Node *preorder(IR::P4Control *control)
override;
87 IR::Node *preorder(IR::P4Parser *parser)
override;
88 IR::Node *preorder(IR::SwitchStatement *switchStatement)
override;
92 const IR::Expression *expr);
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24