8
8
9
9
namespace P4 {
10
10
11
- typedef std::map<cstring, const IR::PathExpression*> generatedVariablesMap ;
11
+ typedef std::map<cstring, const IR::PathExpression*> GeneratedVariablesMap ;
12
12
13
13
// / This class finds innermost header stack with non-concrete index.
14
14
// / For each found innermost header stack it generates new local variable and
@@ -21,13 +21,13 @@ class HSIndexFinder : public Inspector {
21
21
TypeMap* typeMap;
22
22
const IR::ArrayIndex* arrayIndex;
23
23
const IR::PathExpression* newVariable;
24
- generatedVariablesMap * generatedVariables;
24
+ GeneratedVariablesMap * generatedVariables;
25
25
std::set<cstring> storedMember;
26
26
std::list<IR::Member*> dependedMembers;
27
27
28
28
public:
29
29
HSIndexFinder (IR::IndexedVector<IR::Declaration>* locals, ReferenceMap* refMap,
30
- TypeMap* typeMap, generatedVariablesMap * generatedVariables)
30
+ TypeMap* typeMap, GeneratedVariablesMap * generatedVariables)
31
31
: locals(locals),
32
32
refMap (refMap),
33
33
typeMap(typeMap),
@@ -54,6 +54,7 @@ class HSIndexTransform : public Transform {
54
54
// / This class eliminates all non-concrete indexes of the header stacks in the controls.
55
55
// / It generates new variables for all expressions in the header stacks indexes and
56
56
// / checks their values for substitution of concrete values.
57
+ // / Each new variable is unique in a scope.
57
58
// / Restriction : in/out parameters should be replaced by correspondent assignments.
58
59
// / Let
59
60
// / header h_index { bit<32> index;}
@@ -69,14 +70,14 @@ class HSIndexSimplifier : public Transform {
69
70
ReferenceMap* refMap;
70
71
TypeMap* typeMap;
71
72
IR::IndexedVector<IR::Declaration>* locals;
72
- generatedVariablesMap * generatedVariables;
73
+ GeneratedVariablesMap * generatedVariables;
73
74
74
75
public:
75
76
HSIndexSimplifier (ReferenceMap* refMap, TypeMap* typeMap,
76
77
IR::IndexedVector<IR::Declaration>* locals = nullptr ,
77
- generatedVariablesMap * generatedVariables = nullptr )
78
+ GeneratedVariablesMap * generatedVariables = nullptr )
78
79
: refMap(refMap), typeMap(typeMap), locals(locals), generatedVariables(generatedVariables) {
79
- if (generatedVariables == nullptr ) generatedVariables = new generatedVariablesMap ();
80
+ if (generatedVariables == nullptr ) generatedVariables = new GeneratedVariablesMap ();
80
81
}
81
82
IR::Node* preorder (IR::IfStatement* ifStatement) override ;
82
83
IR::Node* preorder (IR::AssignmentStatement* assignmentStatement) override ;
0 commit comments