comparison src/share/vm/opto/compile.cpp @ 7605:5b8548391bf3

8005821: C2: -XX:+PrintIntrinsics is broken Summary: Check all print inlining flags when processing inlining list. Reviewed-by: kvn, twisti Contributed-by: david.r.chase@oracle.com
author kvn
date Tue, 15 Jan 2013 14:45:12 -0800
parents d092d1b31229
children 8b3da8d14c93
comparison
equal deleted inserted replaced
7604:f1de9dbc914e 7605:5b8548391bf3
690 uint estimated_size = method()->code_size()*4+64; 690 uint estimated_size = method()->code_size()*4+64;
691 estimated_size = (estimated_size < MINIMUM_NODE_HASH ? MINIMUM_NODE_HASH : estimated_size); 691 estimated_size = (estimated_size < MINIMUM_NODE_HASH ? MINIMUM_NODE_HASH : estimated_size);
692 PhaseGVN gvn(node_arena(), estimated_size); 692 PhaseGVN gvn(node_arena(), estimated_size);
693 set_initial_gvn(&gvn); 693 set_initial_gvn(&gvn);
694 694
695 if (PrintInlining) { 695 if (PrintInlining || PrintIntrinsics NOT_PRODUCT( || PrintOptoInlining)) {
696 _print_inlining_list = new (comp_arena())GrowableArray<PrintInliningBuffer>(comp_arena(), 1, 1, PrintInliningBuffer()); 696 _print_inlining_list = new (comp_arena())GrowableArray<PrintInliningBuffer>(comp_arena(), 1, 1, PrintInliningBuffer());
697 } 697 }
698 { // Scope for timing the parser 698 { // Scope for timing the parser
699 TracePhase t3("parse", &_t_parser, true); 699 TracePhase t3("parse", &_t_parser, true);
700 700
2047 } 2047 }
2048 } 2048 }
2049 2049
2050 } // (End scope of igvn; run destructor if necessary for asserts.) 2050 } // (End scope of igvn; run destructor if necessary for asserts.)
2051 2051
2052 dump_inlining(); 2052 dump_inlining();
2053 // A method with only infinite loops has no edges entering loops from root 2053 // A method with only infinite loops has no edges entering loops from root
2054 { 2054 {
2055 NOT_PRODUCT( TracePhase t2("graphReshape", &_t_graphReshaping, TimeCompiler); ) 2055 NOT_PRODUCT( TracePhase t2("graphReshape", &_t_graphReshaping, TimeCompiler); )
2056 if (final_graph_reshaping()) { 2056 if (final_graph_reshaping()) {
2057 assert(failing(), "must bail out w/ explicit message"); 2057 assert(failing(), "must bail out w/ explicit message");
3495 cb.consts()->relocate((address) constant_addr, relocInfo::internal_word_type); 3495 cb.consts()->relocate((address) constant_addr, relocInfo::internal_word_type);
3496 } 3496 }
3497 } 3497 }
3498 3498
3499 void Compile::dump_inlining() { 3499 void Compile::dump_inlining() {
3500 if (PrintInlining) { 3500 if (PrintInlining || PrintIntrinsics NOT_PRODUCT( || PrintOptoInlining)) {
3501 // Print inlining message for candidates that we couldn't inline 3501 // Print inlining message for candidates that we couldn't inline
3502 // for lack of space or non constant receiver 3502 // for lack of space or non constant receiver
3503 for (int i = 0; i < _late_inlines.length(); i++) { 3503 for (int i = 0; i < _late_inlines.length(); i++) {
3504 CallGenerator* cg = _late_inlines.at(i); 3504 CallGenerator* cg = _late_inlines.at(i);
3505 cg->print_inlining_late("live nodes > LiveNodeCountInliningCutoff"); 3505 cg->print_inlining_late("live nodes > LiveNodeCountInliningCutoff");