diff --git a/src/wasm.h b/src/wasm.h index a1c38628926..b52e7539baf 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -588,6 +588,9 @@ class Expression { assert(int(_id) == int(T::SpecificId)); return (const T*)this; } + + // Print the expression to stderr. Meant for use while debugging. + void dump(); }; const char* getExpressionName(Expression* curr); diff --git a/src/wasm/wasm.cpp b/src/wasm/wasm.cpp index 6f86a13acfb..f1d51bbca6f 100644 --- a/src/wasm/wasm.cpp +++ b/src/wasm/wasm.cpp @@ -16,6 +16,7 @@ #include "wasm.h" #include "ir/branch-utils.h" +#include "wasm-printing.h" #include "wasm-traversal.h" namespace wasm { @@ -93,6 +94,13 @@ Name ATTR("attr"); // Expressions +void Expression::dump() { + WasmPrinter::printExpression(this, + std::cerr, + /*minify=*/false, + /*full=*/true); +} + const char* getExpressionName(Expression* curr) { switch (curr->_id) { case Expression::Id::InvalidId: