equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2018, 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. |
1821 if (mms.is_empty() && nophi) { |
1821 if (mms.is_empty() && nophi) { |
1822 // Trouble: No new splits allowed after a loop body is parsed. |
1822 // Trouble: No new splits allowed after a loop body is parsed. |
1823 // Instead, wire the new split into a MergeMem on the backedge. |
1823 // Instead, wire the new split into a MergeMem on the backedge. |
1824 // The optimizer will sort it out, slicing the phi. |
1824 // The optimizer will sort it out, slicing the phi. |
1825 if (remerge == NULL) { |
1825 if (remerge == NULL) { |
1826 assert(base != NULL, ""); |
1826 guarantee(base != NULL, ""); |
1827 assert(base->in(0) != NULL, "should not be xformed away"); |
1827 assert(base->in(0) != NULL, "should not be xformed away"); |
1828 remerge = MergeMemNode::make(base->in(pnum)); |
1828 remerge = MergeMemNode::make(base->in(pnum)); |
1829 gvn().set_type(remerge, Type::MEMORY); |
1829 gvn().set_type(remerge, Type::MEMORY); |
1830 base->set_req(pnum, remerge); |
1830 base->set_req(pnum, remerge); |
1831 } |
1831 } |