17#ifndef MIDEND_COMPLEXCOMPARISON_H_
18#define MIDEND_COMPLEXCOMPARISON_H_
20#include "frontends/p4/typeChecking/typeChecker.h"
35 const IR::Expression *left,
const IR::Type *rightType,
36 const IR::Expression *right);
41 setName(
"RemoveComplexComparisons");
43 const IR::Node *postorder(IR::Operation_Binary *expression)
override;
49 if (!typeChecking) typeChecking =
new TypeChecking(
nullptr, typeMap);
50 passes.push_back(typeChecking);
52 setName(
"SimplifyComparisons");
Definition ir/pass_manager.h:40
Definition complexComparison.h:29
const IR::Expression * explode(Util::SourceInfo srcInfo, const IR::Type *leftType, const IR::Expression *left, const IR::Type *rightType, const IR::Expression *right)
Expands left == right into sub-field comparisons.
Definition complexComparison.cpp:21
Definition complexComparison.h:46
Definition typeChecker.h:55
Definition source_file.h:131
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24