src/share/vm/opto/compile.cpp

changeset 5988
435c7b4577cd
parent 5981
3213ba4d3dff
child 5991
b2ee5dc63353
     1.1 --- a/src/share/vm/opto/compile.cpp	Mon Oct 21 17:34:27 2013 -0700
     1.2 +++ b/src/share/vm/opto/compile.cpp	Mon Oct 21 15:31:16 2013 +0200
     1.3 @@ -3006,10 +3006,15 @@
     1.4        if (result != NULL) {
     1.5          for (DUIterator_Fast jmax, j = result->fast_outs(jmax); j < jmax; j++) {
     1.6            Node* out = result->fast_out(j);
     1.7 -          if (out->in(0) == NULL) {
     1.8 -            out->set_req(0, non_throwing);
     1.9 -          } else if (out->in(0) == ctrl) {
    1.10 -            out->set_req(0, non_throwing);
    1.11 +          // Phi nodes shouldn't be moved. They would only match below if they
    1.12 +          // had the same control as the MathExactNode. The only time that
    1.13 +          // would happen is if the Phi is also an input to the MathExact
    1.14 +          if (!out->is_Phi()) {
    1.15 +            if (out->in(0) == NULL) {
    1.16 +              out->set_req(0, non_throwing);
    1.17 +            } else if (out->in(0) == ctrl) {
    1.18 +              out->set_req(0, non_throwing);
    1.19 +            }
    1.20            }
    1.21          }
    1.22        }

mercurial