src/share/vm/opto/cfgnode.cpp

changeset 561
72f4a668df19
parent 548
ba764ed4b6f2
child 562
e0bd2e08e3d0
     1.1 --- a/src/share/vm/opto/cfgnode.cpp	Wed Apr 23 13:57:14 2008 -0700
     1.2 +++ b/src/share/vm/opto/cfgnode.cpp	Wed Apr 23 19:09:16 2008 -0700
     1.3 @@ -1419,7 +1419,8 @@
     1.4      // Check inputs of phi's inputs also.
     1.5      // It is much less expensive then full graph walk.
     1.6      uint cnt = in->req();
     1.7 -    for (uint i = 1; i < cnt; ++i) {
     1.8 +    uint i = (in->is_Proj() && !in->is_CFG())  ? 0 : 1;
     1.9 +    for (; i < cnt; ++i) {
    1.10        Node* m = in->in(i);
    1.11        if (m == (Node*)this)
    1.12          return UnsafeLoop; // Unsafe loop
    1.13 @@ -1467,7 +1468,8 @@
    1.14    while (nstack.size() != 0) {
    1.15      Node* n = nstack.pop();
    1.16      uint cnt = n->req();
    1.17 -    for (uint i = 1; i < cnt; i++) { // Only data paths
    1.18 +    uint i = (n->is_Proj() && !n->is_CFG()) ? 0 : 1;
    1.19 +    for (; i < cnt; i++) {
    1.20        Node* m = n->in(i);
    1.21        if (m == (Node*)this) {
    1.22          return true;    // Data loop

mercurial