Mercurial > hg > truffle
changeset 21499:fac827422011
Merge.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Tue, 26 May 2015 20:23:22 +0200 |
parents | f9031351b2bd (diff) 3286fb5fea4a (current diff) |
children | ac86179c56ad |
files | |
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 19:11:36 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java Tue May 26 20:23:22 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 19:11:36 2015 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeCheckNode.java Tue May 26 20:23:22 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 19:11:36 2015 +0200 +++ b/graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultInlineInvokePlugin.java Tue May 26 20:23:22 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); } }