Search in sources :

Example 6 with JNIEnv

use of org.graalvm.jniutils.JNI.JNIEnv in project graal by oracle.

the class HSCompilableTruffleAST method getName.

@TruffleFromLibGraal(GetCompilableName)
@Override
public String getName() {
    String res = cachedName;
    if (res == null) {
        JNIEnv env = JNIMethodScope.env();
        JString name = callGetCompilableName(env, getHandle());
        res = createString(env, name);
        cachedName = res;
    }
    return res;
}
Also used : HSCompilableTruffleASTGen.callCompilableToString(org.graalvm.compiler.truffle.compiler.hotspot.libgraal.HSCompilableTruffleASTGen.callCompilableToString) JNIUtil.createString(org.graalvm.jniutils.JNIUtil.createString) JString(org.graalvm.jniutils.JNI.JString) CompilableToString(org.graalvm.compiler.truffle.common.hotspot.libgraal.TruffleFromLibGraal.Id.CompilableToString) JNIEnv(org.graalvm.jniutils.JNI.JNIEnv) JString(org.graalvm.jniutils.JNI.JString) TruffleFromLibGraal(org.graalvm.compiler.truffle.common.hotspot.libgraal.TruffleFromLibGraal)

Example 7 with JNIEnv

use of org.graalvm.jniutils.JNI.JNIEnv in project graal by oracle.

the class HSCompilableTruffleAST method onCompilationFailed.

@TruffleFromLibGraal(CreateStringSupplier)
@TruffleFromLibGraal(OnCompilationFailed)
@Override
public void onCompilationFailed(Supplier<String> serializedException, boolean silent, boolean bailout, boolean permanentBailout, boolean graphTooBig) {
    long serializedExceptionHandle = LibGraalObjectHandles.create(serializedException);
    boolean success = false;
    JNIEnv env = env();
    try {
        JObject instance = callCreateStringSupplier(env, serializedExceptionHandle);
        callOnCompilationFailed(env, getHandle(), instance, silent, bailout, permanentBailout, graphTooBig);
        success = true;
    } finally {
        if (!success) {
            LibGraalObjectHandles.remove(serializedExceptionHandle);
        }
    }
}
Also used : JObject(org.graalvm.jniutils.JNI.JObject) JNIEnv(org.graalvm.jniutils.JNI.JNIEnv) TruffleFromLibGraal(org.graalvm.compiler.truffle.common.hotspot.libgraal.TruffleFromLibGraal)

Example 8 with JNIEnv

use of org.graalvm.jniutils.JNI.JNIEnv in project graal by oracle.

the class HSCompilableTruffleAST method getCallNodes.

@TruffleFromLibGraal(GetCallNodes)
@Override
public TruffleCallNode[] getCallNodes() {
    JNIMethodScope scope = scope();
    JNIEnv env = scope.getEnv();
    JObjectArray peerArr = callGetCallNodes(env, getHandle());
    int len = JNIUtil.GetArrayLength(env, peerArr);
    TruffleCallNode[] res = new TruffleCallNode[len];
    for (int i = 0; i < len; i++) {
        JObject peerTruffleCallNode = JNIUtil.GetObjectArrayElement(env, peerArr, i);
        res[i] = new HSTruffleCallNode(scope, peerTruffleCallNode);
    }
    return res;
}
Also used : TruffleCallNode(org.graalvm.compiler.truffle.common.TruffleCallNode) JNIMethodScope(org.graalvm.jniutils.JNIMethodScope) JObjectArray(org.graalvm.jniutils.JNI.JObjectArray) JObject(org.graalvm.jniutils.JNI.JObject) JNIEnv(org.graalvm.jniutils.JNI.JNIEnv) TruffleFromLibGraal(org.graalvm.compiler.truffle.common.hotspot.libgraal.TruffleFromLibGraal)

Example 9 with JNIEnv

use of org.graalvm.jniutils.JNI.JNIEnv in project graal by oracle.

the class HSTruffleCompilerRuntime method isSuppressedFailure.

@TruffleFromLibGraal(CreateStringSupplier)
@TruffleFromLibGraal(IsSuppressedFailure)
@Override
public boolean isSuppressedFailure(CompilableTruffleAST compilable, Supplier<String> serializedException) {
    long serializedExceptionHandle = LibGraalObjectHandles.create(serializedException);
    boolean success = false;
    JNIEnv env = env();
    try {
        JObject instance = callCreateStringSupplier(env, serializedExceptionHandle);
        boolean res = callIsSuppressedFailure(env, getHandle(), ((HSCompilableTruffleAST) compilable).getHandle(), instance);
        success = true;
        return res;
    } finally {
        if (!success) {
            LibGraalObjectHandles.remove(serializedExceptionHandle);
        }
    }
}
Also used : JObject(org.graalvm.jniutils.JNI.JObject) JNIEnv(org.graalvm.jniutils.JNI.JNIEnv) TruffleFromLibGraal(org.graalvm.compiler.truffle.common.hotspot.libgraal.TruffleFromLibGraal)

Example 10 with JNIEnv

use of org.graalvm.jniutils.JNI.JNIEnv in project graal by oracle.

the class HSTruffleCompilerRuntime method onCodeInstallation.

@TruffleFromLibGraal(OnCodeInstallation)
@Override
public void onCodeInstallation(CompilableTruffleAST compilable, InstalledCode installedCode) {
    long installedCodeHandle = LibGraal.translate(installedCode);
    JNIEnv env = env();
    callOnCodeInstallation(env, getHandle(), ((HSCompilableTruffleAST) compilable).getHandle(), installedCodeHandle);
}
Also used : JNIEnv(org.graalvm.jniutils.JNI.JNIEnv) TruffleFromLibGraal(org.graalvm.compiler.truffle.common.hotspot.libgraal.TruffleFromLibGraal)

Aggregations

TruffleFromLibGraal (org.graalvm.compiler.truffle.common.hotspot.libgraal.TruffleFromLibGraal)18 JNIEnv (org.graalvm.jniutils.JNI.JNIEnv)18 JObject (org.graalvm.jniutils.JNI.JObject)12 JString (org.graalvm.jniutils.JNI.JString)5 CompilableToString (org.graalvm.compiler.truffle.common.hotspot.libgraal.TruffleFromLibGraal.Id.CompilableToString)2 HSCompilableTruffleASTGen.callCompilableToString (org.graalvm.compiler.truffle.compiler.hotspot.libgraal.HSCompilableTruffleASTGen.callCompilableToString)2 JNIUtil.createString (org.graalvm.jniutils.JNIUtil.createString)2 TruffleCallNode (org.graalvm.compiler.truffle.common.TruffleCallNode)1 TruffleCompilerImpl (org.graalvm.compiler.truffle.compiler.TruffleCompilerImpl)1 JObjectArray (org.graalvm.jniutils.JNI.JObjectArray)1 JNIMethodScope (org.graalvm.jniutils.JNIMethodScope)1