comparison src/share/vm/runtime/thread.cpp @ 16242:e9998e2be7f5

use oops_do to modify saved hsail state Contributed-by: Tom Deneau <tom.deneau@amd.com>
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 26 Jun 2014 18:25:35 +0200
parents 66a9286203a2
children d56a09df1a1f
comparison
equal deleted inserted replaced
16241:c6ebc1997a55 16242:e9998e2be7f5
52 #include "runtime/biasedLocking.hpp" 52 #include "runtime/biasedLocking.hpp"
53 #include "runtime/deoptimization.hpp" 53 #include "runtime/deoptimization.hpp"
54 #include "runtime/fprofiler.hpp" 54 #include "runtime/fprofiler.hpp"
55 #include "runtime/frame.inline.hpp" 55 #include "runtime/frame.inline.hpp"
56 #include "runtime/gpu.hpp" 56 #include "runtime/gpu.hpp"
57 #ifdef GRAAL
58 # include "hsail/vm/gpu_hsail.hpp"
59 #endif
57 #include "runtime/init.hpp" 60 #include "runtime/init.hpp"
58 #include "runtime/interfaceSupport.hpp" 61 #include "runtime/interfaceSupport.hpp"
59 #include "runtime/java.hpp" 62 #include "runtime/java.hpp"
60 #include "runtime/javaCalls.hpp" 63 #include "runtime/javaCalls.hpp"
61 #include "runtime/jniPeriodicChecker.hpp" 64 #include "runtime/jniPeriodicChecker.hpp"
1465 set_deopt_mark(NULL); 1468 set_deopt_mark(NULL);
1466 set_deopt_nmethod(NULL); 1469 set_deopt_nmethod(NULL);
1467 clear_must_deopt_id(); 1470 clear_must_deopt_id();
1468 set_monitor_chunks(NULL); 1471 set_monitor_chunks(NULL);
1469 set_next(NULL); 1472 set_next(NULL);
1473 #ifdef GRAAL
1470 set_gpu_exception_bci(0); 1474 set_gpu_exception_bci(0);
1471 set_gpu_exception_method(NULL); 1475 set_gpu_exception_method(NULL);
1476 set_gpu_hsail_deopt_info(NULL);
1477 #endif
1472 set_thread_state(_thread_new); 1478 set_thread_state(_thread_new);
1473 #if INCLUDE_NMT 1479 #if INCLUDE_NMT
1474 set_recorder(NULL); 1480 set_recorder(NULL);
1475 #endif 1481 #endif
1476 _terminated = _not_terminated; 1482 _terminated = _not_terminated;
2851 // Safepoints can occur when the sweeper is scanning an nmethod so 2857 // Safepoints can occur when the sweeper is scanning an nmethod so
2852 // process it here to make sure it isn't unloaded in the middle of 2858 // process it here to make sure it isn't unloaded in the middle of
2853 // a scan. 2859 // a scan.
2854 cf->do_code_blob(_scanned_nmethod); 2860 cf->do_code_blob(_scanned_nmethod);
2855 } 2861 }
2862
2863 #ifdef GRAAL
2864 Hsail::HSAILDeoptimizationInfo* gpu_hsail_deopt_info = (Hsail::HSAILDeoptimizationInfo*) get_gpu_hsail_deopt_info();
2865 if (gpu_hsail_deopt_info != NULL) {
2866 gpu_hsail_deopt_info->oops_do(f);
2867 }
2868 #endif
2856 } 2869 }
2857 2870
2858 void JavaThread::nmethods_do(CodeBlobClosure* cf) { 2871 void JavaThread::nmethods_do(CodeBlobClosure* cf) {
2859 Thread::nmethods_do(cf); // (super method is a no-op) 2872 Thread::nmethods_do(cf); // (super method is a no-op)
2860 2873