src/share/vm/opto/graphKit.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/opto

src/share/vm/opto/graphKit.hpp

Print this page
rev 6442 : 8026796: Make replace_in_map() on parent maps generic
Summary: propagate node replacements along control flow edges to callers
Reviewed-by:


 673   void set_edges_for_java_call(CallJavaNode* call,
 674                                bool must_throw = false, bool separate_io_proj = false);
 675 
 676   // Finish up a java call that was started by set_edges_for_java_call.
 677   // Call add_exception on any throw arising from the call.
 678   // Return the call result (transformed).
 679   Node* set_results_for_java_call(CallJavaNode* call, bool separate_io_proj = false);
 680 
 681   // Similar to set_edges_for_java_call, but simplified for runtime calls.
 682   void  set_predefined_output_for_runtime_call(Node* call) {
 683     set_predefined_output_for_runtime_call(call, NULL, NULL);
 684   }
 685   void  set_predefined_output_for_runtime_call(Node* call,
 686                                                Node* keep_mem,
 687                                                const TypePtr* hook_mem);
 688   Node* set_predefined_input_for_runtime_call(SafePointNode* call);
 689 
 690   // Replace the call with the current state of the kit.  Requires
 691   // that the call was generated with separate io_projs so that
 692   // exceptional control flow can be handled properly.
 693   void replace_call(CallNode* call, Node* result);
 694 
 695   // helper functions for statistics
 696   void increment_counter(address counter_addr);   // increment a debug counter
 697   void increment_counter(Node*   counter_addr);   // increment a debug counter
 698 
 699   // Bail out to the interpreter right now
 700   // The optional klass is the one causing the trap.
 701   // The optional reason is debug information written to the compile log.
 702   // Optional must_throw is the same as with add_safepoint_edges.
 703   void uncommon_trap(int trap_request,
 704                      ciKlass* klass = NULL, const char* reason_string = NULL,
 705                      bool must_throw = false, bool keep_exact_action = false);
 706 
 707   // Shorthand, to avoid saying "Deoptimization::" so many times.
 708   void uncommon_trap(Deoptimization::DeoptReason reason,
 709                      Deoptimization::DeoptAction action,
 710                      ciKlass* klass = NULL, const char* reason_string = NULL,
 711                      bool must_throw = false, bool keep_exact_action = false) {
 712     uncommon_trap(Deoptimization::make_trap_request(reason, action),
 713                   klass, reason_string, must_throw, keep_exact_action);




 673   void set_edges_for_java_call(CallJavaNode* call,
 674                                bool must_throw = false, bool separate_io_proj = false);
 675 
 676   // Finish up a java call that was started by set_edges_for_java_call.
 677   // Call add_exception on any throw arising from the call.
 678   // Return the call result (transformed).
 679   Node* set_results_for_java_call(CallJavaNode* call, bool separate_io_proj = false);
 680 
 681   // Similar to set_edges_for_java_call, but simplified for runtime calls.
 682   void  set_predefined_output_for_runtime_call(Node* call) {
 683     set_predefined_output_for_runtime_call(call, NULL, NULL);
 684   }
 685   void  set_predefined_output_for_runtime_call(Node* call,
 686                                                Node* keep_mem,
 687                                                const TypePtr* hook_mem);
 688   Node* set_predefined_input_for_runtime_call(SafePointNode* call);
 689 
 690   // Replace the call with the current state of the kit.  Requires
 691   // that the call was generated with separate io_projs so that
 692   // exceptional control flow can be handled properly.
 693   void replace_call(CallNode* call, Node* result, bool do_replaced_nodes = false);
 694 
 695   // helper functions for statistics
 696   void increment_counter(address counter_addr);   // increment a debug counter
 697   void increment_counter(Node*   counter_addr);   // increment a debug counter
 698 
 699   // Bail out to the interpreter right now
 700   // The optional klass is the one causing the trap.
 701   // The optional reason is debug information written to the compile log.
 702   // Optional must_throw is the same as with add_safepoint_edges.
 703   void uncommon_trap(int trap_request,
 704                      ciKlass* klass = NULL, const char* reason_string = NULL,
 705                      bool must_throw = false, bool keep_exact_action = false);
 706 
 707   // Shorthand, to avoid saying "Deoptimization::" so many times.
 708   void uncommon_trap(Deoptimization::DeoptReason reason,
 709                      Deoptimization::DeoptAction action,
 710                      ciKlass* klass = NULL, const char* reason_string = NULL,
 711                      bool must_throw = false, bool keep_exact_action = false) {
 712     uncommon_trap(Deoptimization::make_trap_request(reason, action),
 713                   klass, reason_string, must_throw, keep_exact_action);


src/share/vm/opto/graphKit.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File