Mercurial > hg > graal-compiler
comparison src/share/vm/c1/c1_InstructionPrinter.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 | d5d065957597 |
children | f95d63e2154a |
comparison
equal
deleted
inserted
replaced
1817:c40600e85311 | 1819:f02a8bbe6ed4 |
---|---|
314 | 314 |
315 | 315 |
316 void InstructionPrinter::print_line(Instruction* instr) { | 316 void InstructionPrinter::print_line(Instruction* instr) { |
317 // print instruction data on one line | 317 // print instruction data on one line |
318 if (instr->is_pinned()) output()->put('.'); | 318 if (instr->is_pinned()) output()->put('.'); |
319 fill_to(bci_pos ); output()->print("%d", instr->bci()); | 319 fill_to(bci_pos ); output()->print("%d", instr->printable_bci()); |
320 fill_to(use_pos ); output()->print("%d", instr->use_count()); | 320 fill_to(use_pos ); output()->print("%d", instr->use_count()); |
321 fill_to(temp_pos ); print_temp(instr); | 321 fill_to(temp_pos ); print_temp(instr); |
322 fill_to(instr_pos); print_instr(instr); | 322 fill_to(instr_pos); print_instr(instr); |
323 output()->cr(); | 323 output()->cr(); |
324 // add a line for StateSplit instructions w/ non-empty stacks | 324 // add a line for StateSplit instructions w/ non-empty stacks |
567 output()->print("V"); printed_flag = true; | 567 output()->print("V"); printed_flag = true; |
568 } | 568 } |
569 if (printed_flag) output()->print(") "); | 569 if (printed_flag) output()->print(") "); |
570 | 570 |
571 // print block bci range | 571 // print block bci range |
572 output()->print("[%d, %d]", x->bci(), (end == NULL ? -1 : end->bci())); | 572 output()->print("[%d, %d]", x->bci(), (end == NULL ? -1 : end->printable_bci())); |
573 | 573 |
574 // print block successors | 574 // print block successors |
575 if (end != NULL && end->number_of_sux() > 0) { | 575 if (end != NULL && end->number_of_sux() > 0) { |
576 output()->print(" ->"); | 576 output()->print(" ->"); |
577 for (int i = 0; i < end->number_of_sux(); i++) { | 577 for (int i = 0; i < end->number_of_sux(); i++) { |