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 {