src/share/vm/opto/loopnode.cpp

changeset 8895
8a06805fcf5d
parent 8612
74370eafeae9
child 9041
95a08233f46c
child 9910
4373df7c4a92
     1.1 --- a/src/share/vm/opto/loopnode.cpp	Thu Sep 07 09:17:43 2017 -0400
     1.2 +++ b/src/share/vm/opto/loopnode.cpp	Thu Sep 07 09:21:05 2017 -0400
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1998, 2017, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -1773,6 +1773,12 @@
    1.11      Node *init2 = phi2->in( LoopNode::EntryControl );
    1.12      int stride_con2 = incr2->in(2)->get_int();
    1.13  
    1.14 +    // The ratio of the two strides cannot be represented as an int
    1.15 +    // if stride_con2 is min_int and stride_con is -1.
    1.16 +    if (stride_con2 == min_jint && stride_con == -1) {
    1.17 +      continue;
    1.18 +    }
    1.19 +
    1.20      // The general case here gets a little tricky.  We want to find the
    1.21      // GCD of all possible parallel IV's and make a new IV using this
    1.22      // GCD for the loop.  Then all possible IVs are simple multiples of

mercurial