src/share/vm/opto/output.cpp

Print this page
rev 2893 : 7121756: Improve C1 inlining policy by using profiling at call sites
Summary: profile based recompilation of methods with C1 with more inlining.
Reviewed-by:


 927       OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node);
 928       Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg));
 929       while( !box_node->is_BoxLock() )  box_node = box_node->in(1);
 930       monarray->append(new MonitorValue(scval, basic_lock, box_node->as_BoxLock()->is_eliminated()));
 931     }
 932 
 933     // We dump the object pool first, since deoptimization reads it in first.
 934     debug_info()->dump_object_pool(objs);
 935 
 936     // Build first class objects to pass to scope
 937     DebugToken *locvals = debug_info()->create_scope_values(locarray);
 938     DebugToken *expvals = debug_info()->create_scope_values(exparray);
 939     DebugToken *monvals = debug_info()->create_monitor_values(monarray);
 940 
 941     // Make method available for all Safepoints
 942     ciMethod* scope_method = method ? method : _method;
 943     // Describe the scope here
 944     assert(jvms->bci() >= InvocationEntryBci && jvms->bci() <= 0x10000, "must be a valid or entry BCI");
 945     assert(!jvms->should_reexecute() || depth == max_depth, "reexecute allowed only for the youngest");
 946     // Now we can describe the scope.
 947     debug_info()->describe_scope(safepoint_pc_offset, scope_method, jvms->bci(), jvms->should_reexecute(), is_method_handle_invoke, return_oop, locvals, expvals, monvals);
 948   } // End jvms loop
 949 
 950   // Mark the end of the scope set.
 951   debug_info()->end_safepoint(safepoint_pc_offset);
 952 }
 953 
 954 
 955 
 956 // A simplified version of Process_OopMap_Node, to handle non-safepoints.
 957 class NonSafepointEmitter {
 958   Compile*  C;
 959   JVMState* _pending_jvms;
 960   int       _pending_offset;
 961 
 962   void emit_non_safepoint();
 963 
 964  public:
 965   NonSafepointEmitter(Compile* compile) {
 966     this->C = compile;
 967     _pending_jvms = NULL;




 927       OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node);
 928       Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg));
 929       while( !box_node->is_BoxLock() )  box_node = box_node->in(1);
 930       monarray->append(new MonitorValue(scval, basic_lock, box_node->as_BoxLock()->is_eliminated()));
 931     }
 932 
 933     // We dump the object pool first, since deoptimization reads it in first.
 934     debug_info()->dump_object_pool(objs);
 935 
 936     // Build first class objects to pass to scope
 937     DebugToken *locvals = debug_info()->create_scope_values(locarray);
 938     DebugToken *expvals = debug_info()->create_scope_values(exparray);
 939     DebugToken *monvals = debug_info()->create_monitor_values(monarray);
 940 
 941     // Make method available for all Safepoints
 942     ciMethod* scope_method = method ? method : _method;
 943     // Describe the scope here
 944     assert(jvms->bci() >= InvocationEntryBci && jvms->bci() <= 0x10000, "must be a valid or entry BCI");
 945     assert(!jvms->should_reexecute() || depth == max_depth, "reexecute allowed only for the youngest");
 946     // Now we can describe the scope.
 947     debug_info()->describe_scope(safepoint_pc_offset, scope_method, jvms->bci(), jvms->should_reexecute(), is_method_handle_invoke, false, return_oop, locvals, expvals, monvals);
 948   } // End jvms loop
 949 
 950   // Mark the end of the scope set.
 951   debug_info()->end_safepoint(safepoint_pc_offset);
 952 }
 953 
 954 
 955 
 956 // A simplified version of Process_OopMap_Node, to handle non-safepoints.
 957 class NonSafepointEmitter {
 958   Compile*  C;
 959   JVMState* _pending_jvms;
 960   int       _pending_offset;
 961 
 962   void emit_non_safepoint();
 963 
 964  public:
 965   NonSafepointEmitter(Compile* compile) {
 966     this->C = compile;
 967     _pending_jvms = NULL;