17#ifndef FRONTENDS_P4_REMOVEOPASSIGN_H_
18#define FRONTENDS_P4_REMOVEOPASSIGN_H_
22#include "sideEffects.h"
31 return new IR::AssignmentStatement(as->srcInfo, as->left->apply(
CloneExpressions()),
32 new typename T::BinOp(as->left, as->right));
36 const IR::Node *preorder(IR::OP *as) override { return doit(as); }
42 PREORDER(AddSatAssign)
43 PREORDER(SubSatAssign)
51 const IR::Node *preorder(IR::AssignmentStatement *s)
override {
55 const IR::Node *preorder(IR::Expression *e)
override {
59 const IR::Node *preorder(IR::Annotation *a)
override {
Definition removeOpAssign.h:26
static bool check(const IR::Expression *expression, const Visitor *calledBy, TypeMap *typeMap=nullptr, const Visitor::Context *ctxt=nullptr)
Definition sideEffects.h:90
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24