30 const IR::P4Program *fake =
new IR::P4Program();
31 const IR::P4Program *program =
nullptr;
38 bool checkMap(
const IR::Node *node)
const {
39 if (node == program) {
41 LOG2(mapKind <<
" is up-to-date");
44 LOG2(
"Program has changed from " << dbp(program) <<
" to " << dbp(node));
48 void validateMap(
const IR::Node *node)
const {
49 if (node ==
nullptr || !node->is<IR::P4Program>() || program ==
nullptr)
return;
51 BUG(
"Invalid map %1%: computed for %2%, used for %3%", mapKind, dbp(program),
54 void updateMap(
const IR::Node *node) {
55 if (node ==
nullptr || !node->is<IR::P4Program>())
return;
56 program = node->to<IR::P4Program>();
57 LOG2(mapKind <<
" updated to " << dbp(node));