Mercurial > hg > truffle
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 |