diff options
author | Alon Zakai <alonzakai@gmail.com> | 2015-12-18 14:30:46 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2015-12-18 15:06:01 -0800 |
commit | 884b9f8a688766e08907431cd6759bfaa89399dc (patch) | |
tree | fb75ab06ac3125ce7e8f2d4e0206bc321046a92b | |
parent | 2651a7c315cb5bf7343fe889585659074d5056c8 (diff) | |
download | binaryen-884b9f8a688766e08907431cd6759bfaa89399dc.tar.gz binaryen-884b9f8a688766e08907431cd6759bfaa89399dc.tar.bz2 binaryen-884b9f8a688766e08907431cd6759bfaa89399dc.zip |
remove Label, which was removed from the spec
-rw-r--r-- | src/pass.h | 1 | ||||
-rw-r--r-- | src/passes/NameManager.cpp | 3 | ||||
-rw-r--r-- | src/wasm-interpreter.h | 6 | ||||
-rw-r--r-- | src/wasm-s-parser.h | 16 | ||||
-rw-r--r-- | src/wasm.h | 59 | ||||
-rw-r--r-- | src/wasm2asm.h | 6 |
6 files changed, 19 insertions, 72 deletions
diff --git a/src/pass.h b/src/pass.h index de22e7daa..6af9e83e1 100644 --- a/src/pass.h +++ b/src/pass.h @@ -92,7 +92,6 @@ struct NameManager : public Pass { // visitors void visitBlock(Block* curr) override; void visitLoop(Loop* curr) override; - void visitLabel(Label* curr) override; void visitBreak(Break* curr) override; void visitSwitch(Switch* curr) override; void visitCall(Call* curr) override; diff --git a/src/passes/NameManager.cpp b/src/passes/NameManager.cpp index 73a09262b..34ea6adac 100644 --- a/src/passes/NameManager.cpp +++ b/src/passes/NameManager.cpp @@ -24,9 +24,6 @@ void NameManager::visitLoop(Loop* curr) { names.insert(curr->out); names.insert(curr->in); } -void NameManager::visitLabel(Label* curr) { - names.insert(curr->name); -} void NameManager::visitBreak(Break* curr) { names.insert(curr->name); } diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h index 83d974d47..4a04c6912 100644 --- a/src/wasm-interpreter.h +++ b/src/wasm-interpreter.h @@ -207,12 +207,6 @@ private: return flow; // loop does not loop automatically, only continue achieves that } } - Flow visitLabel(Label *curr) override { - NOTE_ENTER("Label"); - Flow flow = visit(curr->body); - flow.clearIf(curr->name); - return flow; - } Flow visitBreak(Break *curr) override { NOTE_ENTER("Break"); bool condition = true; diff --git a/src/wasm-s-parser.h b/src/wasm-s-parser.h index 7f1d9bf6c..deeaba155 100644 --- a/src/wasm-s-parser.h +++ b/src/wasm-s-parser.h @@ -555,7 +555,6 @@ public: abort_on(str); } case 'l': { - if (str[1] == 'a') return makeLabel(s); if (str[1] == 'o') return makeLoop(s); abort_on(str); } @@ -770,21 +769,6 @@ private: return ret; } - Expression* makeLabel(Element& s) { - auto ret = allocator.alloc<Label>(); - size_t i = 1; - if (s[i]->isStr()) { - ret->name = s[i]->str(); - i++; - } else { - ret->name = getPrefixedName("label"); - } - labelStack.push_back(ret->name); - ret->body = parseExpression(s[i]); - labelStack.pop_back(); - return ret; - } - Expression* makeMaybeBlock(Element& s, size_t i, size_t stopAt=-1) { if (s.size() == i+1) return parseExpression(s[i]); auto ret = allocator.alloc<Block>(); diff --git a/src/wasm.h b/src/wasm.h index afc2cf88c..af3917744 100644 --- a/src/wasm.h +++ b/src/wasm.h @@ -260,26 +260,25 @@ class Expression { public: enum Id { InvalidId = 0, - BlockId = 1, - IfId = 2, - LoopId = 3, - LabelId = 4, - BreakId = 5, - SwitchId =6 , - CallId = 7, - CallImportId = 8, - CallIndirectId = 9, - GetLocalId = 10, - SetLocalId = 11, - LoadId = 12, - StoreId = 13, - ConstId = 14, - UnaryId = 15, - BinaryId = 16, - SelectId = 17, - HostId = 18, - NopId = 19, - UnreachableId = 20 + BlockId, + IfId, + LoopId, + BreakId, + SwitchId, + CallId, + CallImportId, + CallIndirectId, + GetLocalId, + SetLocalId, + LoadId, + StoreId, + ConstId, + UnaryId, + BinaryId, + SelectId, + HostId, + NopId, + UnreachableId }; Id _id; @@ -390,21 +389,6 @@ public: } }; -class Label : public Expression { -public: - Label() : Expression(LabelId) {} - - Name name; - Expression* body; - - std::ostream& doPrint(std::ostream &o, unsigned indent) { - printOpening(o, "label ") << name; - incIndent(o, indent); - printFullLine(o, indent, body); - return decIndent(o, indent); - } -}; - class Break : public Expression { public: Break() : Expression(BreakId), condition(nullptr), value(nullptr) {} @@ -1111,7 +1095,6 @@ struct WasmVisitor { virtual ReturnType visitBlock(Block *curr) { abort(); } virtual ReturnType visitIf(If *curr) { abort(); } virtual ReturnType visitLoop(Loop *curr) { abort(); } - virtual ReturnType visitLabel(Label *curr) { abort(); } virtual ReturnType visitBreak(Break *curr) { abort(); } virtual ReturnType visitSwitch(Switch *curr) { abort(); } virtual ReturnType visitCall(Call *curr) { abort(); } @@ -1143,7 +1126,6 @@ struct WasmVisitor { case Expression::Id::BlockId: return visitBlock((Block*)curr); case Expression::Id::IfId: return visitIf((If*)curr); case Expression::Id::LoopId: return visitLoop((Loop*)curr); - case Expression::Id::LabelId: return visitLabel((Label*)curr); case Expression::Id::BreakId: return visitBreak((Break*)curr); case Expression::Id::SwitchId: return visitSwitch((Switch*)curr); case Expression::Id::CallId: return visitCall((Call*)curr); @@ -1178,7 +1160,6 @@ std::ostream& Expression::print(std::ostream &o, unsigned indent) { void visitBlock(Block *curr) override { curr->doPrint(o, indent); } void visitIf(If *curr) override { curr->doPrint(o, indent); } void visitLoop(Loop *curr) override { curr->doPrint(o, indent); } - void visitLabel(Label *curr) override { curr->doPrint(o, indent); } void visitBreak(Break *curr) override { curr->doPrint(o, indent); } void visitSwitch(Switch *curr) override { curr->doPrint(o, indent); } void visitCall(Call *curr) override { curr->doPrint(o, indent); } @@ -1222,7 +1203,6 @@ struct WasmWalker : public WasmVisitor<void> { void visitBlock(Block *curr) override {} void visitIf(If *curr) override {} void visitLoop(Loop *curr) override {} - void visitLabel(Label *curr) override {} void visitBreak(Break *curr) override {} void visitSwitch(Switch *curr) override {} void visitCall(Call *curr) override {} @@ -1271,7 +1251,6 @@ struct WasmWalker : public WasmVisitor<void> { void visitLoop(Loop *curr) override { parent.walk(curr->body); } - void visitLabel(Label *curr) override {} void visitBreak(Break *curr) override { parent.walk(curr->condition); parent.walk(curr->value); diff --git a/src/wasm2asm.h b/src/wasm2asm.h index 20e199516..b256a63c5 100644 --- a/src/wasm2asm.h +++ b/src/wasm2asm.h @@ -383,9 +383,6 @@ void Wasm2AsmBuilder::scanFunctionBody(Expression* curr) { void visitLoop(Loop *curr) override { parent->setStatement(curr); } - void visitLabel(Label *curr) override { - parent->setStatement(curr); - } void visitBreak(Break *curr) override { parent->setStatement(curr); } @@ -604,9 +601,6 @@ Ref Wasm2AsmBuilder::processFunctionBody(Expression* curr, IString result) { } return ret; } - Ref visitLabel(Label *curr) override { - return ValueBuilder::makeLabel(fromName(curr->name), visit(curr->body, result)); - } Ref visitBreak(Break *curr) override { if (curr->condition) { // we need an equivalent to an if here, so use that code |