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