Mercurial > hg > graal-compiler
comparison src/share/vm/opto/compile.hpp @ 20671:9e69e8d1c900
8058148: MaxNodeLimit and LiveNodeCountInliningCutoff
Reviewed-by: kvn, roland
author | vlivanov |
---|---|
date | Mon, 24 Nov 2014 07:29:03 -0800 |
parents | 119875f0fc67 |
children | 7848fc12602b |
comparison
equal
deleted
inserted
replaced
20670:6a528388c7da | 20671:9e69e8d1c900 |
---|---|
288 int _num_loop_opts; // Number of iterations for doing loop optimiztions | 288 int _num_loop_opts; // Number of iterations for doing loop optimiztions |
289 int _max_inline_size; // Max inline size for this compilation | 289 int _max_inline_size; // Max inline size for this compilation |
290 int _freq_inline_size; // Max hot method inline size for this compilation | 290 int _freq_inline_size; // Max hot method inline size for this compilation |
291 int _fixed_slots; // count of frame slots not allocated by the register | 291 int _fixed_slots; // count of frame slots not allocated by the register |
292 // allocator i.e. locks, original deopt pc, etc. | 292 // allocator i.e. locks, original deopt pc, etc. |
293 uintx _max_node_limit; // Max unique node count during a single compilation. | |
293 // For deopt | 294 // For deopt |
294 int _orig_pc_slot; | 295 int _orig_pc_slot; |
295 int _orig_pc_slot_offset_in_bytes; | 296 int _orig_pc_slot_offset_in_bytes; |
296 | 297 |
297 int _major_progress; // Count of something big happening | 298 int _major_progress; // Count of something big happening |
592 void set_print_intrinsics(bool z) { _print_intrinsics = z; } | 593 void set_print_intrinsics(bool z) { _print_intrinsics = z; } |
593 RTMState rtm_state() const { return _rtm_state; } | 594 RTMState rtm_state() const { return _rtm_state; } |
594 void set_rtm_state(RTMState s) { _rtm_state = s; } | 595 void set_rtm_state(RTMState s) { _rtm_state = s; } |
595 bool use_rtm() const { return (_rtm_state & NoRTM) == 0; } | 596 bool use_rtm() const { return (_rtm_state & NoRTM) == 0; } |
596 bool profile_rtm() const { return _rtm_state == ProfileRTM; } | 597 bool profile_rtm() const { return _rtm_state == ProfileRTM; } |
598 uint max_node_limit() const { return (uint)_max_node_limit; } | |
599 void set_max_node_limit(uint n) { _max_node_limit = n; } | |
600 | |
597 // check the CompilerOracle for special behaviours for this compile | 601 // check the CompilerOracle for special behaviours for this compile |
598 bool method_has_option(const char * option) { | 602 bool method_has_option(const char * option) { |
599 return method() != NULL && method()->has_option(option); | 603 return method() != NULL && method()->has_option(option); |
600 } | 604 } |
601 template<typename T> | 605 template<typename T> |
721 } | 725 } |
722 void record_method_not_compilable_all_tiers(const char* reason) { | 726 void record_method_not_compilable_all_tiers(const char* reason) { |
723 record_method_not_compilable(reason, true); | 727 record_method_not_compilable(reason, true); |
724 } | 728 } |
725 bool check_node_count(uint margin, const char* reason) { | 729 bool check_node_count(uint margin, const char* reason) { |
726 if (live_nodes() + margin > (uint)MaxNodeLimit) { | 730 if (live_nodes() + margin > max_node_limit()) { |
727 record_method_not_compilable(reason); | 731 record_method_not_compilable(reason); |
728 return true; | 732 return true; |
729 } else { | 733 } else { |
730 return false; | 734 return false; |
731 } | 735 } |