8#ifndef FRONTENDS_P4_REMOVEOPASSIGN_H_
9#define FRONTENDS_P4_REMOVEOPASSIGN_H_
13#include "sideEffects.h"
22 return new IR::AssignmentStatement(as->srcInfo, as->left->apply(
CloneExpressions()),
23 new typename T::BinOp(as->left, as->right));
27 const IR::Node *preorder(IR::OP *as) override { return doit(as); }
33 PREORDER(AddSatAssign)
34 PREORDER(SubSatAssign)
42 const IR::Node *preorder(IR::AssignmentStatement *s)
override {
46 const IR::Node *preorder(IR::Expression *e)
override {
50 const IR::Node *preorder(IR::Annotation *a)
override {
Definition removeOpAssign.h:17
static bool check(const IR::Expression *expression, const Visitor *calledBy, TypeMap *typeMap=nullptr, const Visitor::Context *ctxt=nullptr)
Definition sideEffects.h:81
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:13