Path: blob/master/runtime/compiler/control/rossa.h
6000 views
/*******************************************************************************1* Copyright (c) 2000, 2021 IBM Corp. and others2*3* This program and the accompanying materials are made available under4* the terms of the Eclipse Public License 2.0 which accompanies this5* distribution and is available at https://www.eclipse.org/legal/epl-2.0/6* or the Apache License, Version 2.0 which accompanies this distribution and7* is available at https://www.apache.org/licenses/LICENSE-2.0.8*9* This Source Code may also be made available under the following10* Secondary Licenses when the conditions for such availability set11* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU12* General Public License, version 2 with the GNU Classpath13* Exception [1] and GNU General Public License, version 2 with the14* OpenJDK Assembly Exception [2].15*16* [1] https://www.gnu.org/software/classpath/license.html17* [2] http://openjdk.java.net/legal/assembly-exception.html18*19* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception20*******************************************************************************/2122#ifndef __ROSSA_H23#define __ROSSA_H2425typedef enum {26compilationOK = 0,27compilationFailure = 1, /* catch all error */28compilationRestrictionILNodes = 2, /* Unused */29compilationRestrictionRecDepth = 3, /* Unused */30compilationRestrictedMethod = 4, /* filters, JNI, abstract */31compilationExcessiveComplexity = 5,32compilationNotNeeded = 6,33compilationSuspended = 7,34compilationExcessiveSize = 8, /* full caches */35compilationInterrupted = 9, /* GC wants to unload classes */36compilationMetaDataFailure = 10, /* cannot create metadata */37compilationInProgress = 11, /* for async compilations */38compilationCHTableCommitFailure = 12,39compilationMaxCallerIndexExceeded = 13,40compilationKilledByClassReplacement = 14,41compilationHeapLimitExceeded = 15,42compilationNeededAtHigherLevel = 16, /*rtj */43compilationAotValidateFieldFailure = 17, /* aot failures */44compilationAotStaticFieldReloFailure = 18,45compilationAotClassReloFailure = 19,46compilationAotThunkReloFailure = 20,47compilationAotTrampolineReloFailure = 21,48compilationAotPicTrampolineReloFailure = 22,49compilationAotCacheFullReloFailure = 23, /* end of aot failures */50compilationAotUnknownReloTypeFailure = 24,51compilationCodeReservationFailure = 25,52compilationAotHasInvokehandle = 26,53compilationTrampolineFailure = 27,54compilationRecoverableTrampolineFailure = 28, /* we should retry these */55compilationILGenFailure = 29,56compilationIllegalCodeCacheSwitch = 30,57compilationNullSubstituteCodeCache = 31,58compilationCodeMemoryExhausted = 32,59compilationGCRPatchFailure = 33,60compilationAotValidateMethodExitFailure = 34,61compilationAotValidateMethodEnterFailure = 35,62compilationLambdaEnforceScorching = 37,63compilationInternalPointerExceedLimit = 38,64compilationAotRelocationInterrupted = 39,65compilationAotClassChainPersistenceFailure = 40,66compilationLowPhysicalMemory = 41,67compilationDataCacheError = 42,68compilationCodeCacheError = 43,69compilationRecoverableCodeCacheError = 44,70compilationAotHasInvokeVarHandle = 45,71compilationAotValidateStringCompressionFailure = 46,72compilationFSDHasInvokeHandle = 47,73compilationVirtualAddressExhaustion = 48,74compilationEnforceProfiling = 49,75compilationSymbolValidationManagerFailure = 50,76compilationAOTNoSupportForAOTFailure = 51,77compilationAOTValidateTMFailure = 52,78compilationILGenUnsupportedValueTypeOperationFailure = 53,79compilationAOTRelocationRecordGenerationFailure = 54,80compilationAotPatchedCPConstant = 55,81compilationAotHasInvokeSpecialInterface = 56,82compilationAotValidateExceptionHookFailure = 57,83compilationAotBlockFrequencyReloFailure = 58,84compilationAotRecompQueuedFlagReloFailure = 59,85compilationAOTValidateOSRFailure = 60,86#if defined(J9VM_OPT_JITSERVER)87compilationFirstJITServerFailure,88compilationStreamFailure = compilationFirstJITServerFailure, // 6189compilationStreamLostMessage = compilationFirstJITServerFailure + 1, // 6290compilationStreamMessageTypeMismatch = compilationFirstJITServerFailure + 2, // 6391compilationStreamVersionIncompatible = compilationFirstJITServerFailure + 3, // 6492compilationStreamInterrupted = compilationFirstJITServerFailure + 4, // 6593aotCacheDeserializationFailure = compilationFirstJITServerFailure + 5, // 6694#endif /* defined(J9VM_OPT_JITSERVER) */95/* please insert new codes before compilationMaxError which is used in jar2jxe to test the error codes range */96/* If new codes are added then add the corresponding names in compilationErrorNames table in rossa.cpp */97compilationMaxError /* must be the last one */98} TR_CompilationErrorCode;99100#ifdef __cplusplus101extern "C" {102#endif103/* compilation error codes */104105jint JNICALL JVM_OnUnload(JavaVM * jvm, void* reserved0);106IDATA j9jit_testarossa(struct J9JITConfig *jitConfig, J9VMThread * context, J9Method * method, void *oldStartPC);107IDATA j9jit_testarossa_err(struct J9JITConfig *jitConfig, J9VMThread * context, J9Method * method, void * oldStartPC, TR_CompilationErrorCode *compErrCode);108IDATA retranslateWithPreparation(struct J9JITConfig * jitConfig, J9VMThread * vmThread, J9Method * method, void * oldStartPC, UDATA reason);109IDATA retranslateWithPreparationForMethodRedefinition(struct J9JITConfig * jitConfig, J9VMThread * vmThread, J9Method * method, void * oldStartPC);110void* old_translateMethodHandle(J9VMThread *currentThread, j9object_t methodHandle);111void* translateMethodHandle(J9VMThread *currentThread, j9object_t methodHandle, j9object_t arg, U_32 flags);112void disableJit(J9JITConfig *jitConfig);113void enableJit(J9JITConfig *jitConfig);114115jint onLoadInternal(J9JavaVM * javaVM, J9JITConfig *jitConfig, char *xjitCommandLine, char *xaotCommandLine, UDATA flagsParm, void *reserved0, I_32 xnojit);116int32_t aboutToBootstrap(J9JavaVM * javaVM, J9JITConfig * jitConfig);117void JitShutdown(J9JITConfig * jitConfig);118void freeJITConfig(J9JITConfig * jitConfig);119120#ifdef __cplusplus121}122#endif123#endif124125126127128129