changeset 16850:d6c002f4d2a9

Truffle: fix NPE with -G:-Inline
author Andreas Woess <andreas.woess@jku.at>
date Mon, 18 Aug 2014 17:44:42 +0200
parents 0d987db807df
children 2db61eddcb97
files graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java	Sun Aug 17 14:20:11 2014 +0200
+++ b/graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java	Mon Aug 18 17:44:42 2014 +0200
@@ -231,7 +231,7 @@
         MetaAccessProvider metaAccess = providers.getMetaAccess();
         SuitesProvider suitesProvider = Graal.getRequiredCapability(RuntimeProvider.class).getHostBackend().getSuites();
         Suites suites = suitesProvider.createSuites();
-        suites.getHighTier().findPhase(InliningPhase.class).remove();
+        removeInliningPhase(suites);
         StructuredGraph graph = new StructuredGraph(javaMethod);
         new GraphBuilderPhase.Instance(metaAccess, GraphBuilderConfiguration.getEagerDefault(), OptimisticOptimizations.ALL).apply(graph);
         PhaseSuite<HighTierContext> graphBuilderSuite = suitesProvider.getDefaultGraphBuilderSuite();
@@ -247,6 +247,13 @@
         return runtimeProvider.getHostBackend().getProviders();
     }
 
+    private static void removeInliningPhase(Suites suites) {
+        ListIterator<BasePhase<? super HighTierContext>> inliningPhase = suites.getHighTier().findPhase(InliningPhase.class);
+        if (inliningPhase != null) {
+            inliningPhase.remove();
+        }
+    }
+
     @SlowPath
     @Override
     public <T> T iterateFrames(FrameInstanceVisitor<T> visitor) {