Mercurial > hg > truffle
changeset 4690:b22f3f406b97
Merge.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Fri, 24 Feb 2012 20:05:32 +0100 |
parents | 15849962252d (diff) dd521d481734 (current diff) |
children | fc42b5b6941a |
files | graal/com.oracle.max.graal.java/src/com/oracle/max/graal/java/GraphBuilderPhase.java |
diffstat | 3 files changed, 7 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/InliningUtil.java Fri Feb 24 17:17:48 2012 +0100 +++ b/graal/com.oracle.max.graal.compiler/src/com/oracle/max/graal/compiler/util/InliningUtil.java Fri Feb 24 20:05:32 2012 +0100 @@ -826,7 +826,6 @@ } } - FrameState stateBefore = null; FrameState outerFrameState = null; double invokeProbability = invoke.node().probability(); for (Node node : duplicates.values()) { @@ -842,12 +841,8 @@ } if (node instanceof FrameState) { FrameState frameState = (FrameState) node; - if (frameState.bci == FrameState.BEFORE_BCI) { - if (stateBefore == null) { - stateBefore = stateAfter.duplicateModified(invoke.bci(), false, invoke.node().kind(), parameters.toArray(new ValueNode[parameters.size()])); - } - frameState.replaceAndDelete(stateBefore); - } else if (frameState.bci == FrameState.AFTER_BCI) { + assert frameState.bci != FrameState.BEFORE_BCI; + if (frameState.bci == FrameState.AFTER_BCI) { frameState.replaceAndDelete(stateAfter); } else if (frameState.bci == FrameState.AFTER_EXCEPTION_BCI) { if (frameState.isAlive()) {
--- a/graal/com.oracle.max.graal.java/src/com/oracle/max/graal/java/GraphBuilderPhase.java Fri Feb 24 17:17:48 2012 +0100 +++ b/graal/com.oracle.max.graal.java/src/com/oracle/max/graal/java/GraphBuilderPhase.java Fri Feb 24 20:05:32 2012 +0100 @@ -1333,8 +1333,10 @@ assert lastInstr.next() == null : "instructions already appended at block " + block.blockID; if (block == returnBlock) { + frameState.setRethrowException(false); createReturn(); } else if (block == unwindBlock) { + frameState.setRethrowException(false); createUnwind(); } else if (block instanceof ExceptionBlock) { createExceptionDispatch((ExceptionBlock) block); @@ -1394,6 +1396,7 @@ // TODO (gd) remove this when FloatingRead is fixed if (Modifier.isSynchronized(method.accessFlags())) { append(currentGraph.add(new ValueAnchorNode(x))); + assert !frameState.rethrowException(); } synchronizedEpilogue(FrameState.AFTER_BCI); @@ -1405,6 +1408,7 @@ if (Modifier.isSynchronized(method.accessFlags())) { MonitorExitNode monitorExit = genMonitorExit(methodSynchronizedObject); monitorExit.setStateAfter(frameState.create(bci)); + assert !frameState.rethrowException(); } }
--- a/src/share/vm/runtime/globals.hpp Fri Feb 24 17:17:48 2012 +0100 +++ b/src/share/vm/runtime/globals.hpp Fri Feb 24 20:05:32 2012 +0100 @@ -662,7 +662,7 @@ develop(bool, TraceCallFixup, false, \ "traces all call fixups") \ \ - develop(bool, DeoptimizeALot, false, \ + product(bool, DeoptimizeALot, false, \ "deoptimize at every exit from the runtime system") \ \ notproduct(ccstrlist, DeoptimizeOnlyAt, "", \