Mercurial > hg > graal-jvmci-8
changeset 21500:ac86179c56ad
Merge.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 26 May 2015 20:48:30 +0200 |
parents | fac827422011 (diff) f5b49d881909 (current diff) |
children | ce585b0ac3e2 |
files | graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/ExpectError.java |
diffstat | 3 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java Tue May 26 20:04:08 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java Tue May 26 20:48:30 2015 +0200 @@ -132,7 +132,7 @@ return LogicConstantNode.contradiction(); } else { boolean superType = inputType.isAssignableFrom(type); - if (!superType && !isInterfaceOrArrayOfInterface(inputType) && !isInterfaceOrArrayOfInterface(type)) { + if (!superType && (type.asExactType() != null || (!isInterfaceOrArrayOfInterface(inputType) && !isInterfaceOrArrayOfInterface(type)))) { return LogicConstantNode.contradiction(); } // since the subtype comparison was only performed on a declared type we don't
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeCheckNode.java Tue May 26 20:04:08 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeCheckNode.java Tue May 26 20:48:30 2015 +0200 @@ -166,7 +166,7 @@ if (objectType != null) { ResolvedJavaType instanceofType = type; if (instanceofType.equals(objectType)) { - if (objectStamp.nonNull()) { + if (objectStamp.nonNull() && (objectStamp.isExactType() || objectType.isFinal())) { return TriState.TRUE; } } else {
--- a/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultInlineInvokePlugin.java Tue May 26 20:04:08 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultInlineInvokePlugin.java Tue May 26 20:48:30 2015 +0200 @@ -39,7 +39,8 @@ public InlineInfo getInlineInfo(GraphBuilderContext b, ResolvedJavaMethod method, ValueNode[] args, JavaType returnType) { InlineInfo inlineInfo = replacements.getInlineInfo(b, method, args, returnType); if (inlineInfo == null) { - if (InlineDuringParsing.getValue() && method.hasBytecodes() && method.getCode().length <= TrivialInliningSize.getValue() && b.getDepth() < InlineDuringParsingMaxDepth.getValue()) { + if (InlineDuringParsing.getValue() && method.hasBytecodes() && !method.isSynchronized() && method.getCode().length <= TrivialInliningSize.getValue() && + b.getDepth() < InlineDuringParsingMaxDepth.getValue()) { return new InlineInfo(method, false); } }