summaryrefslogtreecommitdiff
path: root/src/wasm-traversal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm-traversal.h')
-rw-r--r--src/wasm-traversal.h124
1 files changed, 62 insertions, 62 deletions
diff --git a/src/wasm-traversal.h b/src/wasm-traversal.h
index 620ff0161..0b8097f56 100644
--- a/src/wasm-traversal.h
+++ b/src/wasm-traversal.h
@@ -35,40 +35,40 @@ namespace wasm {
template<typename SubType, typename ReturnType = void>
struct Visitor {
// Expression visitors
- ReturnType visitBlock(Block *curr) {}
- ReturnType visitIf(If *curr) {}
- ReturnType visitLoop(Loop *curr) {}
- ReturnType visitBreak(Break *curr) {}
- ReturnType visitSwitch(Switch *curr) {}
- ReturnType visitCall(Call *curr) {}
- ReturnType visitCallImport(CallImport *curr) {}
- ReturnType visitCallIndirect(CallIndirect *curr) {}
- ReturnType visitGetLocal(GetLocal *curr) {}
- ReturnType visitSetLocal(SetLocal *curr) {}
- ReturnType visitGetGlobal(GetGlobal *curr) {}
- ReturnType visitSetGlobal(SetGlobal *curr) {}
- ReturnType visitLoad(Load *curr) {}
- ReturnType visitStore(Store *curr) {}
- ReturnType visitConst(Const *curr) {}
- ReturnType visitUnary(Unary *curr) {}
- ReturnType visitBinary(Binary *curr) {}
- ReturnType visitSelect(Select *curr) {}
- ReturnType visitDrop(Drop *curr) {}
- ReturnType visitReturn(Return *curr) {}
- ReturnType visitHost(Host *curr) {}
- ReturnType visitNop(Nop *curr) {}
- ReturnType visitUnreachable(Unreachable *curr) {}
+ ReturnType visitBlock(Block* curr) {}
+ ReturnType visitIf(If* curr) {}
+ ReturnType visitLoop(Loop* curr) {}
+ ReturnType visitBreak(Break* curr) {}
+ ReturnType visitSwitch(Switch* curr) {}
+ ReturnType visitCall(Call* curr) {}
+ ReturnType visitCallImport(CallImport* curr) {}
+ ReturnType visitCallIndirect(CallIndirect* curr) {}
+ ReturnType visitGetLocal(GetLocal* curr) {}
+ ReturnType visitSetLocal(SetLocal* curr) {}
+ ReturnType visitGetGlobal(GetGlobal* curr) {}
+ ReturnType visitSetGlobal(SetGlobal* curr) {}
+ ReturnType visitLoad(Load* curr) {}
+ ReturnType visitStore(Store* curr) {}
+ ReturnType visitConst(Const* curr) {}
+ ReturnType visitUnary(Unary* curr) {}
+ ReturnType visitBinary(Binary* curr) {}
+ ReturnType visitSelect(Select* curr) {}
+ ReturnType visitDrop(Drop* curr) {}
+ ReturnType visitReturn(Return* curr) {}
+ ReturnType visitHost(Host* curr) {}
+ ReturnType visitNop(Nop* curr) {}
+ ReturnType visitUnreachable(Unreachable* curr) {}
// Module-level visitors
- ReturnType visitFunctionType(FunctionType *curr) {}
- ReturnType visitImport(Import *curr) {}
- ReturnType visitExport(Export *curr) {}
- ReturnType visitGlobal(Global *curr) {}
- ReturnType visitFunction(Function *curr) {}
- ReturnType visitTable(Table *curr) {}
- ReturnType visitMemory(Memory *curr) {}
- ReturnType visitModule(Module *curr) {}
-
- ReturnType visit(Expression *curr) {
+ ReturnType visitFunctionType(FunctionType* curr) {}
+ ReturnType visitImport(Import* curr) {}
+ ReturnType visitExport(Export* curr) {}
+ ReturnType visitGlobal(Global* curr) {}
+ ReturnType visitFunction(Function* curr) {}
+ ReturnType visitTable(Table* curr) {}
+ ReturnType visitMemory(Memory* curr) {}
+ ReturnType visitModule(Module* curr) {}
+
+ ReturnType visit(Expression* curr) {
assert(curr);
#define DELEGATE(CLASS_TO_VISIT) \
@@ -116,29 +116,29 @@ struct UnifiedExpressionVisitor : public Visitor<SubType> {
ReturnType visitExpression(Expression* curr) {}
// redirects
- ReturnType visitBlock(Block *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitIf(If *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitLoop(Loop *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitBreak(Break *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitSwitch(Switch *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitCall(Call *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitCallImport(CallImport *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitCallIndirect(CallIndirect *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitGetLocal(GetLocal *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitSetLocal(SetLocal *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitGetGlobal(GetGlobal *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitSetGlobal(SetGlobal *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitLoad(Load *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitStore(Store *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitConst(Const *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitUnary(Unary *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitBinary(Binary *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitSelect(Select *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitDrop(Drop *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitReturn(Return *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitHost(Host *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitNop(Nop *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
- ReturnType visitUnreachable(Unreachable *curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitBlock(Block* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitIf(If* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitLoop(Loop* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitBreak(Break* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitSwitch(Switch* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitCall(Call* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitCallImport(CallImport* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitCallIndirect(CallIndirect* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitGetLocal(GetLocal* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitSetLocal(SetLocal* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitGetGlobal(GetGlobal* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitSetGlobal(SetGlobal* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitLoad(Load* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitStore(Store* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitConst(Const* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitUnary(Unary* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitBinary(Binary* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitSelect(Select* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitDrop(Drop* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitReturn(Return* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitHost(Host* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitNop(Nop* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
+ ReturnType visitUnreachable(Unreachable* curr) { return static_cast<SubType*>(this)->visitExpression(curr); }
};
//
@@ -156,7 +156,7 @@ struct Walker : public VisitorType {
// Note that the visit*() for the result node is not called for you (i.e.,
// just one visit*() method is called by the traversal; if you replace a node,
// and you want to process the output, you must do that explicitly).
- Expression* replaceCurrent(Expression *expression) {
+ Expression* replaceCurrent(Expression* expression) {
return replace = expression;
}
@@ -183,14 +183,14 @@ struct Walker : public VisitorType {
walk(func->body);
}
- void walkModule(Module *module) {
+ void walkModule(Module* module) {
setModule(module);
static_cast<SubType*>(this)->doWalkModule(module);
static_cast<SubType*>(this)->visitModule(module);
}
// override this to provide custom functionality
- void doWalkModule(Module *module) {
+ void doWalkModule(Module* module) {
// Dispatch statically through the SubType.
SubType* self = static_cast<SubType*>(this);
for (auto& curr : module->functionTypes) {
@@ -281,16 +281,16 @@ struct Walker : public VisitorType {
static void doVisitNop(SubType* self, Expression** currp) { self->visitNop((*currp)->cast<Nop>()); }
static void doVisitUnreachable(SubType* self, Expression** currp) { self->visitUnreachable((*currp)->cast<Unreachable>()); }
- void setModule(Module *module) {
+ void setModule(Module* module) {
currModule = module;
}
- void setFunction(Function *func) {
+ void setFunction(Function* func) {
currFunction = func;
}
private:
- Expression *replace = nullptr; // a node to replace
+ Expression* replace = nullptr; // a node to replace
std::vector<Task> stack; // stack of tasks
Function* currFunction = nullptr; // current function being processed
Module* currModule = nullptr; // current module being processed