comparison src/share/vm/opto/compile.hpp @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents abec000618bf
children 52b4284cb496
comparison
equal deleted inserted replaced
14908:8db6e76cb658 14909:4ca6dc0799b6
429 void remove_speculative_types(PhaseIterGVN &igvn); 429 void remove_speculative_types(PhaseIterGVN &igvn);
430 430
431 // Are we within a PreserveJVMState block? 431 // Are we within a PreserveJVMState block?
432 int _preserve_jvm_state; 432 int _preserve_jvm_state;
433 433
434 void* _replay_inline_data; // Pointer to data loaded from file
435
436 public: 434 public:
437 435
438 outputStream* print_inlining_stream() const { 436 outputStream* print_inlining_stream() const {
439 return _print_inlining_list->adr_at(_print_inlining_idx)->ss(); 437 return _print_inlining_list->adr_at(_print_inlining_idx)->ss();
440 } 438 }
464 void print_inlining(ciMethod* method, int inline_level, int bci, const char* msg = NULL) { 462 void print_inlining(ciMethod* method, int inline_level, int bci, const char* msg = NULL) {
465 stringStream ss; 463 stringStream ss;
466 CompileTask::print_inlining(&ss, method, inline_level, bci, msg); 464 CompileTask::print_inlining(&ss, method, inline_level, bci, msg);
467 print_inlining_stream()->print(ss.as_string()); 465 print_inlining_stream()->print(ss.as_string());
468 } 466 }
469
470 void* replay_inline_data() const { return _replay_inline_data; }
471
472 // Dump inlining replay data to the stream.
473 void dump_inline_data(outputStream* out);
474 467
475 private: 468 private:
476 // Matching, CFG layout, allocation, code generation 469 // Matching, CFG layout, allocation, code generation
477 PhaseCFG* _cfg; // Results of CFG finding 470 PhaseCFG* _cfg; // Results of CFG finding
478 bool _select_24_bit_instr; // We selected an instruction with a 24-bit result 471 bool _select_24_bit_instr; // We selected an instruction with a 24-bit result
597 } 590 }
598 #ifndef PRODUCT 591 #ifndef PRODUCT
599 bool trace_opto_output() const { return _trace_opto_output; } 592 bool trace_opto_output() const { return _trace_opto_output; }
600 bool parsed_irreducible_loop() const { return _parsed_irreducible_loop; } 593 bool parsed_irreducible_loop() const { return _parsed_irreducible_loop; }
601 void set_parsed_irreducible_loop(bool z) { _parsed_irreducible_loop = z; } 594 void set_parsed_irreducible_loop(bool z) { _parsed_irreducible_loop = z; }
602 int _in_dump_cnt; // Required for dumping ir nodes.
603 #endif 595 #endif
604 596
605 // JSR 292 597 // JSR 292
606 bool has_method_handle_invokes() const { return _has_method_handle_invokes; } 598 bool has_method_handle_invokes() const { return _has_method_handle_invokes; }
607 void set_has_method_handle_invokes(bool z) { _has_method_handle_invokes = z; } 599 void set_has_method_handle_invokes(bool z) { _has_method_handle_invokes = z; }
763 // Constant table 755 // Constant table
764 ConstantTable& constant_table() { return _constant_table; } 756 ConstantTable& constant_table() { return _constant_table; }
765 757
766 MachConstantBaseNode* mach_constant_base_node(); 758 MachConstantBaseNode* mach_constant_base_node();
767 bool has_mach_constant_base_node() const { return _mach_constant_base_node != NULL; } 759 bool has_mach_constant_base_node() const { return _mach_constant_base_node != NULL; }
768 // Generated by adlc, true if CallNode requires MachConstantBase.
769 bool needs_clone_jvms();
770 760
771 // Handy undefined Node 761 // Handy undefined Node
772 Node* top() const { return _top; } 762 Node* top() const { return _top; }
773 763
774 // these are used by guys who need to know about creation and transformation of top: 764 // these are used by guys who need to know about creation and transformation of top:
861 bool too_many_traps(Deoptimization::DeoptReason reason, 851 bool too_many_traps(Deoptimization::DeoptReason reason,
862 // Privately used parameter for logging: 852 // Privately used parameter for logging:
863 ciMethodData* logmd = NULL); 853 ciMethodData* logmd = NULL);
864 // Report if there were too many recompiles at a method and bci. 854 // Report if there were too many recompiles at a method and bci.
865 bool too_many_recompiles(ciMethod* method, int bci, Deoptimization::DeoptReason reason); 855 bool too_many_recompiles(ciMethod* method, int bci, Deoptimization::DeoptReason reason);
866 // Return a bitset with the reasons where deoptimization is allowed,
867 // i.e., where there were not too many uncommon traps.
868 int _allowed_reasons;
869 int allowed_deopt_reasons() { return _allowed_reasons; }
870 void set_allowed_deopt_reasons();
871 856
872 // Parsing, optimization 857 // Parsing, optimization
873 PhaseGVN* initial_gvn() { return _initial_gvn; } 858 PhaseGVN* initial_gvn() { return _initial_gvn; }
874 Unique_Node_List* for_igvn() { return _for_igvn; } 859 Unique_Node_List* for_igvn() { return _for_igvn; }
875 inline void record_for_igvn(Node* n); // Body is after class Unique_Node_List. 860 inline void record_for_igvn(Node* n); // Body is after class Unique_Node_List.