Mercurial > hg > graal-jvmci-8
changeset 22124:84d5125aa31a
Merge
author | Tom Rodriguez <tom.rodriguez@oracle.com> |
---|---|
date | Mon, 29 Jun 2015 10:49:31 -0700 |
parents | 9143e6b3c475 (diff) 62dc08c8b687 (current diff) |
children | 9f58c0d2bd5a |
files | |
diffstat | 4 files changed, 28 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java Mon Jun 29 18:38:47 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java Mon Jun 29 10:49:31 2015 -0700 @@ -523,6 +523,11 @@ @Override public boolean verify() { + if (virtualObjectMappingCount() > 0) { + for (EscapeObjectState state : virtualObjectMappings()) { + assertTrue(state != null, "must be non-null"); + } + } assertTrue(locksSize() == monitorIdCount(), "mismatch in number of locks"); for (ValueNode value : values) { assertTrue(value == null || !value.isDeleted(), "frame state must not contain deleted nodes");
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Mon Jun 29 18:38:47 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Mon Jun 29 10:49:31 2015 -0700 @@ -152,8 +152,18 @@ public static void killWithUnusedFloatingInputs(Node node) { node.safeDelete(); node.acceptInputs((n, in) -> { - if (in.isAlive() && in.hasNoUsages() && !(in instanceof FixedNode)) { - killWithUnusedFloatingInputs(in); + if (in.isAlive() && !(in instanceof FixedNode)) { + if (in.hasNoUsages()) { + killWithUnusedFloatingInputs(in); + } else if (in instanceof PhiNode) { + for (Node use : in.usages()) { + if (use != in) { + return; + } + } + in.replaceAtUsages(null); + killWithUnusedFloatingInputs(in); + } } }); }
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/CommitAllocationNode.java Mon Jun 29 18:38:47 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/CommitAllocationNode.java Mon Jun 29 10:49:31 2015 -0700 @@ -102,6 +102,11 @@ int valuePos = 0; for (int objIndex = 0; objIndex < virtualObjects.size(); objIndex++) { VirtualObjectNode virtual = virtualObjects.get(objIndex); + if (virtual == null) { + // Could occur in invalid graphs + properties.put("object(" + objIndex + ")", "null"); + continue; + } StringBuilder s = new StringBuilder(); s.append(virtual.type().toJavaName(false)).append("["); for (int i = 0; i < virtual.entryCount(); i++) {
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Mon Jun 29 18:38:47 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Mon Jun 29 10:49:31 2015 -0700 @@ -350,7 +350,12 @@ } } sb.append(")"); - formatter.format(applyFormattingFlagsAndWidth(sb.toString(), flags & ~ALTERNATE, width)); + String string = sb.toString(); + if (string.indexOf('%') != -1) { + // Quote any % signs + string = string.replace("%", "%%"); + } + formatter.format(applyFormattingFlagsAndWidth(string, flags & ~ALTERNATE, width)); } } }