<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi,<br>
    <br>
    Please review.<br>
    <br>
    The test runtime/Metaspace/FragmentMetaspace.java triggered an
    assert (<span style="color: rgb(51, 51, 51); font-size: 14px;
      font-style: normal; font-variant-ligatures: normal;
      font-variant-caps: normal; font-weight: normal; letter-spacing:
      normal; text-align: start; text-indent: 0px; text-transform: none;
      white-space: normal; word-spacing: 0px; background-color: rgb(255,
      255, 255); display: inline ! important; float: none;">assert(i
      < _max) failed: oob: i=1, _max=1</span>) when Node::dominates
    reads in[] out of bounds on a empty region node.<br>
    <br>
    The empty region node is created by split_if. Split_if tries to
    simplify compares on a constant and a phi, where the phi has at
    least one constant on an in edge. In this case the opportunity for
    optimization is identified, and a phi and accompanying region node
    is created for all remaining in-edges that aren't matching the
    constant. But here all the in-edges to the phi matches the constant,
    and no edge will be split out, leaving the new nodes without
    in-edges. Much later in the optimization phase the empty region node
    will trigger the assert.<br>
    <br>
    Solution:<br>
    Abort split_if when all in-edges are the same constant - this is
    already the desired state. It will be folded later.<br>
    <br>
    <a class="moz-txt-link-freetext" href="https://bugs.openjdk.java.net/browse/JDK-8164954">https://bugs.openjdk.java.net/browse/JDK-8164954</a><br>
    <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~neliasso/8164954/webrev/">http://cr.openjdk.java.net/~neliasso/8164954/webrev/</a><br>
    <br>
    A big thank you to Richard B├Ąckman that helped me track this bug
    down.<br>
    <br>
    Regards,<br>
    Nils <br>
  </body>
</html>