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();