Mercurial > hg > truffle
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 |