# HG changeset patch # User Chris Seaton # Date 1410290471 -3600 # Node ID b06b4dee86d58dbc3145834a3f039ba785dabfd6 # Parent c4b1cf38002b739e76a27d23af06fd1aa6367137 Truffle: keep the RootNode in OptimizationFailedException, so you can figure out what it was that failed. diff -r c4b1cf38002b -r b06b4dee86d5 graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java --- a/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Tue Sep 09 20:19:23 2014 +0100 +++ b/graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Tue Sep 09 20:21:11 2014 +0100 @@ -281,7 +281,7 @@ t.printStackTrace(OUT); System.exit(-1); } else if (TruffleCompilationExceptionsAreThrown.getValue()) { - throw new OptimizationFailedException(t); + throw new OptimizationFailedException(t, rootNode); } } } diff -r c4b1cf38002b -r b06b4dee86d5 graal/com.oracle.truffle.api/src/com/oracle/truffle/api/OptimizationFailedException.java --- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/OptimizationFailedException.java Tue Sep 09 20:19:23 2014 +0100 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/OptimizationFailedException.java Tue Sep 09 20:21:11 2014 +0100 @@ -24,10 +24,19 @@ */ package com.oracle.truffle.api; +import com.oracle.truffle.api.nodes.*; + public class OptimizationFailedException extends RuntimeException { - public OptimizationFailedException(Throwable cause) { + private final RootNode rootNode; + + public OptimizationFailedException(Throwable cause, RootNode rootNode) { super(cause); + this.rootNode = rootNode; + } + + public RootNode getRootNode() { + return rootNode; } private static final long serialVersionUID = -8797188744430210785L;