src/share/vm/c1/c1_InstructionPrinter.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/c1

src/share/vm/c1/c1_InstructionPrinter.cpp

Print this page
rev 5400 : 8023657: New type profiling points: arguments to call
Summary: x86 interpreter and c1 type profiling for arguments at calls
Reviewed-by: kvn, twisti
rev 5401 : 8026054: New type profiling points: type of return values at calls
Summary: x86 interpreter and c1 type profiling for return values at calls
Reviewed-by:


 887 
 888 void InstructionPrinter::do_ProfileCall(ProfileCall* x) {
 889   output()->print("profile ");
 890   print_value(x->recv());
 891   output()->print(" %s.%s", x->method()->holder()->name()->as_utf8(), x->method()->name()->as_utf8());
 892   if (x->known_holder() != NULL) {
 893     output()->print(", ");
 894     print_klass(x->known_holder());
 895     output()->print(" ");
 896   }
 897   for (int i = 0; i < x->nb_profiled_args(); i++) {
 898     if (i > 0) output()->print(", ");
 899     print_value(x->profiled_arg_at(i));
 900     if (x->arg_needs_null_check(i)) {
 901       output()->print(" [NC]");
 902     }
 903   }
 904   output()->put(')');
 905 }
 906 






 907 void InstructionPrinter::do_ProfileInvoke(ProfileInvoke* x) {
 908   output()->print("profile_invoke ");
 909   output()->print(" %s.%s", x->inlinee()->holder()->name()->as_utf8(), x->inlinee()->name()->as_utf8());
 910   output()->put(')');
 911 
 912 }
 913 
 914 void InstructionPrinter::do_RuntimeCall(RuntimeCall* x) {
 915   output()->print("call_rt %s(", x->entry_name());
 916   for (int i = 0; i < x->number_of_arguments(); i++) {
 917     if (i > 0) output()->print(", ");
 918     print_value(x->argument_at(i));
 919   }
 920   output()->put(')');
 921 }
 922 
 923 void InstructionPrinter::do_MemBar(MemBar* x) {
 924   if (os::is_MP()) {
 925     LIR_Code code = x->code();
 926     switch (code) {


 887 
 888 void InstructionPrinter::do_ProfileCall(ProfileCall* x) {
 889   output()->print("profile ");
 890   print_value(x->recv());
 891   output()->print(" %s.%s", x->method()->holder()->name()->as_utf8(), x->method()->name()->as_utf8());
 892   if (x->known_holder() != NULL) {
 893     output()->print(", ");
 894     print_klass(x->known_holder());
 895     output()->print(" ");
 896   }
 897   for (int i = 0; i < x->nb_profiled_args(); i++) {
 898     if (i > 0) output()->print(", ");
 899     print_value(x->profiled_arg_at(i));
 900     if (x->arg_needs_null_check(i)) {
 901       output()->print(" [NC]");
 902     }
 903   }
 904   output()->put(')');
 905 }
 906 
 907 void InstructionPrinter::do_ProfileReturnType(ProfileReturnType* x) {
 908   output()->print("profile ret type ");
 909   print_value(x->ret());
 910   output()->print(" %s.%s", x->method()->holder()->name()->as_utf8(), x->method()->name()->as_utf8());
 911   output()->put(')');
 912 }
 913 void InstructionPrinter::do_ProfileInvoke(ProfileInvoke* x) {
 914   output()->print("profile_invoke ");
 915   output()->print(" %s.%s", x->inlinee()->holder()->name()->as_utf8(), x->inlinee()->name()->as_utf8());
 916   output()->put(')');
 917 
 918 }
 919 
 920 void InstructionPrinter::do_RuntimeCall(RuntimeCall* x) {
 921   output()->print("call_rt %s(", x->entry_name());
 922   for (int i = 0; i < x->number_of_arguments(); i++) {
 923     if (i > 0) output()->print(", ");
 924     print_value(x->argument_at(i));
 925   }
 926   output()->put(')');
 927 }
 928 
 929 void InstructionPrinter::do_MemBar(MemBar* x) {
 930   if (os::is_MP()) {
 931     LIR_Code code = x->code();
 932     switch (code) {
src/share/vm/c1/c1_InstructionPrinter.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File