Mercurial > hg > truffle
changeset 11319:602a25aade24
GraphBuilderPhase: Insert explicit null checks for invokes if an exception has been seen
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 16 Aug 2013 14:47:05 +0200 |
parents | 345bce66c04a |
children | 77bf4af4cc94 41c5234a3f27 |
files | graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java |
diffstat | 1 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Fri Aug 16 14:44:56 2013 +0200 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Fri Aug 16 14:47:05 2013 +0200 @@ -1137,9 +1137,12 @@ if (graphBuilderConfig.eagerResolving()) { returnType = returnType.resolve(targetMethod.getDeclaringClass()); } - if (invokeKind != InvokeKind.Static && invokeKind != InvokeKind.Special) { - JavaTypeProfile profile = profilingInfo.getTypeProfile(bci()); - args[0] = TypeProfileProxyNode.create(args[0], profile); + if (invokeKind != InvokeKind.Static) { + emitExplicitExceptions(args[0], null); + if (invokeKind != InvokeKind.Special) { + JavaTypeProfile profile = profilingInfo.getTypeProfile(bci()); + args[0] = TypeProfileProxyNode.create(args[0], profile); + } } MethodCallTargetNode callTarget = currentGraph.add(new MethodCallTargetNode(invokeKind, targetMethod, args, returnType)); createInvokeNode(callTarget, resultType);