comparison src/share/vm/opto/compile.cpp @ 4115:1bd45abaa507

6890673: Eliminate allocations immediately after EA Summary: Try to eliminate allocations and related locks immediately after escape analysis. Reviewed-by: never
author kvn
date Wed, 16 Nov 2011 09:13:57 -0800
parents 6729bbc1fcd6
children 669f6a7d5b70
comparison
equal deleted inserted replaced
4114:6729bbc1fcd6 4115:1bd45abaa507
1709 TracePhase t2("escapeAnalysis", &_t_escapeAnalysis, true); 1709 TracePhase t2("escapeAnalysis", &_t_escapeAnalysis, true);
1710 ConnectionGraph::do_analysis(this, &igvn); 1710 ConnectionGraph::do_analysis(this, &igvn);
1711 1711
1712 if (failing()) return; 1712 if (failing()) return;
1713 1713
1714 // Optimize out fields loads from scalar replaceable allocations.
1714 igvn.optimize(); 1715 igvn.optimize();
1715 print_method("Iter GVN after EA", 2); 1716 print_method("Iter GVN after EA", 2);
1716 1717
1717 if (failing()) return; 1718 if (failing()) return;
1718 1719
1720 if (congraph() != NULL && macro_count() > 0) {
1721 PhaseMacroExpand mexp(igvn);
1722 mexp.eliminate_macro_nodes();
1723 igvn.set_delay_transform(false);
1724
1725 igvn.optimize();
1726 print_method("Iter GVN after eliminating allocations and locks", 2);
1727
1728 if (failing()) return;
1729 }
1719 } 1730 }
1720 1731
1721 // Loop transforms on the ideal graph. Range Check Elimination, 1732 // Loop transforms on the ideal graph. Range Check Elimination,
1722 // peeling, unrolling, etc. 1733 // peeling, unrolling, etc.
1723 1734