summaryrefslogtreecommitdiff
path: root/src/wasm.h
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-01-27 19:23:27 -0800
committerAlon Zakai <alonzakai@gmail.com>2016-01-27 19:23:27 -0800
commit6f0e64113c98dec8fa32270b7c7556ce266190a3 (patch)
tree704c4217b8353ecd9dbcbed31ca2b9290f912940 /src/wasm.h
parent9effac86e9679d723f17d999d233f5b15ce61094 (diff)
parent54c77ff7c48d250a1a5b0aa2a262689fa8184d78 (diff)
downloadbinaryen-6f0e64113c98dec8fa32270b7c7556ce266190a3.tar.gz
binaryen-6f0e64113c98dec8fa32270b7c7556ce266190a3.tar.bz2
binaryen-6f0e64113c98dec8fa32270b7c7556ce266190a3.zip
Merge pull request #147 from mbebenita/metrics
Adds a --metrics command line argument.
Diffstat (limited to 'src/wasm.h')
-rw-r--r--src/wasm.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/wasm.h b/src/wasm.h
index 987a8da6b..856c0ebeb 100644
--- a/src/wasm.h
+++ b/src/wasm.h
@@ -350,6 +350,32 @@ public:
}
};
+inline const char *getExpressionName(Expression *curr) {
+ switch (curr->_id) {
+ case Expression::Id::InvalidId: abort();
+ case Expression::Id::BlockId: return "block";
+ case Expression::Id::IfId: return "if";
+ case Expression::Id::LoopId: return "loop";
+ case Expression::Id::BreakId: return "break";
+ case Expression::Id::SwitchId: return "switch";
+ case Expression::Id::CallId: return "call";
+ case Expression::Id::CallImportId: return "call_import";
+ case Expression::Id::CallIndirectId: return "call_indirect";
+ case Expression::Id::GetLocalId: return "get_local";
+ case Expression::Id::SetLocalId: return "set_local";
+ case Expression::Id::LoadId: return "load";
+ case Expression::Id::StoreId: return "store";
+ case Expression::Id::ConstId: return "const";
+ case Expression::Id::UnaryId: return "unary";
+ case Expression::Id::BinaryId: return "binary";
+ case Expression::Id::SelectId: return "select";
+ case Expression::Id::HostId: return "host";
+ case Expression::Id::NopId: return "nop";
+ case Expression::Id::UnreachableId: return "unreachable";
+ default: WASM_UNREACHABLE();
+ }
+}
+
typedef std::vector<Expression*> ExpressionList; // TODO: optimize?
class Nop : public Expression {