--- old/src/hotspot/share/ci/ciMethod.cpp 2019-05-31 08:53:24.000000000 -0700 +++ new/src/hotspot/share/ci/ciMethod.cpp 2019-05-31 08:53:24.000000000 -0700 @@ -1104,7 +1104,7 @@ } else { _is_c2_compilable = false; } - get_Method()->set_not_compilable(env->comp_level(), true, reason); + get_Method()->set_not_compilable(reason, env->comp_level()); } // ------------------------------------------------------------------ --- old/src/hotspot/share/compiler/compileBroker.cpp 2019-05-31 08:53:25.000000000 -0700 +++ new/src/hotspot/share/compiler/compileBroker.cpp 2019-05-31 08:53:25.000000000 -0700 @@ -1242,7 +1242,7 @@ if (HAS_PENDING_EXCEPTION) { // In case of an exception looking up the method, we just forget // about it. The interpreter will kick-in and throw the exception. - method->set_not_compilable(); // implies is_not_osr_compilable() + method->set_not_compilable("NativeLookup::lookup failed"); // implies is_not_osr_compilable() CLEAR_PENDING_EXCEPTION; return NULL; } @@ -1370,7 +1370,7 @@ AbstractCompiler *comp = compiler(comp_level); if (is_native && (!CICompileNatives || comp == NULL || !comp->supports_native())) { - method->set_not_compilable_quietly(comp_level); + method->set_not_compilable_quietly("native methods not supported", comp_level); return true; } @@ -1378,7 +1378,7 @@ // Some compilers may not support on stack replacement. if (is_osr && (!CICompileOSR || comp == NULL || !comp->supports_osr())) { - method->set_not_osr_compilable(comp_level); + method->set_not_osr_compilable("OSR not supported", comp_level); return true; } @@ -1395,7 +1395,7 @@ method->print_short_name(tty); tty->cr(); } - method->set_not_compilable(comp_level, !quietly, "excluded by CompileCommand"); + method->set_not_compilable("excluded by CompileCommand", comp_level, !quietly); } return false; @@ -1428,7 +1428,7 @@ } // Method was not in the appropriate compilation range. - method->set_not_compilable_quietly(); + method->set_not_compilable_quietly("Not in requested compile id range"); return 0; #else // CICountOSR is a develop flag and set to 'false' by default. In a product built, @@ -2195,15 +2195,15 @@ switch (compilable) { case ciEnv::MethodCompilable_never: if (is_osr) - method->set_not_osr_compilable_quietly(); + method->set_not_osr_compilable_quietly("MethodCompilable_never"); else - method->set_not_compilable_quietly(); + method->set_not_compilable_quietly("MethodCompilable_never"); break; case ciEnv::MethodCompilable_not_at_tier: if (is_osr) - method->set_not_osr_compilable_quietly(task_level); + method->set_not_osr_compilable_quietly("MethodCompilable_not_at_tier", task_level); else - method->set_not_compilable_quietly(task_level); + method->set_not_compilable_quietly("MethodCompilable_not_at_tier", task_level); break; } --- old/src/hotspot/share/compiler/compileTask.cpp 2019-05-31 08:53:26.000000000 -0700 +++ new/src/hotspot/share/compiler/compileTask.cpp 2019-05-31 08:53:26.000000000 -0700 @@ -416,9 +416,7 @@ log->end_elem(); log->clear_identities(); // next task will have different CI log->tail("task"); - if (log->unflushed_count() > 2000) { - log->flush(); - } + log->flush(); log->mark_file_end(); } --- old/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp 2019-05-31 08:53:28.000000000 -0700 +++ new/src/hotspot/share/jvmci/jvmciCompilerToVM.cpp 2019-05-31 08:53:27.000000000 -0700 @@ -1113,7 +1113,15 @@ return (jlongArray) JVMCIENV->get_jobject(array); C2V_END -C2V_VMENTRY_0(int, allocateCompileId, (JNIEnv* env, jobject, jobject jvmci_method, int entry_bci)) +C2V_VMENTRY_0(jint, getCountersSize, (JNIEnv* env, jobject)) + return (jint) JVMCICounterSize; +C2V_END + +C2V_VMENTRY_0(jboolean, setCountersSize, (JNIEnv* env, jobject, jint new_size)) + return JavaThread::resize_all_jvmci_counters(new_size); +C2V_END + +C2V_VMENTRY_0(jint, allocateCompileId, (JNIEnv* env, jobject, jobject jvmci_method, int entry_bci)) HandleMark hm; if (jvmci_method == NULL) { JVMCI_THROW_0(NullPointerException); @@ -1615,7 +1623,7 @@ tty->flush(); C2V_END -C2V_VMENTRY_0(int, methodDataProfileDataSize, (JNIEnv* env, jobject, jlong metaspace_method_data, jint position)) +C2V_VMENTRY_0(jint, methodDataProfileDataSize, (JNIEnv* env, jobject, jlong metaspace_method_data, jint position)) MethodData* mdo = JVMCIENV->asMethodData(metaspace_method_data); ProfileData* profile_data = mdo->data_at(position); if (mdo->is_valid(profile_data)) { @@ -1721,7 +1729,7 @@ } C2V_END -C2V_VMENTRY_0(int, interpreterFrameSize, (JNIEnv* env, jobject, jobject bytecode_frame_handle)) +C2V_VMENTRY_0(jint, interpreterFrameSize, (JNIEnv* env, jobject, jobject bytecode_frame_handle)) if (bytecode_frame_handle == NULL) { JVMCI_THROW_0(NullPointerException); } @@ -1769,7 +1777,7 @@ } C2V_END -C2V_VMENTRY_0(int, getIdentityHashCode, (JNIEnv* env, jobject, jobject object)) +C2V_VMENTRY_0(jint, getIdentityHashCode, (JNIEnv* env, jobject, jobject object)) Handle obj = JVMCIENV->asConstant(JVMCIENV->wrap(object), JVMCI_CHECK_0); return obj->identity_hash(); C2V_END @@ -2551,7 +2559,7 @@ FailedSpeculation::free_failed_speculations((FailedSpeculation**)(address) failed_speculations_address); } -C2V_VMENTRY_0(bool, addFailedSpeculation, (JNIEnv* env, jobject, jlong failed_speculations_address, jbyteArray speculation_obj)) +C2V_VMENTRY_0(jboolean, addFailedSpeculation, (JNIEnv* env, jobject, jlong failed_speculations_address, jbyteArray speculation_obj)) JVMCIPrimitiveArray speculation_handle = JVMCIENV->wrap(speculation_obj); int speculation_len = JVMCIENV->get_length(speculation_handle); char* speculation = NEW_RESOURCE_ARRAY(char, speculation_len); @@ -2644,6 +2652,8 @@ {CC "invalidateHotSpotNmethod", CC "(" HS_NMETHOD ")V", FN_PTR(invalidateHotSpotNmethod)}, {CC "readUncompressedOop", CC "(J)" OBJECTCONSTANT, FN_PTR(readUncompressedOop)}, {CC "collectCounters", CC "()[J", FN_PTR(collectCounters)}, + {CC "getCountersSize", CC "()I", FN_PTR(getCountersSize)}, + {CC "setCountersSize", CC "(I)Z", FN_PTR(setCountersSize)}, {CC "allocateCompileId", CC "(" HS_RESOLVED_METHOD "I)I", FN_PTR(allocateCompileId)}, {CC "isMature", CC "(" METASPACE_METHOD_DATA ")Z", FN_PTR(isMature)}, {CC "hasCompiledCodeForOSR", CC "(" HS_RESOLVED_METHOD "II)Z", FN_PTR(hasCompiledCodeForOSR)}, --- old/src/hotspot/share/jvmci/jvmciRuntime.cpp 2019-05-31 08:53:29.000000000 -0700 +++ new/src/hotspot/share/jvmci/jvmciRuntime.cpp 2019-05-31 08:53:29.000000000 -0700 @@ -938,8 +938,6 @@ if (exception->is_a(SystemDictionary::ThreadDeath_klass())) { // Don't print anything if we are being killed. } else { - java_lang_Throwable::print(exception(), tty); - tty->cr(); java_lang_Throwable::print_stack_trace(exception, tty); // Clear and ignore any exceptions raised during printing @@ -1397,11 +1395,18 @@ assert(false, "JVMCICompiler.compileMethod should always return non-null"); } } else { - // An uncaught exception was thrown during compilation. Generally these - // should be handled by the Java code in some useful way but if they leak - // through to here report them instead of dying or silently ignoring them. - JVMCIENV->describe_pending_exception(true); - compile_state->set_failure(false, "unexpected exception thrown"); + // An uncaught exception here implies failure during compiler initialization. + // The only sensible thing to do here is to exit the VM. + + // Only report initialization failure once + static volatile int report_init_failure = 0; + if (!report_init_failure && Atomic::cmpxchg(1, &report_init_failure, 0) == 0) { + tty->print_cr("Exception during JVMCI compiler initialization:"); + JVMCIENV->describe_pending_exception(true); + } + JVMCIENV->clear_pending_exception(); + before_exit((JavaThread*) THREAD); + vm_exit(-1); } if (compiler->is_bootstrapping()) { compiler->set_bootstrap_compilation_request_handled(); --- old/src/hotspot/share/oops/method.cpp 2019-05-31 08:53:30.000000000 -0700 +++ new/src/hotspot/share/oops/method.cpp 2019-05-31 08:53:30.000000000 -0700 @@ -831,6 +831,7 @@ void Method::print_made_not_compilable(int comp_level, bool is_osr, bool report, const char* reason) { + assert(reason != NULL, "must provide a reason"); if (PrintCompilation && report) { ttyLocker ttyl; tty->print("made not %scompilable on ", is_osr ? "OSR " : ""); @@ -891,7 +892,7 @@ } // call this when compiler finds that this method is not compilable -void Method::set_not_compilable(int comp_level, bool report, const char* reason) { +void Method::set_not_compilable(const char* reason, int comp_level, bool report) { if (is_always_compilable()) { // Don't mark a method which should be always compilable return; @@ -922,7 +923,7 @@ return false; } -void Method::set_not_osr_compilable(int comp_level, bool report, const char* reason) { +void Method::set_not_osr_compilable(const char* reason, int comp_level, bool report) { print_made_not_compilable(comp_level, /*is_osr*/ true, report, reason); if (comp_level == CompLevel_all) { set_not_c1_osr_compilable(); --- old/src/hotspot/share/oops/method.hpp 2019-05-31 08:53:31.000000000 -0700 +++ new/src/hotspot/share/oops/method.hpp 2019-05-31 08:53:31.000000000 -0700 @@ -943,14 +943,14 @@ // whether it is not compilable for another reason like having a // breakpoint set in it. bool is_not_compilable(int comp_level = CompLevel_any) const; - void set_not_compilable(int comp_level = CompLevel_all, bool report = true, const char* reason = NULL); - void set_not_compilable_quietly(int comp_level = CompLevel_all) { - set_not_compilable(comp_level, false); + void set_not_compilable(const char* reason, int comp_level = CompLevel_all, bool report = true); + void set_not_compilable_quietly(const char* reason, int comp_level = CompLevel_all) { + set_not_compilable(reason, comp_level, false); } bool is_not_osr_compilable(int comp_level = CompLevel_any) const; - void set_not_osr_compilable(int comp_level = CompLevel_all, bool report = true, const char* reason = NULL); - void set_not_osr_compilable_quietly(int comp_level = CompLevel_all) { - set_not_osr_compilable(comp_level, false); + void set_not_osr_compilable(const char* reason, int comp_level = CompLevel_all, bool report = true); + void set_not_osr_compilable_quietly(const char* reason, int comp_level = CompLevel_all) { + set_not_osr_compilable(reason, comp_level, false); } bool is_always_compilable() const; --- old/src/hotspot/share/oops/methodData.hpp 2019-05-31 08:53:33.000000000 -0700 +++ new/src/hotspot/share/oops/methodData.hpp 2019-05-31 08:53:32.000000000 -0700 @@ -2386,7 +2386,7 @@ void inc_decompile_count() { _nof_decompiles += 1; if (decompile_count() > (uint)PerMethodRecompilationCutoff) { - method()->set_not_compilable(CompLevel_full_optimization, true, "decompile_count > PerMethodRecompilationCutoff"); + method()->set_not_compilable("decompile_count > PerMethodRecompilationCutoff", CompLevel_full_optimization); } } uint tenure_traps() const { --- old/src/hotspot/share/prims/whitebox.cpp 2019-05-31 08:53:34.000000000 -0700 +++ new/src/hotspot/share/prims/whitebox.cpp 2019-05-31 08:53:34.000000000 -0700 @@ -919,9 +919,9 @@ CHECK_JNI_EXCEPTION(env); methodHandle mh(THREAD, Method::checked_resolve_jmethod_id(jmid)); if (is_osr) { - mh->set_not_osr_compilable(comp_level, true /* report */, "WhiteBox"); + mh->set_not_osr_compilable("WhiteBox", comp_level); } else { - mh->set_not_compilable(comp_level, true /* report */, "WhiteBox"); + mh->set_not_compilable("WhiteBox", comp_level); } WB_END --- old/src/hotspot/share/runtime/deoptimization.cpp 2019-05-31 08:53:35.000000000 -0700 +++ new/src/hotspot/share/runtime/deoptimization.cpp 2019-05-31 08:53:35.000000000 -0700 @@ -1932,7 +1932,7 @@ if (trap_method() == nm->method()) { make_not_compilable = true; } else { - trap_method->set_not_compilable(CompLevel_full_optimization, true, "overflow_recompile_count > PerBytecodeRecompilationCutoff"); + trap_method->set_not_compilable("overflow_recompile_count > PerBytecodeRecompilationCutoff", CompLevel_full_optimization); // But give grace to the enclosing nm->method(). } } @@ -1946,7 +1946,7 @@ // Give up compiling if (make_not_compilable && !nm->method()->is_not_compilable(CompLevel_full_optimization)) { assert(make_not_entrant, "consistent"); - nm->method()->set_not_compilable(CompLevel_full_optimization); + nm->method()->set_not_compilable("give up compiling", CompLevel_full_optimization); } } // Free marked resources --- old/src/hotspot/share/runtime/thread.cpp 2019-05-31 08:53:36.000000000 -0700 +++ new/src/hotspot/share/runtime/thread.cpp 2019-05-31 08:53:36.000000000 -0700 @@ -1591,6 +1591,78 @@ } } +// Attempt to enlarge the array for per thread counters. +jlong* resize_counters_array(jlong* old_counters, int current_size, int new_size) { + jlong* new_counters = NEW_C_HEAP_ARRAY(jlong, new_size, mtJVMCI); + if (new_counters == NULL) { + return NULL; + } + if (old_counters == NULL) { + old_counters = new_counters; + memset(old_counters, 0, sizeof(jlong) * new_size); + } else { + for (int i = 0; i < MIN2((int) current_size, new_size); i++) { + new_counters[i] = old_counters[i]; + } + if (new_size > current_size) { + memset(new_counters + current_size, 0, sizeof(jlong) * (new_size - current_size)); + } + FREE_C_HEAP_ARRAY(jlong, old_counters); + } + return new_counters; +} + +// Attempt to enlarge the array for per thread counters. +bool JavaThread::resize_counters(int current_size, int new_size) { + jlong* new_counters = resize_counters_array(_jvmci_counters, current_size, new_size); + if (new_counters == NULL) { + return false; + } else { + _jvmci_counters = new_counters; + return true; + } +} + +class VM_JVMCIResizeCounters : public VM_Operation { + private: + int _new_size; + bool _failed; + + public: + VM_JVMCIResizeCounters(int new_size) : _new_size(new_size), _failed(false) { } + VMOp_Type type() const { return VMOp_JVMCIResizeCounters; } + bool allow_nested_vm_operations() const { return true; } + void doit() { + // Resize the old thread counters array + jlong* new_counters = resize_counters_array(JavaThread::_jvmci_old_thread_counters, JVMCICounterSize, _new_size); + if (new_counters == NULL) { + _failed = true; + return; + } else { + JavaThread::_jvmci_old_thread_counters = new_counters; + } + + // Now resize each threads array + for (JavaThreadIteratorWithHandle jtiwh; JavaThread *tp = jtiwh.next(); ) { + if (!tp->resize_counters(JVMCICounterSize, _new_size)) { + _failed = true; + break; + } + } + if (!_failed) { + JVMCICounterSize = _new_size; + } + } + + bool failed() { return _failed; } +}; + +bool JavaThread::resize_all_jvmci_counters(int new_size) { + VM_JVMCIResizeCounters op(new_size); + VMThread::execute(&op); + return !op.failed(); +} + #endif // INCLUDE_JVMCI // A JavaThread is a normal Java thread @@ -1629,11 +1701,9 @@ _in_retryable_allocation = false; _jvmci._alternate_call_target = NULL; assert(_jvmci._implicit_exception_pc == NULL, "must be"); + _jvmci_counters = NULL; if (JVMCICounterSize > 0) { - _jvmci_counters = NEW_C_HEAP_ARRAY(jlong, JVMCICounterSize, mtInternal); - memset(_jvmci_counters, 0, sizeof(jlong) * JVMCICounterSize); - } else { - _jvmci_counters = NULL; + resize_counters(0, (int) JVMCICounterSize); } #endif // INCLUDE_JVMCI _reserved_stack_activation = NULL; // stack base not known yet @@ -3769,7 +3839,7 @@ #if INCLUDE_JVMCI if (JVMCICounterSize > 0) { - JavaThread::_jvmci_old_thread_counters = NEW_C_HEAP_ARRAY(jlong, JVMCICounterSize, mtInternal); + JavaThread::_jvmci_old_thread_counters = NEW_C_HEAP_ARRAY(jlong, JVMCICounterSize, mtJVMCI); memset(JavaThread::_jvmci_old_thread_counters, 0, sizeof(jlong) * JVMCICounterSize); } else { JavaThread::_jvmci_old_thread_counters = NULL; --- old/src/hotspot/share/runtime/thread.hpp 2019-05-31 08:53:38.000000000 -0700 +++ new/src/hotspot/share/runtime/thread.hpp 2019-05-31 08:53:37.000000000 -0700 @@ -1152,6 +1152,11 @@ public: static jlong* _jvmci_old_thread_counters; static void collect_counters(jlong* array, int length); + + bool resize_counters(int current_size, int new_size); + + static bool resize_all_jvmci_counters(int new_size); + private: #endif // INCLUDE_JVMCI --- old/src/hotspot/share/runtime/tieredThresholdPolicy.cpp 2019-05-31 08:53:39.000000000 -0700 +++ new/src/hotspot/share/runtime/tieredThresholdPolicy.cpp 2019-05-31 08:53:39.000000000 -0700 @@ -412,8 +412,14 @@ // method == inlinee if the event originated in the main method method_back_branch_event(method, inlinee, bci, comp_level, nm, thread); // Check if event led to a higher level OSR compilation - nmethod* osr_nm = inlinee->lookup_osr_nmethod_for(bci, comp_level, false); - if (osr_nm != NULL && osr_nm->comp_level() > comp_level) { + CompLevel expected_comp_level = comp_level; + if (inlinee->is_not_osr_compilable(expected_comp_level)) { + // It's not possble to reach the expected level so fall back to simple. + expected_comp_level = CompLevel_simple; + } + nmethod* osr_nm = inlinee->lookup_osr_nmethod_for(bci, expected_comp_level, false); + assert(osr_nm == NULL || osr_nm->comp_level() >= expected_comp_level, "lookup_osr_nmethod_for is broken"); + if (osr_nm != NULL) { // Perform OSR with new nmethod return osr_nm; } @@ -449,9 +455,20 @@ // in the interpreter and then compile with C2 (the transition function will request that, // see common() ). If the method cannot be compiled with C2 but still can with C1, compile it with // pure C1. - if (!can_be_compiled(mh, level)) { + if ((bci == InvocationEntryBci && !can_be_compiled(mh, level))) { if (level == CompLevel_full_optimization && can_be_compiled(mh, CompLevel_simple)) { - compile(mh, bci, CompLevel_simple, thread); + compile(mh, bci, CompLevel_simple, thread); + } + return; + } + if ((bci != InvocationEntryBci && !can_be_osr_compiled(mh, level))) { + if (level == CompLevel_full_optimization && can_be_osr_compiled(mh, CompLevel_simple)) { + nmethod* osr_nm = mh->lookup_osr_nmethod_for(bci, CompLevel_simple, false); + if (osr_nm != NULL && osr_nm->comp_level() > CompLevel_simple) { + // Invalidate the existing OSR nmethod so that a compile at CompLevel_simple is permitted. + osr_nm->make_not_entrant(); + } + compile(mh, bci, CompLevel_simple, thread); } return; } --- old/src/hotspot/share/runtime/vmOperations.hpp 2019-05-31 08:53:40.000000000 -0700 +++ new/src/hotspot/share/runtime/vmOperations.hpp 2019-05-31 08:53:40.000000000 -0700 @@ -113,6 +113,7 @@ template(LinuxDllLoad) \ template(RotateGCLog) \ template(WhiteBoxOperation) \ + template(JVMCIResizeCounters) \ template(ClassLoaderStatsOperation) \ template(ClassLoaderHierarchyOperation) \ template(DumpHashtable) \ --- old/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java 2019-05-31 08:53:41.000000000 -0700 +++ new/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java 2019-05-31 08:53:41.000000000 -0700 @@ -560,6 +560,18 @@ native long[] collectCounters(); /** + * Get the current number of counters allocated for use by JVMCI. Should be the same value as + * the flag {@code JVMCICounterSize}. + */ + native int getCountersSize(); + + /** + * Attempt to change the size of the counters allocated for JVMCI. This requires a safepoint to + * safely reallocate the storage but it's advisable to increase the size in reasonable chunks. + */ + native boolean setCountersSize(int newSize); + + /** * Determines if {@code metaspaceMethodData} is mature. */ native boolean isMature(long metaspaceMethodData); --- old/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCICompilerConfig.java 2019-05-31 08:53:43.000000000 -0700 +++ new/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCICompilerConfig.java 2019-05-31 08:53:42.000000000 -0700 @@ -46,9 +46,15 @@ */ private static class DummyCompilerFactory implements JVMCICompilerFactory, JVMCICompiler { + private final String reason; + + DummyCompilerFactory(String reason) { + this.reason = reason; + } + @Override public HotSpotCompilationRequestResult compileMethod(CompilationRequest request) { - throw new JVMCIError("no JVMCI compiler selected"); + throw new JVMCIError("no JVMCI compiler selected: " + reason); } @Override @@ -79,8 +85,10 @@ JVMCICompilerFactory factory = null; String compilerName = Option.Compiler.getString(); if (compilerName != null) { - if (compilerName.isEmpty() || compilerName.equals("null")) { - factory = new DummyCompilerFactory(); + if (compilerName.isEmpty()) { + factory = new DummyCompilerFactory(" empty \"\" is specified"); + } else if (compilerName.equals("null")) { + factory = new DummyCompilerFactory("\"null\" is specified"); } else { for (JVMCICompilerFactory f : getJVMCICompilerFactories()) { if (f.getCompilerName().equals(compilerName)) { @@ -93,18 +101,20 @@ } } else { // Auto select a single available compiler + String reason = "default compiler is not found"; for (JVMCICompilerFactory f : getJVMCICompilerFactories()) { if (factory == null) { openJVMCITo(f.getClass().getModule()); factory = f; } else { // Multiple factories seen - cancel auto selection + reason = "multiple factories seen: \"" + factory.getCompilerName() + "\" and \"" + f.getCompilerName() + "\""; factory = null; break; } } if (factory == null) { - factory = new DummyCompilerFactory(); + factory = new DummyCompilerFactory(reason); } } factory.onSelection(); --- old/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java 2019-05-31 08:53:44.000000000 -0700 +++ new/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotJVMCIRuntime.java 2019-05-31 08:53:43.000000000 -0700 @@ -797,6 +797,26 @@ } /** + * @return the current number of per thread counters. May be set through + * {@code -XX:JVMCICompilerSize=} command line option or the + * {@link #setCountersSize(int)} call. + */ + public int getCountersSize() { + return compilerToVm.getCountersSize(); + } + + /** + * Attempt to enlarge the number of per thread counters available. Requires a safepoint so + * resizing should be rare to avoid performance effects. + * + * @param newSize + * @return false if the resizing failed + */ + public boolean setCountersSize(int newSize) { + return compilerToVm.setCountersSize(newSize); + } + + /** * The offset from the origin of an array to the first element. * * @return the offset in bytes --- old/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl.java 2019-05-31 08:53:45.000000000 -0700 +++ new/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedJavaMethodImpl.java 2019-05-31 08:53:45.000000000 -0700 @@ -507,7 +507,7 @@ @Override public Annotation[][] getParameterAnnotations() { - if ((getConstMethodFlags() & config().constMethodHasParameterAnnotations) == 0) { + if ((getConstMethodFlags() & config().constMethodHasParameterAnnotations) == 0 || isClassInitializer()) { return new Annotation[signature.getParameterCount(false)][0]; } return runtime().reflection.getParameterAnnotations(this); @@ -515,7 +515,7 @@ @Override public Annotation[] getAnnotations() { - if ((getConstMethodFlags() & config().constMethodHasMethodAnnotations) == 0) { + if ((getConstMethodFlags() & config().constMethodHasMethodAnnotations) == 0 || isClassInitializer()) { return new Annotation[0]; } return runtime().reflection.getMethodAnnotations(this); @@ -523,7 +523,7 @@ @Override public Annotation[] getDeclaredAnnotations() { - if ((getConstMethodFlags() & config().constMethodHasMethodAnnotations) == 0) { + if ((getConstMethodFlags() & config().constMethodHasMethodAnnotations) == 0 || isClassInitializer()) { return new Annotation[0]; } return runtime().reflection.getMethodDeclaredAnnotations(this); @@ -531,7 +531,7 @@ @Override public T getAnnotation(Class annotationClass) { - if ((getConstMethodFlags() & config().constMethodHasMethodAnnotations) == 0) { + if ((getConstMethodFlags() & config().constMethodHasMethodAnnotations) == 0 || isClassInitializer()) { return null; } return runtime().reflection.getMethodAnnotation(this, annotationClass); --- old/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/SharedLibraryJVMCIReflection.java 2019-05-31 08:53:46.000000000 -0700 +++ new/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/SharedLibraryJVMCIReflection.java 2019-05-31 08:53:46.000000000 -0700 @@ -140,7 +140,8 @@ @Override Annotation[] getAnnotations(HotSpotResolvedObjectTypeImpl holder) { - return getClassAnnotations(holder.getName()); + Annotation[] annotations = getClassAnnotations(holder.getName()); + return annotations == null ? new Annotation[0] : annotations; } @Override @@ -155,7 +156,11 @@ @Override Annotation[][] getParameterAnnotations(HotSpotResolvedJavaMethodImpl javaMethod) { - return getParameterAnnotations(javaMethod.getDeclaringClass().getName(), javaMethod.getName()); + Annotation[][] annotations = getParameterAnnotations(javaMethod.getDeclaringClass().getName(), javaMethod.getName()); + if (annotations == null) { + return new Annotation[javaMethod.signature.getParameterCount(false)][0]; + } + return annotations; } @Override @@ -170,7 +175,8 @@ @Override Annotation[] getMethodAnnotations(HotSpotResolvedJavaMethodImpl javaMethod) { - return getMethodAnnotationsInternal(javaMethod); + Annotation[] annotations = getMethodAnnotationsInternal(javaMethod); + return annotations == null ? new Annotation[0] : annotations; } @Override --- old/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/TranslatedException.java 2019-05-31 08:53:48.000000000 -0700 +++ new/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/TranslatedException.java 2019-05-31 08:53:47.000000000 -0700 @@ -22,8 +22,12 @@ */ package jdk.vm.ci.hotspot; +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.Formatter; +import java.util.List; import java.util.Objects; /** @@ -32,12 +36,8 @@ @SuppressWarnings("serial") final class TranslatedException extends Exception { - private TranslatedException(String message) { - super(message); - } - - private TranslatedException(String message, Throwable cause) { - super(message, cause); + private TranslatedException(String message, Throwable translationFailure) { + super("[" + translationFailure + "]" + Objects.toString(message, "")); } /** @@ -49,27 +49,68 @@ return this; } - private static Throwable create(String className, String message) { + /** + * Prints a stack trace for {@code throwable} and returns {@code true}. Used to print stack + * traces only when assertions are enabled. + */ + private static boolean printStackTrace(Throwable throwable) { + throwable.printStackTrace(); + return true; + } + + private static Throwable initCause(Throwable throwable, Throwable cause) { + if (cause != null) { + try { + throwable.initCause(cause); + } catch (IllegalStateException e) { + // Cause could not be set or overwritten. + assert printStackTrace(e); + } + } + return throwable; + } + + private static Throwable create(String className, String message, Throwable cause) { // Try create with reflection first. try { Class cls = Class.forName(className); + if (cause != null) { + // Handle known exception types whose cause must be set in the constructor + if (cls == InvocationTargetException.class) { + return new InvocationTargetException(cause, message); + } + if (cls == ExceptionInInitializerError.class) { + return new ExceptionInInitializerError(cause); + } + } if (message == null) { - return (Throwable) cls.getConstructor().newInstance(); + return initCause((Throwable) cls.getConstructor().newInstance(), cause); } cls.getDeclaredConstructor(String.class); - return (Throwable) cls.getConstructor(String.class).newInstance(message); - } catch (Throwable ignore) { + return initCause((Throwable) cls.getConstructor(String.class).newInstance(message), cause); + } catch (Throwable translationFailure) { + if (className.equals(TranslatedException.class.getName())) { + // Chop the class name when boxing another TranslatedException + return initCause(new TranslatedException(message, translationFailure), cause); + } + return initCause(new TranslatedException(null, translationFailure), cause); } + } - if (className.equals(TranslatedException.class.getName())) { - // Chop the class name when boxing another TranslatedException - return new TranslatedException(message); - } + /** + * Encodes an exception message to distinguish a null message from an empty message. + * + * @return {@code value} with a space prepended iff {@code value != null} + */ + private static String encodeMessage(String value) { + return value != null ? ' ' + value : value; + } - if (message == null) { - return new TranslatedException(className); + private static String decodeMessage(String value) { + if (value.length() == 0) { + return null; } - return new TranslatedException(className + ": " + message); + return value.substring(1); } private static String encodedString(String value) { @@ -78,21 +119,28 @@ /** * Encodes {@code throwable} including its stack and causes as a string. The encoding format of - * a single exception with its cause is: + * a single exception is: * *
      *  '|'  '|'  '|' [ '|'  '|'  '|'  '|' ]*
      * 
