| Index: runtime/vm/intermediate_language.cc
|
| diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc
|
| index 58b8d214941abb90f64dd608ea11d6af61fe7e8a..86762d6ed167c302cc5e9c0dcaad8180094c0cd7 100644
|
| --- a/runtime/vm/intermediate_language.cc
|
| +++ b/runtime/vm/intermediate_language.cc
|
| @@ -33,6 +33,18 @@ Instruction* TargetEntryInstr::Accept(FlowGraphVisitor* visitor) {
|
| }
|
|
|
|
|
| +Instruction* PickTempInstr::Accept(FlowGraphVisitor* visitor) {
|
| + visitor->VisitPickTemp(this);
|
| + return successor_;
|
| +}
|
| +
|
| +
|
| +Instruction* TuckTempInstr::Accept(FlowGraphVisitor* visitor) {
|
| + visitor->VisitTuckTemp(this);
|
| + return successor_;
|
| +}
|
| +
|
| +
|
| Instruction* DoInstr::Accept(FlowGraphVisitor* visitor) {
|
| visitor->VisitDo(this);
|
| return successor_;
|
| @@ -70,6 +82,33 @@ void FlowGraphVisitor::VisitBlocks(
|
|
|
|
|
| // ==== Postorder graph traversal.
|
| +void JoinEntryInstr::Postorder(GrowableArray<BlockEntryInstr*>* block_entries) {
|
| + flip_mark();
|
| + if (successor_->mark() != mark()) successor_->Postorder(block_entries);
|
| + block_entries->Add(this);
|
| +}
|
| +
|
| +
|
| +void TargetEntryInstr::Postorder(
|
| + GrowableArray<BlockEntryInstr*>* block_entries) {
|
| + flip_mark();
|
| + if (successor_->mark() != mark()) successor_->Postorder(block_entries);
|
| + block_entries->Add(this);
|
| +}
|
| +
|
| +
|
| +void PickTempInstr::Postorder(GrowableArray<BlockEntryInstr*>* block_entries) {
|
| + flip_mark();
|
| + if (successor_->mark() != mark()) successor_->Postorder(block_entries);
|
| +}
|
| +
|
| +
|
| +void TuckTempInstr::Postorder(GrowableArray<BlockEntryInstr*>* block_entries) {
|
| + flip_mark();
|
| + if (successor_->mark() != mark()) successor_->Postorder(block_entries);
|
| +}
|
| +
|
| +
|
| void DoInstr::Postorder(GrowableArray<BlockEntryInstr*>* block_entries) {
|
| flip_mark();
|
| if (successor_->mark() != mark()) successor_->Postorder(block_entries);
|
| @@ -100,19 +139,4 @@ void BranchInstr::Postorder(GrowableArray<BlockEntryInstr*>* block_entries) {
|
| }
|
|
|
|
|
| -void JoinEntryInstr::Postorder(GrowableArray<BlockEntryInstr*>* block_entries) {
|
| - flip_mark();
|
| - if (successor_->mark() != mark()) successor_->Postorder(block_entries);
|
| - block_entries->Add(this);
|
| -}
|
| -
|
| -
|
| -void TargetEntryInstr::Postorder(
|
| - GrowableArray<BlockEntryInstr*>* block_entries) {
|
| - flip_mark();
|
| - if (successor_->mark() != mark()) successor_->Postorder(block_entries);
|
| - block_entries->Add(this);
|
| -}
|
| -
|
| -
|
| } // namespace dart
|
|
|