< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.test/src/org/graalvm/compiler/hotspot/test/CompileTheWorld.java

Print this page




   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 
  25 package org.graalvm.compiler.hotspot.test;
  26 
  27 import static java.util.Collections.singletonList;
  28 import static org.graalvm.compiler.core.CompilationWrapper.ExceptionAction.Print;
  29 import static org.graalvm.compiler.core.GraalCompilerOptions.CompilationBailoutAction;
  30 import static org.graalvm.compiler.core.GraalCompilerOptions.CompilationFailureAction;
  31 import static org.graalvm.compiler.core.test.ReflectionOptionDescriptors.extractEntries;
  32 import static org.graalvm.compiler.debug.MemUseTrackerKey.getCurrentThreadAllocatedBytes;
  33 import static org.graalvm.compiler.hotspot.test.CompileTheWorld.Options.DESCRIPTORS;
  34 import static org.graalvm.compiler.serviceprovider.JavaVersionUtil.Java8OrEarlier;
  35 
  36 import java.io.Closeable;
  37 import java.io.File;
  38 import java.io.IOException;
  39 import java.lang.annotation.Annotation;
  40 import java.lang.reflect.Constructor;
  41 import java.lang.reflect.Method;
  42 import java.lang.reflect.Modifier;
  43 import java.net.URI;
  44 import java.net.URL;
  45 import java.net.URLClassLoader;
  46 import java.nio.file.FileSystem;
  47 import java.nio.file.FileSystems;
  48 import java.nio.file.FileVisitResult;
  49 import java.nio.file.Files;


 198      * @param methodFilters
 199      * @param excludeMethodFilters
 200      */
 201     public CompileTheWorld(HotSpotJVMCIRuntime jvmciRuntime, HotSpotGraalCompiler compiler, String files, int startAt, int stopAt, String methodFilters, String excludeMethodFilters,
 202                     boolean verbose, OptionValues initialOptions, EconomicMap<OptionKey<?>, Object> compilationOptions) {
 203         this.jvmciRuntime = jvmciRuntime;
 204         this.compiler = compiler;
 205         this.inputClassPath = files;
 206         this.startAt = startAt;
 207         this.stopAt = stopAt;
 208         this.methodFilters = methodFilters == null || methodFilters.isEmpty() ? null : MethodFilter.parse(methodFilters);
 209         this.excludeMethodFilters = excludeMethodFilters == null || excludeMethodFilters.isEmpty() ? null : MethodFilter.parse(excludeMethodFilters);
 210         this.verbose = verbose;
 211         this.currentOptions = initialOptions;
 212 
 213         // Copy the initial options and add in any extra options
 214         EconomicMap<OptionKey<?>, Object> compilationOptionsCopy = EconomicMap.create(initialOptions.getMap());
 215         compilationOptionsCopy.putAll(compilationOptions);
 216 
 217         // We want to see stack traces when a method fails to compile
 218         CompilationBailoutAction.putIfAbsent(compilationOptionsCopy, Print);
 219         CompilationFailureAction.putIfAbsent(compilationOptionsCopy, Print);
 220 
 221         // By default only report statistics for the CTW threads themselves
 222         DebugOptions.MetricsThreadFilter.putIfAbsent(compilationOptionsCopy, "^CompileTheWorld");
 223         this.compilationOptions = compilationOptionsCopy;
 224     }
 225 
 226     public CompileTheWorld(HotSpotJVMCIRuntime jvmciRuntime, HotSpotGraalCompiler compiler, OptionValues options) {
 227         this(jvmciRuntime, compiler, Options.Classpath.getValue(options),
 228                         Options.StartAt.getValue(options),
 229                         Options.StopAt.getValue(options),
 230                         Options.MethodFilter.getValue(options),
 231                         Options.ExcludeMethodFilter.getValue(options),
 232                         Options.Verbose.getValue(options),
 233                         options,
 234                         parseOptions(Options.Config.getValue(options)));
 235     }
 236 
 237     /**
 238      * Compiles all methods in all classes in {@link #inputClassPath}. If {@link #inputClassPath}




   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 
  25 package org.graalvm.compiler.hotspot.test;
  26 
  27 import static java.util.Collections.singletonList;
  28 import static org.graalvm.compiler.core.CompilationWrapper.ExceptionAction.Print;
  29 import static org.graalvm.compiler.core.GraalCompilerOptions.CompilationBailoutAsFailure;
  30 import static org.graalvm.compiler.core.GraalCompilerOptions.CompilationFailureAction;
  31 import static org.graalvm.compiler.core.test.ReflectionOptionDescriptors.extractEntries;
  32 import static org.graalvm.compiler.debug.MemUseTrackerKey.getCurrentThreadAllocatedBytes;
  33 import static org.graalvm.compiler.hotspot.test.CompileTheWorld.Options.DESCRIPTORS;
  34 import static org.graalvm.compiler.serviceprovider.JavaVersionUtil.Java8OrEarlier;
  35 
  36 import java.io.Closeable;
  37 import java.io.File;
  38 import java.io.IOException;
  39 import java.lang.annotation.Annotation;
  40 import java.lang.reflect.Constructor;
  41 import java.lang.reflect.Method;
  42 import java.lang.reflect.Modifier;
  43 import java.net.URI;
  44 import java.net.URL;
  45 import java.net.URLClassLoader;
  46 import java.nio.file.FileSystem;
  47 import java.nio.file.FileSystems;
  48 import java.nio.file.FileVisitResult;
  49 import java.nio.file.Files;


 198      * @param methodFilters
 199      * @param excludeMethodFilters
 200      */
 201     public CompileTheWorld(HotSpotJVMCIRuntime jvmciRuntime, HotSpotGraalCompiler compiler, String files, int startAt, int stopAt, String methodFilters, String excludeMethodFilters,
 202                     boolean verbose, OptionValues initialOptions, EconomicMap<OptionKey<?>, Object> compilationOptions) {
 203         this.jvmciRuntime = jvmciRuntime;
 204         this.compiler = compiler;
 205         this.inputClassPath = files;
 206         this.startAt = startAt;
 207         this.stopAt = stopAt;
 208         this.methodFilters = methodFilters == null || methodFilters.isEmpty() ? null : MethodFilter.parse(methodFilters);
 209         this.excludeMethodFilters = excludeMethodFilters == null || excludeMethodFilters.isEmpty() ? null : MethodFilter.parse(excludeMethodFilters);
 210         this.verbose = verbose;
 211         this.currentOptions = initialOptions;
 212 
 213         // Copy the initial options and add in any extra options
 214         EconomicMap<OptionKey<?>, Object> compilationOptionsCopy = EconomicMap.create(initialOptions.getMap());
 215         compilationOptionsCopy.putAll(compilationOptions);
 216 
 217         // We want to see stack traces when a method fails to compile
 218         CompilationBailoutAsFailure.putIfAbsent(compilationOptionsCopy, true);
 219         CompilationFailureAction.putIfAbsent(compilationOptionsCopy, Print);
 220 
 221         // By default only report statistics for the CTW threads themselves
 222         DebugOptions.MetricsThreadFilter.putIfAbsent(compilationOptionsCopy, "^CompileTheWorld");
 223         this.compilationOptions = compilationOptionsCopy;
 224     }
 225 
 226     public CompileTheWorld(HotSpotJVMCIRuntime jvmciRuntime, HotSpotGraalCompiler compiler, OptionValues options) {
 227         this(jvmciRuntime, compiler, Options.Classpath.getValue(options),
 228                         Options.StartAt.getValue(options),
 229                         Options.StopAt.getValue(options),
 230                         Options.MethodFilter.getValue(options),
 231                         Options.ExcludeMethodFilter.getValue(options),
 232                         Options.Verbose.getValue(options),
 233                         options,
 234                         parseOptions(Options.Config.getValue(options)));
 235     }
 236 
 237     /**
 238      * Compiles all methods in all classes in {@link #inputClassPath}. If {@link #inputClassPath}


< prev index next >