| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/il_printer.h" | 5 #include "vm/il_printer.h" |
| 6 | 6 |
| 7 #include "vm/intermediate_language.h" | 7 #include "vm/intermediate_language.h" |
| 8 #include "vm/os.h" | 8 #include "vm/os.h" |
| 9 #include "vm/parser.h" | 9 #include "vm/parser.h" |
| 10 | 10 |
| (...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 531 Definition* def = defns[i]; | 531 Definition* def = defns[i]; |
| 532 f->Print("\n "); | 532 f->Print("\n "); |
| 533 def->PrintTo(f); | 533 def->PrintTo(f); |
| 534 } | 534 } |
| 535 f->Print("\n}"); | 535 f->Print("\n}"); |
| 536 } | 536 } |
| 537 } | 537 } |
| 538 | 538 |
| 539 | 539 |
| 540 void JoinEntryInstr::PrintTo(BufferFormatter* f) const { | 540 void JoinEntryInstr::PrintTo(BufferFormatter* f) const { |
| 541 f->Print("B%"Pd"[join] pred(", block_id()); | 541 f->Print("B%"Pd"[join]", block_id()); |
| 542 for (intptr_t i = 0; i < predecessors_.length(); ++i) { | |
| 543 if (i > 0) f->Print(", "); | |
| 544 f->Print("B%"Pd, predecessors_[i]->block_id()); | |
| 545 } | |
| 546 f->Print(")"); | |
| 547 if (phis_ != NULL) { | 542 if (phis_ != NULL) { |
| 548 f->Print(" {"); | 543 f->Print(" {"); |
| 549 for (intptr_t i = 0; i < phis_->length(); ++i) { | 544 for (intptr_t i = 0; i < phis_->length(); ++i) { |
| 550 if ((*phis_)[i] == NULL) continue; | 545 if ((*phis_)[i] == NULL) continue; |
| 551 f->Print("\n "); | 546 f->Print("\n "); |
| 552 (*phis_)[i]->PrintTo(f); | 547 (*phis_)[i]->PrintTo(f); |
| 553 } | 548 } |
| 554 f->Print("\n}"); | 549 f->Print("\n}"); |
| 555 } | 550 } |
| 556 if (HasParallelMove()) { | 551 if (HasParallelMove()) { |
| 557 f->Print(" "); | 552 f->Print(" "); |
| 558 parallel_move()->PrintTo(f); | 553 parallel_move()->PrintTo(f); |
| 559 } | 554 } |
| 560 } | 555 } |
| 561 | 556 |
| 562 | 557 |
| 563 void PhiInstr::PrintTo(BufferFormatter* f) const { | 558 void PhiInstr::PrintTo(BufferFormatter* f) const { |
| 564 f->Print("v%"Pd" <- phi(", ssa_temp_index()); | 559 f->Print("v%"Pd" <- phi(", ssa_temp_index()); |
| 565 for (intptr_t i = 0; i < inputs_.length(); ++i) { | 560 for (intptr_t i = 0; i < inputs_.length(); ++i) { |
| 566 if (inputs_[i] != NULL) inputs_[i]->PrintTo(f); | 561 if (inputs_[i] != NULL) inputs_[i]->PrintTo(f); |
| 567 if (i < inputs_.length() - 1) f->Print(", "); | 562 if (i < inputs_.length() - 1) f->Print(", "); |
| 568 } | 563 } |
| 569 f->Print(")"); | 564 f->Print(")"); |
| 570 PrintPropagatedType(f, *this); | 565 PrintPropagatedType(f, *this); |
| 571 if (is_alive()) { | |
| 572 f->Print(" alive"); | |
| 573 } else { | |
| 574 f->Print(" dead"); | |
| 575 } | |
| 576 if (range_ != NULL) { | 566 if (range_ != NULL) { |
| 577 f->Print(" "); | 567 f->Print(" "); |
| 578 range_->PrintTo(f); | 568 range_->PrintTo(f); |
| 579 } | 569 } |
| 580 } | 570 } |
| 581 | 571 |
| 582 | 572 |
| 583 void ParameterInstr::PrintOperandsTo(BufferFormatter* f) const { | 573 void ParameterInstr::PrintOperandsTo(BufferFormatter* f) const { |
| 584 f->Print("%"Pd, index()); | 574 f->Print("%"Pd, index()); |
| 585 } | 575 } |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 857 f->Print(" ["); | 847 f->Print(" ["); |
| 858 locations_[i].PrintTo(f); | 848 locations_[i].PrintTo(f); |
| 859 f->Print("]"); | 849 f->Print("]"); |
| 860 } | 850 } |
| 861 } | 851 } |
| 862 f->Print(" }"); | 852 f->Print(" }"); |
| 863 if (outer_ != NULL) outer_->PrintTo(f); | 853 if (outer_ != NULL) outer_->PrintTo(f); |
| 864 } | 854 } |
| 865 | 855 |
| 866 } // namespace dart | 856 } // namespace dart |
| OLD | NEW |