442 443 /** 444 * Gets the address of the first entry in the local variable table for {@code method}. 445 * 446 * Each entry is a native object described by these fields: 447 * 448 * <ul> 449 * <li>{@link HotSpotVMConfig#localVariableTableElementSize}</li> 450 * <li>{@link HotSpotVMConfig#localVariableTableElementLengthOffset}</li> 451 * <li>{@link HotSpotVMConfig#localVariableTableElementNameCpIndexOffset}</li> 452 * <li>{@link HotSpotVMConfig#localVariableTableElementDescriptorCpIndexOffset}</li> 453 * <li>{@link HotSpotVMConfig#localVariableTableElementSlotOffset} 454 * <li>{@link HotSpotVMConfig#localVariableTableElementStartBciOffset} 455 * </ul> 456 * 457 * @return 0 if {@code method} does not have a local variable table 458 */ 459 native long getLocalVariableTableStart(HotSpotResolvedJavaMethodImpl method); 460 461 /** 462 * Determines if {@code method} should not be inlined or compiled. 463 */ 464 native void doNotInlineOrCompile(HotSpotResolvedJavaMethodImpl method); 465 466 /** 467 * Invalidates the profiling information for {@code method} and (re)initializes it such that 468 * profiling restarts upon its next invocation. 469 */ 470 native void reprofile(HotSpotResolvedJavaMethodImpl method); 471 472 /** 473 * Invalidates {@code installedCode} such that {@link InvalidInstalledCodeException} will be 474 * raised the next time {@code installedCode} is executed. 475 */ 476 native void invalidateInstalledCode(InstalledCode installedCode); 477 478 /** 479 * Collects the current values of all JVMCI benchmark counters, summed up over all threads. 480 */ 481 native long[] collectCounters(); 482 483 /** 484 * Determines if {@code metaspaceMethodData} is mature. | 442 443 /** 444 * Gets the address of the first entry in the local variable table for {@code method}. 445 * 446 * Each entry is a native object described by these fields: 447 * 448 * <ul> 449 * <li>{@link HotSpotVMConfig#localVariableTableElementSize}</li> 450 * <li>{@link HotSpotVMConfig#localVariableTableElementLengthOffset}</li> 451 * <li>{@link HotSpotVMConfig#localVariableTableElementNameCpIndexOffset}</li> 452 * <li>{@link HotSpotVMConfig#localVariableTableElementDescriptorCpIndexOffset}</li> 453 * <li>{@link HotSpotVMConfig#localVariableTableElementSlotOffset} 454 * <li>{@link HotSpotVMConfig#localVariableTableElementStartBciOffset} 455 * </ul> 456 * 457 * @return 0 if {@code method} does not have a local variable table 458 */ 459 native long getLocalVariableTableStart(HotSpotResolvedJavaMethodImpl method); 460 461 /** 462 * Sets flags on {@code method} indicating that it should never be inlined or compiled by the VM. 463 */ 464 native void setNotInlineableOrCompileable(HotSpotResolvedJavaMethodImpl method); 465 466 /** 467 * Invalidates the profiling information for {@code method} and (re)initializes it such that 468 * profiling restarts upon its next invocation. 469 */ 470 native void reprofile(HotSpotResolvedJavaMethodImpl method); 471 472 /** 473 * Invalidates {@code installedCode} such that {@link InvalidInstalledCodeException} will be 474 * raised the next time {@code installedCode} is executed. 475 */ 476 native void invalidateInstalledCode(InstalledCode installedCode); 477 478 /** 479 * Collects the current values of all JVMCI benchmark counters, summed up over all threads. 480 */ 481 native long[] collectCounters(); 482 483 /** 484 * Determines if {@code metaspaceMethodData} is mature. |