Mercurial > hg > graal-compiler
comparison src/share/vm/c1/c1_LIR.cpp @ 1819:f02a8bbe6ed4
6986046: C1 valuestack cleanup
Summary: fixes an historical oddity in C1 with inlining where all of the expression stacks are kept in the topmost ValueStack instead of being in their respective ValueStacks.
Reviewed-by: never
Contributed-by: Christian Wimmer <cwimmer@uci.edu>
author | roland |
---|---|
date | Tue, 29 Dec 2009 19:08:54 +0100 |
parents | 87b64980e2f1 |
children | f95d63e2154a |
comparison
equal
deleted
inserted
replaced
1817:c40600e85311 | 1819:f02a8bbe6ed4 |
---|---|
1518 if (x->is_set(BlockBegin::backward_branch_target_flag)) tty->print("bb "); | 1518 if (x->is_set(BlockBegin::backward_branch_target_flag)) tty->print("bb "); |
1519 if (x->is_set(BlockBegin::linear_scan_loop_header_flag)) tty->print("lh "); | 1519 if (x->is_set(BlockBegin::linear_scan_loop_header_flag)) tty->print("lh "); |
1520 if (x->is_set(BlockBegin::linear_scan_loop_end_flag)) tty->print("le "); | 1520 if (x->is_set(BlockBegin::linear_scan_loop_end_flag)) tty->print("le "); |
1521 | 1521 |
1522 // print block bci range | 1522 // print block bci range |
1523 tty->print("[%d, %d] ", x->bci(), (end == NULL ? -1 : end->bci())); | 1523 tty->print("[%d, %d] ", x->bci(), (end == NULL ? -1 : end->printable_bci())); |
1524 | 1524 |
1525 // print predecessors and successors | 1525 // print predecessors and successors |
1526 if (x->number_of_preds() > 0) { | 1526 if (x->number_of_preds() > 0) { |
1527 tty->print("preds: "); | 1527 tty->print("preds: "); |
1528 for (int i = 0; i < x->number_of_preds(); i ++) { | 1528 for (int i = 0; i < x->number_of_preds(); i ++) { |
1574 } else { | 1574 } else { |
1575 out->print(" "); | 1575 out->print(" "); |
1576 } | 1576 } |
1577 out->print(name()); out->print(" "); | 1577 out->print(name()); out->print(" "); |
1578 print_instr(out); | 1578 print_instr(out); |
1579 if (info() != NULL) out->print(" [bci:%d]", info()->bci()); | 1579 if (info() != NULL) out->print(" [bci:%d]", info()->stack()->bci()); |
1580 #ifdef ASSERT | 1580 #ifdef ASSERT |
1581 if (Verbose && _file != NULL) { | 1581 if (Verbose && _file != NULL) { |
1582 out->print(" (%s:%d)", _file, _line); | 1582 out->print(" (%s:%d)", _file, _line); |
1583 } | 1583 } |
1584 #endif | 1584 #endif |
1779 out->print("[B%d] ", block()->block_id()); | 1779 out->print("[B%d] ", block()->block_id()); |
1780 } else if (stub() != NULL) { | 1780 } else if (stub() != NULL) { |
1781 out->print("["); | 1781 out->print("["); |
1782 stub()->print_name(out); | 1782 stub()->print_name(out); |
1783 out->print(": 0x%x]", stub()); | 1783 out->print(": 0x%x]", stub()); |
1784 if (stub()->info() != NULL) out->print(" [bci:%d]", stub()->info()->bci()); | 1784 if (stub()->info() != NULL) out->print(" [bci:%d]", stub()->info()->stack()->bci()); |
1785 } else { | 1785 } else { |
1786 out->print("[label:0x%x] ", label()); | 1786 out->print("[label:0x%x] ", label()); |
1787 } | 1787 } |
1788 if (ublock() != NULL) { | 1788 if (ublock() != NULL) { |
1789 out->print("unordered: [B%d] ", ublock()->block_id()); | 1789 out->print("unordered: [B%d] ", ublock()->block_id()); |
1894 } | 1894 } |
1895 tmp1()->print(out); out->print(" "); | 1895 tmp1()->print(out); out->print(" "); |
1896 tmp2()->print(out); out->print(" "); | 1896 tmp2()->print(out); out->print(" "); |
1897 tmp3()->print(out); out->print(" "); | 1897 tmp3()->print(out); out->print(" "); |
1898 result_opr()->print(out); out->print(" "); | 1898 result_opr()->print(out); out->print(" "); |
1899 if (info_for_exception() != NULL) out->print(" [bci:%d]", info_for_exception()->bci()); | 1899 if (info_for_exception() != NULL) out->print(" [bci:%d]", info_for_exception()->stack()->bci()); |
1900 } | 1900 } |
1901 | 1901 |
1902 | 1902 |
1903 // LIR_Op3 | 1903 // LIR_Op3 |
1904 void LIR_Op3::print_instr(outputStream* out) const { | 1904 void LIR_Op3::print_instr(outputStream* out) const { |