diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-05-18 18:11:29 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-05-18 18:28:22 -0700 |
commit | 013644bd98de23f0e1c303dd72994956486b455a (patch) | |
tree | 354307cd811036b51324662e50e78e4f3681701f | |
parent | 9070ff54453bec5e90727cc586b4a702b54628d4 (diff) | |
download | binaryen-013644bd98de23f0e1c303dd72994956486b455a.tar.gz binaryen-013644bd98de23f0e1c303dd72994956486b455a.tar.bz2 binaryen-013644bd98de23f0e1c303dd72994956486b455a.zip |
finalize s2wasm blocks once at their end, not constantly
-rw-r--r-- | src/s2wasm.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/s2wasm.h b/src/s2wasm.h index 79ba4c138..082cbed1a 100644 --- a/src/s2wasm.h +++ b/src/s2wasm.h @@ -529,7 +529,6 @@ class S2WasmBuilder { last = last->cast<Loop>()->body; } last->cast<Block>()->list.push_back(curr); - last->cast<Block>()->finalize(); }; bstack.push_back(func->body); std::vector<Expression*> estack; @@ -924,6 +923,7 @@ class S2WasmBuilder { addToBlock(curr); bstack.push_back(curr); } else if (match("end_block")) { + bstack.back()->cast<Block>()->finalize(); bstack.pop_back(); } else if (match(".LBB")) { s = strchr(s, '\n'); @@ -999,6 +999,7 @@ class S2WasmBuilder { } } // finishing touches + bstack.back()->cast<Block>()->finalize(); bstack.pop_back(); // remove the base block for the function body assert(bstack.empty()); assert(estack.empty()); |