Mercurial > hg > truffle
comparison src/share/vm/graal/graalCompilerToGPU.cpp @ 10879:d55f24eac4b1
PTX support for Linux
author | Morris Meyer <morris.meyer@oracle.com> |
---|---|
date | Thu, 25 Jul 2013 22:15:30 -0400 |
parents | 431eca622358 |
children | 1cd1f8ff70a1 |
comparison
equal
deleted
inserted
replaced
10878:d9fcc82766da | 10879:d55f24eac4b1 |
---|---|
45 TRACE_graal_3("CompilerToGPU::" #name); \ | 45 TRACE_graal_3("CompilerToGPU::" #name); \ |
46 | 46 |
47 #define C2V_END } | 47 #define C2V_END } |
48 | 48 |
49 | 49 |
50 C2V_VMENTRY(jlong, generateKernel, (JNIEnv *env, jobject, jbyteArray code, jstring name)) | 50 C2V_ENTRY(jlong, generateKernel, (JNIEnv *env, jobject, jbyteArray code, jstring name)) |
51 if (gpu::is_available() == false || gpu::has_gpu_linkage() == false && gpu::is_initialized()) { | 51 if (gpu::is_available() == false || gpu::has_gpu_linkage() == false && gpu::is_initialized()) { |
52 tty->print_cr("generateKernel - not available / no linkage / not initialized"); | 52 tty->print_cr("generateKernel - not available / no linkage / not initialized"); |
53 return 0; | 53 return 0; |
54 } | 54 } |
55 jboolean is_copy; | 55 jboolean is_copy; |
56 jbyte *bytes = env->GetByteArrayElements(code, &is_copy); | 56 jbyte *bytes = env->GetByteArrayElements(code, &is_copy); |
57 jint len = env->GetArrayLength(code); | 57 jint len = env->GetArrayLength(code); |
58 const char *namestr = env->GetStringUTFChars(name, &is_copy); | 58 const char *namestr = env->GetStringUTFChars(name, &is_copy); |
59 void *kernel = gpu::generate_kernel((unsigned char *)bytes, len, namestr); | 59 void *kernel = gpu::generate_kernel((unsigned char *)bytes, len, namestr); |
60 tty->print_cr("generateKernel: %x", kernel); | 60 if (kernel == NULL) { |
61 tty->print_cr("[CUDA] *** Error: Failed to compile kernel"); | |
62 } | |
63 else if (TraceGPUInteraction) { | |
64 tty->print_cr("[CUDA] Generated kernel"); | |
65 } | |
61 env->ReleaseByteArrayElements(code, bytes, 0); | 66 env->ReleaseByteArrayElements(code, bytes, 0); |
62 env->ReleaseStringUTFChars(name, namestr); | 67 env->ReleaseStringUTFChars(name, namestr); |
63 | 68 |
64 return (jlong)kernel; | 69 return (jlong)kernel; |
65 C2V_END | 70 C2V_END |