comparison src/share/vm/opto/coalesce.cpp @ 10999:693e4d04fd09

8014959: assert(Compile::current()->live_nodes() < (uint)MaxNodeLimit) failed: Live Node limit exceeded limit Summary: Insert extra checks and bailouts for too many nodes Reviewed-by: kvn
author drchase
date Tue, 11 Jun 2013 16:34:34 -0400
parents 8373c19be854
children d1034bd8cefc
comparison
equal deleted inserted replaced
10997:46c544b8fbfc 10999:693e4d04fd09
1 /* 1 /*
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 1997, 2013, 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.
238 // All new nodes added are actual copies to replace virtual copies. 238 // All new nodes added are actual copies to replace virtual copies.
239 // Nodes with index less than '_unique' are original, non-virtual Nodes. 239 // Nodes with index less than '_unique' are original, non-virtual Nodes.
240 _unique = C->unique(); 240 _unique = C->unique();
241 241
242 for( uint i=0; i<_phc._cfg._num_blocks; i++ ) { 242 for( uint i=0; i<_phc._cfg._num_blocks; i++ ) {
243 C->check_node_count(NodeLimitFudgeFactor, "out of nodes in coalesce");
244 if (C->failing()) return;
243 Block *b = _phc._cfg._blocks[i]; 245 Block *b = _phc._cfg._blocks[i];
244 uint cnt = b->num_preds(); // Number of inputs to the Phi 246 uint cnt = b->num_preds(); // Number of inputs to the Phi
245 247
246 for( uint l = 1; l<b->_nodes.size(); l++ ) { 248 for( uint l = 1; l<b->_nodes.size(); l++ ) {
247 Node *n = b->_nodes[l]; 249 Node *n = b->_nodes[l];