comparison src/share/vm/opto/matcher.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 603ca7e51354
children ac91879aa56f
comparison
equal deleted inserted replaced
10997:46c544b8fbfc 10999:693e4d04fd09
1 /* 1 /*
2 * Copyright (c) 1997, 2012, 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.
983 // Use one stack to keep both: child's node/state and parent's node/index 983 // Use one stack to keep both: child's node/state and parent's node/index
984 MStack mstack(max_stack * 2 * 2); // C->unique() * 2 * 2 984 MStack mstack(max_stack * 2 * 2); // C->unique() * 2 * 2
985 mstack.push(n, Visit, NULL, -1); // set NULL as parent to indicate root 985 mstack.push(n, Visit, NULL, -1); // set NULL as parent to indicate root
986 986
987 while (mstack.is_nonempty()) { 987 while (mstack.is_nonempty()) {
988 C->check_node_count(NodeLimitFudgeFactor, "too many nodes matching instructions");
989 if (C->failing()) return NULL;
988 n = mstack.node(); // Leave node on stack 990 n = mstack.node(); // Leave node on stack
989 Node_State nstate = mstack.state(); 991 Node_State nstate = mstack.state();
990 if (nstate == Visit) { 992 if (nstate == Visit) {
991 mstack.set_state(Post_Visit); 993 mstack.set_state(Post_Visit);
992 Node *oldn = n; 994 Node *oldn = n;