Mercurial > hg > graal-compiler
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(); ) |