Mercurial > hg > truffle
comparison src/share/vm/opto/compile.cpp @ 5948:ee138854b3a6
7147744: CTW: assert(false) failed: infinite EA connection graph build
Summary: rewrote Connection graph construction code in EA to reduce time spent there.
Reviewed-by: never
author | kvn |
---|---|
date | Mon, 12 Mar 2012 10:46:47 -0700 |
parents | d12a66fa3820 |
children | dbd21c7c833f |
comparison
equal
deleted
inserted
replaced
5933:fde683df4c27 | 5948:ee138854b3a6 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | 4 * |
5 * This code is free software; you can redistribute it and/or modify it | 5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as | 6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
1705 TracePhase t2("idealLoop", &_t_idealLoop, true); | 1705 TracePhase t2("idealLoop", &_t_idealLoop, true); |
1706 PhaseIdealLoop ideal_loop( igvn, false, true ); | 1706 PhaseIdealLoop ideal_loop( igvn, false, true ); |
1707 if (major_progress()) print_method("PhaseIdealLoop before EA", 2); | 1707 if (major_progress()) print_method("PhaseIdealLoop before EA", 2); |
1708 if (failing()) return; | 1708 if (failing()) return; |
1709 } | 1709 } |
1710 TracePhase t2("escapeAnalysis", &_t_escapeAnalysis, true); | |
1711 ConnectionGraph::do_analysis(this, &igvn); | 1710 ConnectionGraph::do_analysis(this, &igvn); |
1712 | 1711 |
1713 if (failing()) return; | 1712 if (failing()) return; |
1714 | 1713 |
1715 // Optimize out fields loads from scalar replaceable allocations. | 1714 // Optimize out fields loads from scalar replaceable allocations. |
1717 print_method("Iter GVN after EA", 2); | 1716 print_method("Iter GVN after EA", 2); |
1718 | 1717 |
1719 if (failing()) return; | 1718 if (failing()) return; |
1720 | 1719 |
1721 if (congraph() != NULL && macro_count() > 0) { | 1720 if (congraph() != NULL && macro_count() > 0) { |
1721 NOT_PRODUCT( TracePhase t2("macroEliminate", &_t_macroEliminate, TimeCompiler); ) | |
1722 PhaseMacroExpand mexp(igvn); | 1722 PhaseMacroExpand mexp(igvn); |
1723 mexp.eliminate_macro_nodes(); | 1723 mexp.eliminate_macro_nodes(); |
1724 igvn.set_delay_transform(false); | 1724 igvn.set_delay_transform(false); |
1725 | 1725 |
1726 igvn.optimize(); | 1726 igvn.optimize(); |