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