17#ifndef MIDEND_COMPLEXCOMPARISON_H_ 
   18#define MIDEND_COMPLEXCOMPARISON_H_ 
   20#include "frontends/p4/typeChecking/typeChecker.h" 
   36                                  const IR::Expression *left, 
const IR::Type *rightType,
 
   37                                  const IR::Expression *right);
 
   41        : refMap(refMap), typeMap(typeMap) {
 
   44        setName(
"RemoveComplexComparisons");
 
   46    const IR::Node *postorder(IR::Operation_Binary *expression) 
override;
 
 
   53        if (!typeChecking) typeChecking = 
new TypeChecking(refMap, typeMap);
 
   54        passes.push_back(typeChecking);
 
   56        setName(
"SimplifyComparisons");
 
 
Class used to encode maps from paths to declarations.
Definition referenceMap.h:66
 
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:49
 
Definition typeChecker.h:55
 
Definition pass_manager.h:38
 
Definition source_file.h:123
 
Definition applyOptionsPragmas.cpp:24