* - * Each cause is appended after the exception is it the cause of. + * Each exception is encoded before the exception it causes. */ @VMEntryPoint static String encodeThrowable(Throwable throwable) throws Throwable { try { Formatter enc = new Formatter(); - Throwable current = throwable; - do { - enc.format("%s|%s|", current.getClass().getName(), encodedString(current.getMessage())); + List throwables = new ArrayList<>(); + for (Throwable current = throwable; current != null; current = current.getCause()) { + throwables.add(current); + } + + // Encode from inner most cause outwards + Collections.reverse(throwables); + + for (Throwable current : throwables) { + enc.format("%s|%s|", current.getClass().getName(), encodedString(encodeMessage(current.getMessage()))); StackTraceElement[] stackTrace = current.getStackTrace(); if (stackTrace == null) { stackTrace = new StackTraceElement[0]; @@ -105,13 +153,14 @@ encodedString(frame.getFileName()), frame.getLineNumber()); } } - current = current.getCause(); - } while (current != null); + } return enc.toString(); } catch (Throwable e) { + assert printStackTrace(e); try { return e.getClass().getName() + "|" + encodedString(e.getMessage()) + "|0|"; } catch (Throwable e2) { + assert printStackTrace(e2); return "java.lang.Throwable|too many errors during encoding|0|"; } } @@ -146,12 +195,12 @@ try { int i = 0; String[] parts = encodedThrowable.split("\\|"); - Throwable parent = null; - Throwable result = null; + Throwable cause = null; + Throwable throwable = null; while (i != parts.length) { String exceptionClassName = parts[i++]; - String exceptionMessage = parts[i++]; - Throwable throwable = create(exceptionClassName, exceptionMessage); + String exceptionMessage = decodeMessage(parts[i++]); + throwable = create(exceptionClassName, exceptionMessage, cause); int stackTraceDepth = Integer.parseInt(parts[i++]); StackTraceElement[] suffix = getStackTraceSuffix(); @@ -168,16 +217,12 @@ } System.arraycopy(suffix, 0, stackTrace, stackTraceDepth, suffix.length); throwable.setStackTrace(stackTrace); - if (parent != null) { - parent.initCause(throwable); - } else { - result = throwable; - } - parent = throwable; + cause = throwable; } - return result; - } catch (Throwable t) { - return new TranslatedException("Error decoding exception: " + encodedThrowable, t); + return throwable; + } catch (Throwable translationFailure) { + assert printStackTrace(translationFailure); + return new TranslatedException("Error decoding exception: " + encodedThrowable, translationFailure); } } } --- old/test/hotspot/jtreg/ProblemList-graal.txt 2019-05-31 08:53:49.000000000 -0700 +++ new/test/hotspot/jtreg/ProblemList-graal.txt 2019-05-31 08:53:48.000000000 -0700 @@ -52,6 +52,7 @@ compiler/whitebox/EnqueueMethodForCompilationTest.java 8181831 generic-all compiler/whitebox/MakeMethodNotCompilableTest.java 8181831 generic-all +compiler/uncommontrap/DeoptReallocFailure.java 8196611 generic-all gc/arguments/TestNewSizeFlags.java 8196611 generic-all gc/arguments/TestVerifyBeforeAndAfterGCFlags.java 8196611 generic-all gc/g1/mixedgc/TestOldGenCollectionUsage.java 8196611 generic-all --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/AsResolvedJavaMethodTest.java 2019-05-31 08:53:50.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/AsResolvedJavaMethodTest.java 2019-05-31 08:53:50.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -34,7 +34,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.code * jdk.internal.vm.ci/jdk.vm.ci.meta * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper - * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null + * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.AsResolvedJavaMethodTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/DoNotInlineOrCompileTest.java 2019-05-31 08:53:52.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/DoNotInlineOrCompileTest.java 2019-05-31 08:53:52.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -39,7 +39,7 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.DoNotInlineOrCompileTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/FindUniqueConcreteMethodTest.java 2019-05-31 08:53:54.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/FindUniqueConcreteMethodTest.java 2019-05-31 08:53:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -36,7 +36,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.runtime * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.FindUniqueConcreteMethodTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetBytecodeTest.java 2019-05-31 08:53:55.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetBytecodeTest.java 2019-05-31 08:53:55.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -34,7 +34,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.code * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetBytecodeTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetClassInitializerTest.java 2019-05-31 08:53:57.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetClassInitializerTest.java 2019-05-31 08:53:57.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -31,7 +31,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.hotspot * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetClassInitializerTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetConstantPoolTest.java 2019-05-31 08:53:59.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetConstantPoolTest.java 2019-05-31 08:53:58.000000000 -0700 @@ -39,7 +39,7 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetConstantPoolTest */ package compiler.jvmci.compilerToVM; --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetExceptionTableTest.java 2019-05-31 08:54:00.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetExceptionTableTest.java 2019-05-31 08:54:00.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -34,7 +34,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.code * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetExceptionTableTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetImplementorTest.java 2019-05-31 08:54:02.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetImplementorTest.java 2019-05-31 08:54:02.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -31,7 +31,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.hotspot * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetImplementorTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetLineNumberTableTest.java 2019-05-31 08:54:04.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetLineNumberTableTest.java 2019-05-31 08:54:03.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -35,7 +35,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.code * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetLineNumberTableTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetLocalVariableTableTest.java 2019-05-31 08:54:05.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetLocalVariableTableTest.java 2019-05-31 08:54:05.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -38,7 +38,7 @@ * @compile -g DummyClass.java * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetLocalVariableTableTest * @clean compiler.jvmci.compilerToVM.* */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetResolvedJavaMethodTest.java 2019-05-31 08:54:07.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetResolvedJavaMethodTest.java 2019-05-31 08:54:07.000000000 -0700 @@ -39,7 +39,7 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetResolvedJavaMethodTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetResolvedJavaTypeTest.java 2019-05-31 08:54:09.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetResolvedJavaTypeTest.java 2019-05-31 08:54:08.000000000 -0700 @@ -45,7 +45,7 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -XX:-UseCompressedOops -Djvmci.Compiler=null + * -XX:-UseCompressedOops -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetResolvedJavaTypeTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetStackTraceElementTest.java 2019-05-31 08:54:10.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetStackTraceElementTest.java 2019-05-31 08:54:10.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -34,7 +34,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.code * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetStackTraceElementTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetSymbolTest.java 2019-05-31 08:54:12.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetSymbolTest.java 2019-05-31 08:54:12.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -35,7 +35,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.meta * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetSymbolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetVtableIndexForInterfaceTest.java 2019-05-31 08:54:14.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/GetVtableIndexForInterfaceTest.java 2019-05-31 08:54:13.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -34,7 +34,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.code * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.GetVtableIndexForInterfaceTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/HasFinalizableSubclassTest.java 2019-05-31 08:54:15.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/HasFinalizableSubclassTest.java 2019-05-31 08:54:15.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -31,7 +31,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.hotspot * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.HasFinalizableSubclassTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/HasNeverInlineDirectiveTest.java 2019-05-31 08:54:17.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/HasNeverInlineDirectiveTest.java 2019-05-31 08:54:17.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -39,7 +39,7 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.HasNeverInlineDirectiveTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/IsCompilableTest.java 2019-05-31 08:54:18.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/IsCompilableTest.java 2019-05-31 08:54:18.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -39,12 +39,10 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler - * -Djvmci.Compiler=null * compiler.jvmci.compilerToVM.IsCompilableTest * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler - * -Djvmci.Compiler=null * compiler.jvmci.compilerToVM.IsCompilableTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupKlassInPoolTest.java 2019-05-31 08:54:20.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupKlassInPoolTest.java 2019-05-31 08:54:19.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -42,7 +42,7 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.LookupKlassInPoolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupKlassRefIndexInPoolTest.java 2019-05-31 08:54:21.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupKlassRefIndexInPoolTest.java 2019-05-31 08:54:21.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -40,7 +40,7 @@ * sun.hotspot.WhiteBox$WhiteBoxPermission * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.LookupKlassRefIndexInPoolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupMethodInPoolTest.java 2019-05-31 08:54:23.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupMethodInPoolTest.java 2019-05-31 08:54:23.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -40,7 +40,7 @@ * sun.hotspot.WhiteBox$WhiteBoxPermission * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.LookupMethodInPoolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupNameAndTypeRefIndexInPoolTest.java 2019-05-31 08:54:24.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupNameAndTypeRefIndexInPoolTest.java 2019-05-31 08:54:24.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -40,7 +40,7 @@ * sun.hotspot.WhiteBox$WhiteBoxPermission * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.LookupNameAndTypeRefIndexInPoolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupNameInPoolTest.java 2019-05-31 08:54:26.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupNameInPoolTest.java 2019-05-31 08:54:26.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -41,7 +41,7 @@ * sun.hotspot.WhiteBox$WhiteBoxPermission * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.LookupNameInPoolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupSignatureInPoolTest.java 2019-05-31 08:54:28.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupSignatureInPoolTest.java 2019-05-31 08:54:27.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -41,7 +41,7 @@ * sun.hotspot.WhiteBox$WhiteBoxPermission * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.LookupSignatureInPoolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupTypeTest.java 2019-05-31 08:54:29.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/LookupTypeTest.java 2019-05-31 08:54:29.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -31,7 +31,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.hotspot * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.LookupTypeTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/MethodIsIgnoredBySecurityStackWalkTest.java 2019-05-31 08:54:31.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/MethodIsIgnoredBySecurityStackWalkTest.java 2019-05-31 08:54:31.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -35,7 +35,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.code * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.MethodIsIgnoredBySecurityStackWalkTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ReadConfigurationTest.java 2019-05-31 08:54:33.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ReadConfigurationTest.java 2019-05-31 08:54:32.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -32,7 +32,7 @@ * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @build compiler.jvmci.compilerToVM.ReadConfigurationTest * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.ReadConfigurationTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolveConstantInPoolTest.java 2019-05-31 08:54:34.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolveConstantInPoolTest.java 2019-05-31 08:54:34.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -40,7 +40,7 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.ResolveConstantInPoolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolveFieldInPoolTest.java 2019-05-31 08:54:36.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolveFieldInPoolTest.java 2019-05-31 08:54:36.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -41,7 +41,7 @@ * sun.hotspot.WhiteBox$WhiteBoxPermission * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.ResolveFieldInPoolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolveMethodTest.java 2019-05-31 08:54:38.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolveMethodTest.java 2019-05-31 08:54:37.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -34,7 +34,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.code * @build jdk.internal.vm.ci/jdk.vm.ci.hotspot.CompilerToVMHelper * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.ResolveMethodTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolvePossiblyCachedConstantInPoolTest.java 2019-05-31 08:54:39.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolvePossiblyCachedConstantInPoolTest.java 2019-05-31 08:54:39.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -40,7 +40,7 @@ * sun.hotspot.WhiteBox$WhiteBoxPermission * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions * -XX:+WhiteBoxAPI -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.ResolvePossiblyCachedConstantInPoolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolveTypeInPoolTest.java 2019-05-31 08:54:41.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ResolveTypeInPoolTest.java 2019-05-31 08:54:41.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -41,7 +41,7 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.ResolveTypeInPoolTest */ --- old/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ShouldInlineMethodTest.java 2019-05-31 08:54:43.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/compilerToVM/ShouldInlineMethodTest.java 2019-05-31 08:54:42.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -39,7 +39,7 @@ * @run main/othervm -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null + * -XX:-UseJVMCICompiler * compiler.jvmci.compilerToVM.ShouldInlineMethodTest */ --- old/test/hotspot/jtreg/compiler/jvmci/errors/TestInvalidCompilationResult.java 2019-05-31 08:54:44.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/errors/TestInvalidCompilationResult.java 2019-05-31 08:54:44.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -32,7 +32,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.common * @compile CodeInstallerTest.java * @run junit/othervm -da:jdk.vm.ci... -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null compiler.jvmci.errors.TestInvalidCompilationResult + * -XX:-UseJVMCICompiler compiler.jvmci.errors.TestInvalidCompilationResult */ package compiler.jvmci.errors; --- old/test/hotspot/jtreg/compiler/jvmci/errors/TestInvalidDebugInfo.java 2019-05-31 08:54:46.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/errors/TestInvalidDebugInfo.java 2019-05-31 08:54:46.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -32,7 +32,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.common * @compile CodeInstallerTest.java * @run junit/othervm -da:jdk.vm.ci... -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null compiler.jvmci.errors.TestInvalidDebugInfo + * -XX:-UseJVMCICompiler compiler.jvmci.errors.TestInvalidDebugInfo */ package compiler.jvmci.errors; --- old/test/hotspot/jtreg/compiler/jvmci/errors/TestInvalidOopMap.java 2019-05-31 08:54:48.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/errors/TestInvalidOopMap.java 2019-05-31 08:54:47.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -32,7 +32,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.common * @compile CodeInstallerTest.java * @run junit/othervm -da:jdk.vm.ci... -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null compiler.jvmci.errors.TestInvalidOopMap + * -XX:-UseJVMCICompiler compiler.jvmci.errors.TestInvalidOopMap */ package compiler.jvmci.errors; --- old/test/hotspot/jtreg/compiler/jvmci/events/JvmciNotifyInstallEventTest.java 2019-05-31 08:54:49.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/events/JvmciNotifyInstallEventTest.java 2019-05-31 08:54:49.000000000 -0700 @@ -47,7 +47,7 @@ * compiler.jvmci.common.JVMCIHelpers$EmptyCompilationRequestResult * compiler.jvmci.common.JVMCIHelpers$EmptyVMEventListener * @run main/othervm -XX:+UnlockExperimentalVMOptions - * -Xbootclasspath/a:. -Xmixed + * -Djvmci.Compiler=graal -Xbootclasspath/a:. -Xmixed * -XX:+UseJVMCICompiler -XX:-BootstrapJVMCI * compiler.jvmci.events.JvmciNotifyInstallEventTest * @run main/othervm -XX:+UnlockExperimentalVMOptions --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/DataPatchTest.java 2019-05-31 08:54:51.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/DataPatchTest.java 2019-05-31 08:54:50.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -33,7 +33,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.amd64 * jdk.internal.vm.ci/jdk.vm.ci.sparc * @compile CodeInstallationTest.java DebugInfoTest.java TestAssembler.java TestHotSpotVMConfig.java amd64/AMD64TestAssembler.java sparc/SPARCTestAssembler.java - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.code.test.DataPatchTest + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.code.test.DataPatchTest */ package jdk.vm.ci.code.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/InterpreterFrameSizeTest.java 2019-05-31 08:54:52.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/InterpreterFrameSizeTest.java 2019-05-31 08:54:52.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -33,7 +33,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.amd64 * jdk.internal.vm.ci/jdk.vm.ci.sparc * @compile CodeInstallationTest.java TestAssembler.java TestHotSpotVMConfig.java amd64/AMD64TestAssembler.java sparc/SPARCTestAssembler.java - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.code.test.InterpreterFrameSizeTest + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.code.test.InterpreterFrameSizeTest */ package jdk.vm.ci.code.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/MaxOopMapStackOffsetTest.java 2019-05-31 08:54:53.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/MaxOopMapStackOffsetTest.java 2019-05-31 08:54:53.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -34,7 +34,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.amd64 * jdk.internal.vm.ci/jdk.vm.ci.sparc * @compile CodeInstallationTest.java DebugInfoTest.java TestAssembler.java TestHotSpotVMConfig.java amd64/AMD64TestAssembler.java sparc/SPARCTestAssembler.java - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.code.test.MaxOopMapStackOffsetTest + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.code.test.MaxOopMapStackOffsetTest */ package jdk.vm.ci.code.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/SimpleCodeInstallationTest.java 2019-05-31 08:54:55.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/SimpleCodeInstallationTest.java 2019-05-31 08:54:54.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -33,7 +33,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.amd64 * jdk.internal.vm.ci/jdk.vm.ci.sparc * @compile CodeInstallationTest.java DebugInfoTest.java TestAssembler.java TestHotSpotVMConfig.java amd64/AMD64TestAssembler.java sparc/SPARCTestAssembler.java - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.code.test.SimpleCodeInstallationTest + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.code.test.SimpleCodeInstallationTest */ package jdk.vm.ci.code.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/SimpleDebugInfoTest.java 2019-05-31 08:54:56.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/SimpleDebugInfoTest.java 2019-05-31 08:54:56.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -33,7 +33,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.amd64 * jdk.internal.vm.ci/jdk.vm.ci.sparc * @compile CodeInstallationTest.java DebugInfoTest.java TestAssembler.java TestHotSpotVMConfig.java amd64/AMD64TestAssembler.java sparc/SPARCTestAssembler.java - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.code.test.SimpleDebugInfoTest + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.code.test.SimpleDebugInfoTest */ package jdk.vm.ci.code.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/VirtualObjectDebugInfoTest.java 2019-05-31 08:54:58.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/VirtualObjectDebugInfoTest.java 2019-05-31 08:54:58.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -33,7 +33,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.amd64 * jdk.internal.vm.ci/jdk.vm.ci.sparc * @compile CodeInstallationTest.java DebugInfoTest.java TestAssembler.java TestHotSpotVMConfig.java amd64/AMD64TestAssembler.java sparc/SPARCTestAssembler.java - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.code.test.VirtualObjectDebugInfoTest + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.code.test.VirtualObjectDebugInfoTest */ package jdk.vm.ci.code.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/HotSpotConstantReflectionProviderTest.java 2019-05-31 08:54:59.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/HotSpotConstantReflectionProviderTest.java 2019-05-31 08:54:59.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -34,7 +34,7 @@ * @run driver ClassFileInstaller jdk.vm.ci.hotspot.test.DummyClass * @run testng/othervm/timeout=300 -Xbootclasspath/a:. * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null jdk.vm.ci.hotspot.test.HotSpotConstantReflectionProviderTest + * -XX:-UseJVMCICompiler jdk.vm.ci.hotspot.test.HotSpotConstantReflectionProviderTest */ package jdk.vm.ci.hotspot.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MemoryAccessProviderTest.java 2019-05-31 08:55:01.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MemoryAccessProviderTest.java 2019-05-31 08:55:00.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -38,7 +38,7 @@ * @run testng/othervm -Xbootclasspath/a:. * -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI * -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null jdk.vm.ci.hotspot.test.MemoryAccessProviderTest + * -XX:-UseJVMCICompiler jdk.vm.ci.hotspot.test.MemoryAccessProviderTest */ package jdk.vm.ci.hotspot.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MethodHandleAccessProviderTest.java 2019-05-31 08:55:02.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/MethodHandleAccessProviderTest.java 2019-05-31 08:55:01.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2019, 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 @@ -32,7 +32,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.runtime * @modules jdk.internal.vm.ci/jdk.vm.ci.hotspot:+open * @run testng/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI - * -Djvmci.Compiler=null jdk.vm.ci.hotspot.test.MethodHandleAccessProviderTest + * -XX:-UseJVMCICompiler jdk.vm.ci.hotspot.test.MethodHandleAccessProviderTest */ package jdk.vm.ci.hotspot.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ConstantTest.java 2019-05-31 08:55:03.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ConstantTest.java 2019-05-31 08:55:03.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2019, 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 @@ -28,7 +28,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.meta * jdk.internal.vm.ci/jdk.vm.ci.runtime * java.base/jdk.internal.misc - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.ConstantTest + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.ConstantTest */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java 2019-05-31 08:55:05.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/RedefineClassTest.java 2019-05-31 08:55:05.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2011, 2019, 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 @@ -29,7 +29,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.runtime * jdk.attach * java.base/jdk.internal.misc - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null -Djdk.attach.allowAttachSelf jdk.vm.ci.runtime.test.RedefineClassTest + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler -Djdk.attach.allowAttachSelf jdk.vm.ci.runtime.test.RedefineClassTest */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveConcreteMethodTest.java 2019-05-31 08:55:07.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveConcreteMethodTest.java 2019-05-31 08:55:06.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2019, 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 @@ -26,7 +26,7 @@ * @requires vm.jvmci * @modules jdk.internal.vm.ci/jdk.vm.ci.meta * jdk.internal.vm.ci/jdk.vm.ci.runtime - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.ResolvedJavaTypeResolveConcreteMethodTest + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.ResolvedJavaTypeResolveConcreteMethodTest */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveMethodTest.java 2019-05-31 08:55:08.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/ResolvedJavaTypeResolveMethodTest.java 2019-05-31 08:55:08.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2019, 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 @@ -26,7 +26,7 @@ * @requires vm.jvmci * @modules jdk.internal.vm.ci/jdk.vm.ci.meta * jdk.internal.vm.ci/jdk.vm.ci.runtime - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.ResolvedJavaTypeResolveMethodTest + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.ResolvedJavaTypeResolveMethodTest */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestConstantReflectionProvider.java 2019-05-31 08:55:10.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestConstantReflectionProvider.java 2019-05-31 08:55:10.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2019, 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 @@ -28,7 +28,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.meta * jdk.internal.vm.ci/jdk.vm.ci.runtime * java.base/jdk.internal.misc - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.TestConstantReflectionProvider + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.TestConstantReflectionProvider */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestJavaField.java 2019-05-31 08:55:12.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestJavaField.java 2019-05-31 08:55:11.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2019, 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 @@ -28,7 +28,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.meta * jdk.internal.vm.ci/jdk.vm.ci.runtime * java.base/jdk.internal.misc - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.TestJavaField + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.TestJavaField */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestJavaMethod.java 2019-05-31 08:55:13.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestJavaMethod.java 2019-05-31 08:55:13.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2019, 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 @@ -28,7 +28,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.meta * jdk.internal.vm.ci/jdk.vm.ci.runtime * java.base/jdk.internal.misc - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.TestJavaMethod + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.TestJavaMethod */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestJavaType.java 2019-05-31 08:55:15.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestJavaType.java 2019-05-31 08:55:15.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2019, 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 @@ -28,7 +28,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.meta * jdk.internal.vm.ci/jdk.vm.ci.runtime * java.base/jdk.internal.misc - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.TestJavaType + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.TestJavaType */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestMetaAccessProvider.java 2019-05-31 08:55:17.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestMetaAccessProvider.java 2019-05-31 08:55:17.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2019, 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 @@ -28,7 +28,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.meta * jdk.internal.vm.ci/jdk.vm.ci.runtime * java.base/jdk.internal.misc - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.TestMetaAccessProvider + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.TestMetaAccessProvider */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaField.java 2019-05-31 08:55:19.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaField.java 2019-05-31 08:55:18.000000000 -0700 @@ -29,7 +29,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.meta * jdk.internal.vm.ci/jdk.vm.ci.runtime * java.base/jdk.internal.misc - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.TestResolvedJavaField + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.TestResolvedJavaField */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaMethod.java 2019-05-31 08:55:20.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaMethod.java 2019-05-31 08:55:20.000000000 -0700 @@ -29,7 +29,7 @@ * @modules jdk.internal.vm.ci/jdk.vm.ci.meta * jdk.internal.vm.ci/jdk.vm.ci.runtime * java.base/jdk.internal.misc - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.TestResolvedJavaMethod + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.TestResolvedJavaMethod */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java 2019-05-31 08:55:22.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java 2019-05-31 08:55:22.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2019, 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 @@ -30,7 +30,7 @@ * jdk.internal.vm.ci/jdk.vm.ci.runtime * jdk.internal.vm.ci/jdk.vm.ci.common * java.base/jdk.internal.misc - * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null jdk.vm.ci.runtime.test.TestResolvedJavaType + * @run junit/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler jdk.vm.ci.runtime.test.TestResolvedJavaType */ package jdk.vm.ci.runtime.test; --- old/test/hotspot/jtreg/compiler/jvmci/meta/StableFieldTest.java 2019-05-31 08:55:24.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/meta/StableFieldTest.java 2019-05-31 08:55:23.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2019, 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 @@ -34,7 +34,7 @@ * * @compile StableFieldTest.java * @run driver ClassFileInstaller compiler.jvmci.meta.StableFieldTest - * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -Djvmci.Compiler=null -Xbootclasspath/a:. compiler.jvmci.meta.StableFieldTest + * @run main/othervm -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:-UseJVMCICompiler -Xbootclasspath/a:. compiler.jvmci.meta.StableFieldTest */ package compiler.jvmci.meta; --- /dev/null 2019-05-31 08:55:25.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/jvmci/jdk.vm.ci.hotspot.test/src/jdk/vm/ci/hotspot/test/TestTranslatedException.java 2019-05-31 08:55:25.000000000 -0700 @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2019, 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 jdk.vm.ci.hotspot.test; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +import org.junit.Assert; +import org.junit.Test; + +public class TestTranslatedException { + + private static String printToString(Throwable throwable) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + try (PrintStream ps = new PrintStream(baos)) { + throwable.printStackTrace(ps); + } + return baos.toString(); + } + + @SuppressWarnings("serial") + public static class Untranslatable extends RuntimeException { + public Untranslatable(String message, Throwable cause) { + super(message, cause); + } + } + + @SuppressWarnings("unchecked") + @Test + public void encodeDecodeTest() throws Exception { + + Class translatedExceptionClass = Class.forName("jdk.vm.ci.hotspot.TranslatedException"); + + Method encode = translatedExceptionClass.getDeclaredMethod("encodeThrowable", Throwable.class); + Method decode = translatedExceptionClass.getDeclaredMethod("decodeThrowable", String.class); + encode.setAccessible(true); + decode.setAccessible(true); + + Throwable throwable = new ExceptionInInitializerError(new InvocationTargetException(new Untranslatable("test exception", new NullPointerException()), "invoke")); + for (int i = 0; i < 10; i++) { + throwable = new ExceptionInInitializerError(new InvocationTargetException(new RuntimeException(String.valueOf(i), throwable), "invoke")); + } + String before = printToString(throwable); + String encoding = (String) encode.invoke(null, throwable); + Throwable decoded = (Throwable) decode.invoke(null, encoding); + String after = printToString(decoded); + + after = after.replace( + "jdk.vm.ci.hotspot.TranslatedException: [java.lang.ClassNotFoundException: jdk/vm/ci/hotspot/test/TestTranslatedException$Untranslatable]", + "jdk.vm.ci.hotspot.test.TestTranslatedException$Untranslatable: test exception"); + + Assert.assertEquals("before:\n" + before + "\nafter:\n" + after, before, after); + } +} --- /dev/null 2019-05-31 08:55:27.000000000 -0700 +++ new/test/hotspot/jtreg/compiler/whitebox/OSRFailureLevel4Test.java 2019-05-31 08:55:26.000000000 -0700 @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2019, 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. + */ + +/* + * @test OSRFailureLevel4Test + * @summary check that not compilable OSR level 4 results in falling back to level 1 + * @library /test/lib / + * @modules java.base/jdk.internal.misc + * java.management + * @build sun.hotspot.WhiteBox + * @run driver ClassFileInstaller sun.hotspot.WhiteBox + * sun.hotspot.WhiteBox$WhiteBoxPermission + * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions + * -XX:+WhiteBoxAPI -XX:+TieredCompilation compiler.whitebox.OSRFailureLevel4Test + */ + +package compiler.whitebox; + +import sun.hotspot.WhiteBox; +import java.lang.reflect.Executable; +import java.lang.reflect.Method; + +public class OSRFailureLevel4Test extends Thread { + private static final WhiteBox WHITE_BOX = WhiteBox.getWhiteBox(); + private static final long BACKEDGE_THRESHOLD = 150000; + private Method method; + + public static void main(String[] args) throws Exception { + OSRFailureLevel4Test test = new OSRFailureLevel4Test(); + test.test(); + } + + /** + * Triggers two different OSR compilations for the same method and + * checks if WhiteBox.deoptimizeMethod() deoptimizes both. + * + * @throws Exception + */ + public void test() throws Exception { + method = OSRFailureLevel4Test.class.getDeclaredMethod("run"); + WHITE_BOX.makeMethodNotCompilable(method, 4, true); + + Thread t = new OSRFailureLevel4Test(); + t.setDaemon(true); + t.start(); + + int currentLevel = 0; + int loops = 0; + while (true) { + int level = WHITE_BOX.getMethodCompilationLevel(method, true); + if (level == 1) { + System.err.println("success"); + running = false; + return; + } + if (level == currentLevel) { + Thread.sleep(1000); + loops++; + if (loops > 100) { + running = false; + throw new AssertionError("Never reached level 1"); + } + continue; + } + currentLevel = level; + System.err.println("Current level = " + currentLevel); + } + + } + + static volatile int counter = 0; + static boolean running = true; + + public void run() { + while (running) { + counter++; + } + } +}