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);
|