comparison src/share/vm/opto/compile.cpp @ 244:524eca34ea76

6684714: Optimize EA Connection Graph build performance Summary: switch on EA by default, optimize Connection Graph construction Reviewed-by: rasbold, never
author kvn
date Thu, 03 Jul 2008 18:02:47 -0700
parents 1dd146f17531
children 4a4c365f777d
comparison
equal deleted inserted replaced
231:72c3e8693c9a 244:524eca34ea76
581 581
582 if (failing()) return; 582 if (failing()) return;
583 NOT_PRODUCT( verify_graph_edges(); ) 583 NOT_PRODUCT( verify_graph_edges(); )
584 584
585 // Perform escape analysis 585 // Perform escape analysis
586 if (_do_escape_analysis) 586 if (_do_escape_analysis && ConnectionGraph::has_candidates(this)) {
587 _congraph = new ConnectionGraph(this); 587 TracePhase t2("escapeAnalysis", &_t_escapeAnalysis, true);
588 if (_congraph != NULL) { 588
589 NOT_PRODUCT( TracePhase t2("escapeAnalysis", &_t_escapeAnalysis, TimeCompiler); ) 589 _congraph = new(comp_arena()) ConnectionGraph(this);
590 _congraph->compute_escape(); 590 bool has_non_escaping_obj = _congraph->compute_escape();
591 if (failing()) return;
592 591
593 #ifndef PRODUCT 592 #ifndef PRODUCT
594 if (PrintEscapeAnalysis) { 593 if (PrintEscapeAnalysis) {
595 _congraph->dump(); 594 _congraph->dump();
596 } 595 }
597 #endif 596 #endif
597 if (!has_non_escaping_obj) {
598 _congraph = NULL;
599 }
600
601 if (failing()) return;
598 } 602 }
599 // Now optimize 603 // Now optimize
600 Optimize(); 604 Optimize();
601 if (failing()) return; 605 if (failing()) return;
602 NOT_PRODUCT( verify_graph_edges(); ) 606 NOT_PRODUCT( verify_graph_edges(); )