21#include "ir/visitor.h"
28template <
typename Node>
30 const Node *before =
nullptr;
31 const Node *after =
nullptr;
32 std::vector<const IR::Declaration *> hoistedDeclarations;
35 explicit operator bool()
const {
return after; }
37 before = after =
nullptr;
38 hoistedDeclarations.clear();
121 const IR::Statement *stat,
122 std::function<
bool(
const IR::Statement *,
const P4::Visitor_Context *)> predicate,
123 P4::NameGenerator &nameGen, P4::TypeMap *typeMap =
nullptr);
Definition referenceMap.h:29
TODO: this is not really specific to BMV2, it should reside somewhere else.
Definition applyOptionsPragmas.cpp:24
SplitResult< IR::Statement > splitStatementBefore(const IR::Statement *stat, std::function< bool(const IR::Statement *, const P4::Visitor_Context *)> predicate, P4::NameGenerator &nameGen, P4::TypeMap *typeMap)
Split stat so that on every control-flow path all the statements up to the first one matching predica...
Definition splitter.cpp:269