Mercurial > hg > truffle
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. |