changeset 21789:5b9adb645217

fixed remnants of "graal" names in JVMCI code
author Doug Simon <doug.simon@oracle.com>
date Mon, 08 Jun 2015 20:24:51 +0200
parents c1610658bba0
children 6db6070d30b9
files graal/com.oracle.jvmci.common/src/com/oracle/jvmci/common/UnsafeAccess.java graal/com.oracle.jvmci.debug/src/com/oracle/jvmci/debug/DebugEnvironment.java graal/com.oracle.jvmci.debug/src/com/oracle/jvmci/debug/JVMCIDebugConfig.java graal/com.oracle.jvmci.hotspot.jfr/src/com/oracle/jvmci/hotspot/jfr/events/JFREventProvider.java graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/CompilationStatistics.java graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/CompilationTask.java graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/CompileTheWorld.java graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotOptions.java graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedJavaMethodImpl.java graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedJavaType.java graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedObjectTypeImpl.java graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedPrimitiveType.java graal/com.oracle.jvmci.meta/src/com/oracle/jvmci/meta/ResolvedJavaMethod.java graal/com.oracle.jvmci.options.processor/src/com/oracle/jvmci/options/processor/GraalJars.java graal/com.oracle.jvmci.options.processor/src/com/oracle/jvmci/options/processor/JVMCIJars.java graal/com.oracle.jvmci.options.processor/src/com/oracle/jvmci/options/processor/OptionsVerifier.java
diffstat 16 files changed, 97 insertions(+), 113 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.jvmci.common/src/com/oracle/jvmci/common/UnsafeAccess.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.common/src/com/oracle/jvmci/common/UnsafeAccess.java	Mon Jun 08 20:24:51 2015 +0200
@@ -29,7 +29,7 @@
 public class UnsafeAccess {
 
     /**
-     * An instance of {@link Unsafe} for use within Graal.
+     * An instance of {@link Unsafe} for use within JVMCI.
      */
     public static final Unsafe unsafe;
 
--- a/graal/com.oracle.jvmci.debug/src/com/oracle/jvmci/debug/DebugEnvironment.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.debug/src/com/oracle/jvmci/debug/DebugEnvironment.java	Mon Jun 08 20:24:51 2015 +0200
@@ -33,10 +33,6 @@
 
     public static JVMCIDebugConfig initialize(PrintStream log) {
 
-        // Ensure Graal runtime is initialized prior to Debug being initialized as the former
-        // may include processing command line options used by the latter.
-        // Graal.getRuntime();
-
         if (!Debug.isEnabled()) {
             log.println("WARNING: Scope debugging needs to be enabled with -esa or -D" + Debug.Initialization.INITIALIZER_PROPERTY_NAME + "=true");
             return null;
--- a/graal/com.oracle.jvmci.debug/src/com/oracle/jvmci/debug/JVMCIDebugConfig.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.debug/src/com/oracle/jvmci/debug/JVMCIDebugConfig.java	Mon Jun 08 20:24:51 2015 +0200
@@ -73,7 +73,7 @@
     public static final OptionValue<Boolean> SuppressZeroDebugValues = new OptionValue<>(true);
     @Option(help = "Only report debug values for maps which match the regular expression.", type = OptionType.Debug)
     public static final OptionValue<String> DebugValueThreadFilter = new OptionValue<>(null);
-    @Option(help = "Send Graal IR to dump handlers on error", type = OptionType.Debug)
+    @Option(help = "Send JVMCI compiler IR to dump handlers on error", type = OptionType.Debug)
     public static final OptionValue<Boolean> DumpOnError = new OptionValue<>(false);
     @Option(help = "Intercept also bailout exceptions", type = OptionType.Debug)
     public static final OptionValue<Boolean> InterceptBailout = new OptionValue<>(false);
--- a/graal/com.oracle.jvmci.hotspot.jfr/src/com/oracle/jvmci/hotspot/jfr/events/JFREventProvider.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.hotspot.jfr/src/com/oracle/jvmci/hotspot/jfr/events/JFREventProvider.java	Mon Jun 08 20:24:51 2015 +0200
@@ -48,7 +48,7 @@
                 /*
                  * The "HotSpot JVM" producer is a native producer and we cannot use it. So we
                  * create our own. This has the downside that Mission Control is confused and
-                 * doesn't show Graal's events in the "Code" tab. There are plans to revise the JFR
+                 * doesn't show JVMCI events in the "Code" tab. There are plans to revise the JFR
                  * code for JDK 9.
                  */
                 Producer producer = new Producer("HotSpot JVM", "Oracle Hotspot JVM", "http://www.oracle.com/hotspot/jvm/");
--- a/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/CompilationStatistics.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/CompilationStatistics.java	Mon Jun 08 20:24:51 2015 +0200
@@ -37,7 +37,7 @@
 public final class CompilationStatistics {
 
     private static final long RESOLUTION = 100000000;
-    private static final boolean ENABLED = Boolean.getBoolean("graal.comp.stats");
+    private static final boolean ENABLED = Boolean.getBoolean("jvmci.comp.stats");
 
     private static final CompilationStatistics DUMMY = new CompilationStatistics(null, false);
 
--- a/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/CompilationTask.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/CompilationTask.java	Mon Jun 08 20:24:51 2015 +0200
@@ -74,15 +74,15 @@
     private static final com.sun.management.ThreadMXBean threadMXBean = (com.sun.management.ThreadMXBean) ManagementFactory.getThreadMXBean();
 
     /**
-     * The address of the GraalEnv associated with this compilation or 0L if no such object exists.
+     * The address of the JVMCIEnv associated with this compilation or 0L if no such object exists.
      */
-    private final long graalEnv;
+    private final long jvmciEnv;
 
-    public CompilationTask(HotSpotResolvedJavaMethod method, int entryBCI, long graalEnv, int id, boolean installAsDefault) {
+    public CompilationTask(HotSpotResolvedJavaMethod method, int entryBCI, long jvmciEnv, int id, boolean installAsDefault) {
         this.method = method;
         this.entryBCI = entryBCI;
         this.id = id;
-        this.graalEnv = graalEnv;
+        this.jvmciEnv = jvmciEnv;
         this.installAsDefault = installAsDefault;
     }
 
@@ -126,7 +126,7 @@
         CompilationEvent compilationEvent = eventProvider.newCompilationEvent();
 
         // If there is already compiled code for this method on our level we simply return.
-        // Graal compiles are always at the highest compile level, even in non-tiered mode so we
+        // JVMCI compiles are always at the highest compile level, even in non-tiered mode so we
         // only need to check for that value.
         if (method.hasCodeAtLevel(entryBCI, config.compilationLevelFullOptimization)) {
             return;
@@ -169,7 +169,7 @@
                     if (printAfterCompilation) {
                         TTY.println(getMethodDescription() + String.format(" | %4dms %5dB %5dkB", stop - start, targetCodeSize, allocatedBytes));
                     } else if (printCompilation) {
-                        TTY.println(String.format("%-6d Graal %-70s %-45s %-50s | %4dms %5dB %5dkB", id, "", "", "", stop - start, targetCodeSize, allocatedBytes));
+                        TTY.println(String.format("%-6d JVMCI %-70s %-45s %-50s | %4dms %5dB %5dkB", id, "", "", "", stop - start, targetCodeSize, allocatedBytes));
                     }
                 }
             }
@@ -227,8 +227,8 @@
                 compilationEvent.commit();
             }
 
-            if (graalEnv != 0) {
-                long ctask = unsafe.getAddress(graalEnv + config.jvmciEnvTaskOffset);
+            if (jvmciEnv != 0) {
+                long ctask = unsafe.getAddress(jvmciEnv + config.jvmciEnvTaskOffset);
                 assert ctask != 0L;
                 unsafe.putInt(ctask + config.compileTaskNumInlinedBytecodesOffset, compiledBytecodes);
             }
@@ -248,14 +248,14 @@
         if (config.ciTime || config.ciTimeEach || CompiledBytecodes.isEnabled()) {
             return true;
         }
-        if (graalEnv == 0 || unsafe.getByte(graalEnv + config.jvmciEnvJvmtiCanHotswapOrPostBreakpointOffset) != 0) {
+        if (jvmciEnv == 0 || unsafe.getByte(jvmciEnv + config.jvmciEnvJvmtiCanHotswapOrPostBreakpointOffset) != 0) {
             return true;
         }
         return false;
     }
 
     private String getMethodDescription() {
-        return String.format("%-6d Graal %-70s %-45s %-50s %s", id, method.getDeclaringClass().getName(), method.getName(), method.getSignature().toMethodDescriptor(),
+        return String.format("%-6d JVMCI %-70s %-45s %-50s %s", id, method.getDeclaringClass().getName(), method.getName(), method.getSignature().toMethodDescriptor(),
                         entryBCI == Compiler.INVOCATION_ENTRY_BCI ? "" : "(OSR@" + entryBCI + ") ");
     }
 
@@ -263,7 +263,7 @@
         final HotSpotCodeCacheProvider codeCache = (HotSpotCodeCacheProvider) HotSpotJVMCIRuntime.runtime().getHostJVMCIBackend().getCodeCache();
         InstalledCode installedCode = null;
         try (Scope s = Debug.scope("CodeInstall", new DebugDumpScope(String.valueOf(id), true), codeCache, method)) {
-            installedCode = codeCache.installMethod(method, compResult, graalEnv, installAsDefault);
+            installedCode = codeCache.installMethod(method, compResult, jvmciEnv, installAsDefault);
         } catch (Throwable e) {
             throw Debug.handle(e);
         }
@@ -278,13 +278,13 @@
     /**
      * Compiles a method to machine code.
      */
-    public static void compileMethod(HotSpotResolvedJavaMethod method, int entryBCI, long graalEnv, int id) {
+    public static void compileMethod(HotSpotResolvedJavaMethod method, int entryBCI, long jvmciEnv, int id) {
         // Ensure a debug configuration for this thread is initialized
         if (Debug.isEnabled() && DebugScope.getConfig() == null) {
             DebugEnvironment.initialize(TTY.cachedOut);
         }
 
-        CompilationTask task = new CompilationTask(method, entryBCI, graalEnv, id, true);
+        CompilationTask task = new CompilationTask(method, entryBCI, jvmciEnv, id, true);
         try (DebugConfigScope dcs = setConfig(new TopLevelDebugConfig())) {
             task.runCompilation();
         }
--- a/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/CompileTheWorld.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/CompileTheWorld.java	Mon Jun 08 20:24:51 2015 +0200
@@ -22,9 +22,6 @@
  */
 package com.oracle.jvmci.hotspot;
 
-//import static com.oracle.graal.compiler.common.GraalOptions.*;
-//import static com.oracle.graal.hotspot.HotSpotGraalRuntime.*;
-//import static com.oracle.graal.nodes.StructuredGraph.*;
 import static com.oracle.jvmci.compiler.Compiler.*;
 import static com.oracle.jvmci.debug.internal.MemUseTrackerImpl.*;
 
@@ -50,7 +47,7 @@
 import com.oracle.jvmci.runtime.*;
 
 /**
- * This class implements compile-the-world functionality in Graal.
+ * This class implements compile-the-world functionality with JVMCI.
  */
 public final class CompileTheWorld {
 
@@ -101,14 +98,14 @@
     }
 
     /**
-     * A mechanism for overriding Graal options that affect compilation. A {@link Config} object
+     * A mechanism for overriding JVMCI options that affect compilation. A {@link Config} object
      * should be used in a try-with-resources statement to ensure overriding of options is scoped
      * properly. For example:
      *
      * <pre>
      *     Config config = ...;
      *     try (AutoCloseable s = config == null ? null : config.apply()) {
-     *         // perform a Graal compilation
+     *         // perform a JVMCI compilation
      *     }
      * </pre>
      */
--- a/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotOptions.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotOptions.java	Mon Jun 08 20:24:51 2015 +0200
@@ -44,21 +44,12 @@
 
         for (Options opts : ServiceLoader.load(Options.class, HotSpotOptions.class.getClassLoader())) {
             for (OptionDescriptor desc : opts) {
-                if (isHotSpotOption(desc)) {
-                    String name = desc.getName();
-                    OptionDescriptor existing = options.put(name, desc);
-                    assert existing == null : "Option named \"" + name + "\" has multiple definitions: " + existing.getLocation() + " and " + desc.getLocation();
-                }
+                String name = desc.getName();
+                OptionDescriptor existing = options.put(name, desc);
+                assert existing == null : "Option named \"" + name + "\" has multiple definitions: " + existing.getLocation() + " and " + desc.getLocation();
             }
         }
 
         OptionUtils.printFlags(options, JVMCI_OPTION_PREFIX);
     }
-
-    /**
-     * Determines if a given option is a HotSpot command line option.
-     */
-    private static boolean isHotSpotOption(OptionDescriptor desc) {
-        return desc.getDeclaringClass().getName().startsWith("com.oracle.graal");
-    }
 }
--- a/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedJavaMethodImpl.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedJavaMethodImpl.java	Mon Jun 08 20:24:51 2015 +0200
@@ -407,7 +407,7 @@
         return false;
     }
 
-    private static final String TraceMethodDataFilter = System.getProperty("graal.traceMethodDataFilter");
+    private static final String TraceMethodDataFilter = System.getProperty("jvmci.traceMethodDataFilter");
 
     @Override
     public ProfilingInfo getProfilingInfo(boolean includeNormal, boolean includeOSR) {
@@ -666,7 +666,7 @@
     }
 
     /**
-     * The {@link SpeculationLog} for methods compiled by Graal hang off this per-declaring-type
+     * The {@link SpeculationLog} for methods compiled by JVMCI hang off this per-declaring-type
      * {@link ClassValue}. The raw Method* value is safe to use as a key in the map as a) it is
      * never moves and b) we never read from it.
      * <p>
--- a/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedJavaType.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedJavaType.java	Mon Jun 08 20:24:51 2015 +0200
@@ -29,7 +29,7 @@
 public abstract class HotSpotResolvedJavaType extends HotSpotJavaType implements ResolvedJavaType {
 
     /**
-     * Gets the Graal mirror for a {@link Class} object.
+     * Gets the JVMCI mirror for a {@link Class} object.
      *
      * @return the {@link HotSpotResolvedJavaType} corresponding to {@code javaClass}
      */
--- a/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedObjectTypeImpl.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedObjectTypeImpl.java	Mon Jun 08 20:24:51 2015 +0200
@@ -58,7 +58,7 @@
     private HotSpotResolvedObjectType arrayOfType;
 
     /**
-     * Gets the Graal mirror for a {@link Class} object.
+     * Gets the JVMCI mirror for a {@link Class} object.
      *
      * @return the {@link HotSpotResolvedJavaType} corresponding to {@code javaClass}
      */
@@ -67,7 +67,7 @@
     }
 
     /**
-     * Gets the Graal mirror from a HotSpot metaspace Klass native object.
+     * Gets the JVMCI mirror from a HotSpot metaspace Klass native object.
      *
      * @param metaspaceKlass a metaspace Klass object
      * @return the {@link ResolvedJavaType} corresponding to {@code metaspaceKlass}
@@ -80,7 +80,7 @@
     }
 
     /**
-     * Creates the Graal mirror for a {@link Class} object.
+     * Creates the JVMCI mirror for a {@link Class} object.
      *
      * <p>
      * <b>NOTE</b>: Creating an instance of this class does not install the mirror for the
--- a/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedPrimitiveType.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.hotspot/src/com/oracle/jvmci/hotspot/HotSpotResolvedPrimitiveType.java	Mon Jun 08 20:24:51 2015 +0200
@@ -40,7 +40,7 @@
     private final Kind kind;
 
     /**
-     * Creates the Graal mirror for a primitive {@link Kind}.
+     * Creates the JVMCI mirror for a primitive {@link Kind}.
      *
      * <p>
      * <b>NOTE</b>: Creating an instance of this class does not install the mirror for the
--- a/graal/com.oracle.jvmci.meta/src/com/oracle/jvmci/meta/ResolvedJavaMethod.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.meta/src/com/oracle/jvmci/meta/ResolvedJavaMethod.java	Mon Jun 08 20:24:51 2015 +0200
@@ -37,7 +37,7 @@
      * {@link #getDeclaringClass() holder} is not {@link ResolvedJavaType#isLinked() linked}.
      *
      * The contained constant pool indices may not be the ones found in the original class file but
-     * they can be used with the Graal API (e.g. methods in {@link ConstantPool}).
+     * they can be used with the JVMCI API (e.g. methods in {@link ConstantPool}).
      *
      * @return the bytecode of the method, or {@code null} if {@code getCodeSize() == 0} or if the
      *         code is not ready.
--- a/graal/com.oracle.jvmci.options.processor/src/com/oracle/jvmci/options/processor/GraalJars.java	Mon Jun 08 20:24:05 2015 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-package com.oracle.jvmci.options.processor;
-
-import java.io.*;
-import java.util.*;
-import java.util.stream.*;
-import java.util.zip.*;
-
-public class GraalJars implements Iterable<ZipEntry> {
-    private final List<ZipFile> jars = new ArrayList<>(2);
-
-    public GraalJars() {
-        String classPath = System.getProperty("java.class.path");
-        for (String e : classPath.split(File.pathSeparator)) {
-            if (e.endsWith(File.separatorChar + "graal.jar") || e.endsWith(File.separatorChar + "graal-truffle.jar")) {
-                try {
-                    jars.add(new ZipFile(e));
-                } catch (IOException ioe) {
-                    throw new InternalError(ioe);
-                }
-            }
-        }
-        if (jars.size() != 2) {
-            throw new InternalError("Could not find graal.jar or graal-truffle.jar on class path: " + classPath);
-        }
-    }
-
-    public Iterator<ZipEntry> iterator() {
-        Stream<ZipEntry> entries = jars.stream().flatMap(ZipFile::stream);
-        return entries.iterator();
-    }
-
-    public InputStream getInputStream(String classFilePath) throws IOException {
-        for (ZipFile jar : jars) {
-            ZipEntry entry = jar.getEntry(classFilePath);
-            if (entry != null) {
-                return jar.getInputStream(entry);
-            }
-        }
-        return null;
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/graal/com.oracle.jvmci.options.processor/src/com/oracle/jvmci/options/processor/JVMCIJars.java	Mon Jun 08 20:24:51 2015 +0200
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+package com.oracle.jvmci.options.processor;
+
+import java.io.*;
+import java.util.*;
+import java.util.stream.*;
+import java.util.zip.*;
+
+public class JVMCIJars implements Iterable<ZipEntry> {
+    private final List<ZipFile> jars = new ArrayList<>(2);
+
+    public JVMCIJars() {
+        String classPath = System.getProperty("java.class.path");
+        for (String e : classPath.split(File.pathSeparator)) {
+            if (e.endsWith(File.separatorChar + "graal.jar") || e.endsWith(File.separatorChar + "graal-truffle.jar")) {
+                try {
+                    jars.add(new ZipFile(e));
+                } catch (IOException ioe) {
+                    throw new InternalError(ioe);
+                }
+            }
+        }
+        if (jars.size() != 2) {
+            throw new InternalError("Could not find graal.jar or graal-truffle.jar on class path: " + classPath);
+        }
+    }
+
+    public Iterator<ZipEntry> iterator() {
+        Stream<ZipEntry> entries = jars.stream().flatMap(ZipFile::stream);
+        return entries.iterator();
+    }
+
+    public InputStream getInputStream(String classFilePath) throws IOException {
+        for (ZipFile jar : jars) {
+            ZipEntry entry = jar.getEntry(classFilePath);
+            if (entry != null) {
+                return jar.getInputStream(entry);
+            }
+        }
+        return null;
+    }
+}
--- a/graal/com.oracle.jvmci.options.processor/src/com/oracle/jvmci/options/processor/OptionsVerifier.java	Mon Jun 08 20:24:05 2015 +0200
+++ b/graal/com.oracle.jvmci.options.processor/src/com/oracle/jvmci/options/processor/OptionsVerifier.java	Mon Jun 08 20:24:51 2015 +0200
@@ -41,16 +41,16 @@
  */
 final class OptionsVerifier extends ClassVisitor {
 
-    public static void checkClass(Class<?> cls, OptionDescriptor option, Set<Class<?>> checked, GraalJars graalJars) throws IOException {
+    public static void checkClass(Class<?> cls, OptionDescriptor option, Set<Class<?>> checked, JVMCIJars jvmciJars) throws IOException {
         if (!checked.contains(cls)) {
             checked.add(cls);
             Class<?> superclass = cls.getSuperclass();
             if (superclass != null && !superclass.equals(Object.class)) {
-                checkClass(superclass, option, checked, graalJars);
+                checkClass(superclass, option, checked, jvmciJars);
             }
 
             String classFilePath = cls.getName().replace('.', '/') + ".class";
-            ClassReader cr = new ClassReader(Objects.requireNonNull(graalJars.getInputStream(classFilePath), "Could not find class file for " + cls.getName()));
+            ClassReader cr = new ClassReader(Objects.requireNonNull(jvmciJars.getInputStream(classFilePath), "Could not find class file for " + cls.getName()));
 
             ClassVisitor cv = new OptionsVerifier(cls, option);
             cr.accept(cv, 0);