< prev index next >

src/share/vm/opto/compile.hpp

Print this page




 932     _late_inlines.insert_before(0, cg);
 933   }
 934 
 935   void              add_string_late_inline(CallGenerator* cg) {
 936     _string_late_inlines.push(cg);
 937   }
 938 
 939   void              add_boxing_late_inline(CallGenerator* cg) {
 940     _boxing_late_inlines.push(cg);
 941   }
 942 
 943   void remove_useless_late_inlines(GrowableArray<CallGenerator*>* inlines, Unique_Node_List &useful);
 944 
 945   void process_print_inlining();
 946   void dump_print_inlining();
 947 
 948   bool over_inlining_cutoff() const {
 949     if (!inlining_incrementally()) {
 950       return unique() > (uint)NodeCountInliningCutoff;
 951     } else {
 952       return live_nodes() > (uint)LiveNodeCountInliningCutoff;




 953     }
 954   }
 955 
 956   void inc_number_of_mh_late_inlines() { _number_of_mh_late_inlines++; }
 957   void dec_number_of_mh_late_inlines() { assert(_number_of_mh_late_inlines > 0, "_number_of_mh_late_inlines < 0 !"); _number_of_mh_late_inlines--; }
 958   bool has_mh_late_inlines() const     { return _number_of_mh_late_inlines > 0; }
 959 
 960   void inline_incrementally_one(PhaseIterGVN& igvn);
 961   void inline_incrementally(PhaseIterGVN& igvn);
 962   void inline_string_calls(bool parse_time);
 963   void inline_boxing_calls(PhaseIterGVN& igvn);
 964 
 965   // Matching, CFG layout, allocation, code generation
 966   PhaseCFG*         cfg()                       { return _cfg; }
 967   bool              select_24_bit_instr() const { return _select_24_bit_instr; }
 968   bool              in_24_bit_fp_mode() const   { return _in_24_bit_fp_mode; }
 969   bool              has_java_calls() const      { return _java_calls > 0; }
 970   int               java_calls() const          { return _java_calls; }
 971   int               inner_loops() const         { return _inner_loops; }
 972   Matcher*          matcher()                   { return _matcher; }
 973   PhaseRegAlloc*    regalloc()                  { return _regalloc; }
 974   int               frame_slots() const         { return _frame_slots; }
 975   int               frame_size_in_words() const; // frame_slots in units of the polymorphic 'words'
 976   int               frame_size_in_bytes() const { return _frame_slots << LogBytesPerInt; }
 977   RegMask&          FIRST_STACK_mask()          { return _FIRST_STACK_mask; }
 978   Arena*            indexSet_arena()            { return _indexSet_arena; }
 979   void*             indexSet_free_block_list()  { return _indexSet_free_block_list; }
 980   uint              node_bundling_limit()       { return _node_bundling_limit; }




 932     _late_inlines.insert_before(0, cg);
 933   }
 934 
 935   void              add_string_late_inline(CallGenerator* cg) {
 936     _string_late_inlines.push(cg);
 937   }
 938 
 939   void              add_boxing_late_inline(CallGenerator* cg) {
 940     _boxing_late_inlines.push(cg);
 941   }
 942 
 943   void remove_useless_late_inlines(GrowableArray<CallGenerator*>* inlines, Unique_Node_List &useful);
 944 
 945   void process_print_inlining();
 946   void dump_print_inlining();
 947 
 948   bool over_inlining_cutoff() const {
 949     if (!inlining_incrementally()) {
 950       return unique() > (uint)NodeCountInliningCutoff;
 951     } else {
 952       // Give some room for incremental inlining algorithm to "breathe"
 953       // and avoid thrashing when live node count is close to the limit.
 954       // Keep in mind that live_nodes() isn't accurate during inlining until
 955       // dead node elimination step happens (see Compile::inline_incrementally).
 956       return live_nodes() > (uint)LiveNodeCountInliningCutoff * 11 / 10;
 957     }
 958   }
 959 
 960   void inc_number_of_mh_late_inlines() { _number_of_mh_late_inlines++; }
 961   void dec_number_of_mh_late_inlines() { assert(_number_of_mh_late_inlines > 0, "_number_of_mh_late_inlines < 0 !"); _number_of_mh_late_inlines--; }
 962   bool has_mh_late_inlines() const     { return _number_of_mh_late_inlines > 0; }
 963 
 964   void inline_incrementally_one();
 965   void inline_incrementally(PhaseIterGVN& igvn);
 966   void inline_string_calls(bool parse_time);
 967   void inline_boxing_calls(PhaseIterGVN& igvn);
 968 
 969   // Matching, CFG layout, allocation, code generation
 970   PhaseCFG*         cfg()                       { return _cfg; }
 971   bool              select_24_bit_instr() const { return _select_24_bit_instr; }
 972   bool              in_24_bit_fp_mode() const   { return _in_24_bit_fp_mode; }
 973   bool              has_java_calls() const      { return _java_calls > 0; }
 974   int               java_calls() const          { return _java_calls; }
 975   int               inner_loops() const         { return _inner_loops; }
 976   Matcher*          matcher()                   { return _matcher; }
 977   PhaseRegAlloc*    regalloc()                  { return _regalloc; }
 978   int               frame_slots() const         { return _frame_slots; }
 979   int               frame_size_in_words() const; // frame_slots in units of the polymorphic 'words'
 980   int               frame_size_in_bytes() const { return _frame_slots << LogBytesPerInt; }
 981   RegMask&          FIRST_STACK_mask()          { return _FIRST_STACK_mask; }
 982   Arena*            indexSet_arena()            { return _indexSet_arena; }
 983   void*             indexSet_free_block_list()  { return _indexSet_free_block_list; }
 984   uint              node_bundling_limit()       { return _node_bundling_limit; }


< prev index next >