< prev index next >

src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java

Print this page
rev 9941 : 8147432: JVMCI should report bailouts in PrintCompilation output


 300     /**
 301      * Installs the result of a compilation into the code cache.
 302      *
 303      * @param target the target where this code should be installed
 304      * @param compiledCode the result of a compilation
 305      * @param code the details of the installed CodeBlob are written to this object
 306      * @return the outcome of the installation which will be one of
 307      *         {@link HotSpotVMConfig#codeInstallResultOk},
 308      *         {@link HotSpotVMConfig#codeInstallResultCacheFull},
 309      *         {@link HotSpotVMConfig#codeInstallResultCodeTooLarge},
 310      *         {@link HotSpotVMConfig#codeInstallResultDependenciesFailed} or
 311      *         {@link HotSpotVMConfig#codeInstallResultDependenciesInvalid}.
 312      * @throws JVMCIError if there is something wrong with the compiled code or the associated
 313      *             metadata.
 314      */
 315     native int installCode(TargetDescription target, HotSpotCompiledCode compiledCode, InstalledCode code, HotSpotSpeculationLog speculationLog);
 316 
 317     public native int getMetadata(TargetDescription target, HotSpotCompiledCode compiledCode, HotSpotMetaData metaData);
 318 
 319     /**
 320      * Notifies the VM of statistics for a completed compilation.
 321      *
 322      * @param id the identifier of the compilation
 323      * @param method the method compiled
 324      * @param osr specifies if the compilation was for on-stack-replacement
 325      * @param processedBytecodes the number of bytecodes processed during the compilation, including
 326      *            the bytecodes of all inlined methods
 327      * @param time the amount time spent compiling {@code method}
 328      * @param timeUnitsPerSecond the granularity of the units for the {@code time} value
 329      * @param installedCode the nmethod installed as a result of the compilation
 330      */
 331     synchronized native void notifyCompilationStatistics(int id, HotSpotResolvedJavaMethodImpl method, boolean osr, int processedBytecodes, long time, long timeUnitsPerSecond,
 332                     InstalledCode installedCode);
 333 
 334     /**
 335      * Resets all compilation statistics.
 336      */
 337     native void resetCompilationStatistics();
 338 
 339     /**
 340      * Initializes the fields of {@code config}.
 341      */
 342     native long initializeConfiguration(HotSpotVMConfig config);
 343 
 344     /**
 345      * Resolves the implementation of {@code method} for virtual dispatches on objects of dynamic
 346      * type {@code exactReceiver}. This resolution process only searches "up" the class hierarchy of
 347      * {@code exactReceiver}.
 348      *
 349      * @param caller the caller or context type used to perform access checks
 350      * @return the link-time resolved method (might be abstract) or {@code 0} if it can not be
 351      *         linked
 352      */
 353     native HotSpotResolvedJavaMethodImpl resolveMethod(HotSpotResolvedObjectTypeImpl exactReceiver, HotSpotResolvedJavaMethodImpl method, HotSpotResolvedObjectTypeImpl caller);
 354 




 300     /**
 301      * Installs the result of a compilation into the code cache.
 302      *
 303      * @param target the target where this code should be installed
 304      * @param compiledCode the result of a compilation
 305      * @param code the details of the installed CodeBlob are written to this object
 306      * @return the outcome of the installation which will be one of
 307      *         {@link HotSpotVMConfig#codeInstallResultOk},
 308      *         {@link HotSpotVMConfig#codeInstallResultCacheFull},
 309      *         {@link HotSpotVMConfig#codeInstallResultCodeTooLarge},
 310      *         {@link HotSpotVMConfig#codeInstallResultDependenciesFailed} or
 311      *         {@link HotSpotVMConfig#codeInstallResultDependenciesInvalid}.
 312      * @throws JVMCIError if there is something wrong with the compiled code or the associated
 313      *             metadata.
 314      */
 315     native int installCode(TargetDescription target, HotSpotCompiledCode compiledCode, InstalledCode code, HotSpotSpeculationLog speculationLog);
 316 
 317     public native int getMetadata(TargetDescription target, HotSpotCompiledCode compiledCode, HotSpotMetaData metaData);
 318 
 319     /**















 320      * Resets all compilation statistics.
 321      */
 322     native void resetCompilationStatistics();
 323 
 324     /**
 325      * Initializes the fields of {@code config}.
 326      */
 327     native long initializeConfiguration(HotSpotVMConfig config);
 328 
 329     /**
 330      * Resolves the implementation of {@code method} for virtual dispatches on objects of dynamic
 331      * type {@code exactReceiver}. This resolution process only searches "up" the class hierarchy of
 332      * {@code exactReceiver}.
 333      *
 334      * @param caller the caller or context type used to perform access checks
 335      * @return the link-time resolved method (might be abstract) or {@code 0} if it can not be
 336      *         linked
 337      */
 338     native HotSpotResolvedJavaMethodImpl resolveMethod(HotSpotResolvedObjectTypeImpl exactReceiver, HotSpotResolvedJavaMethodImpl method, HotSpotResolvedObjectTypeImpl caller);
 339 


< prev index next >