Mercurial > hg > truffle
comparison src/share/vm/runtime/thread.hpp @ 14483:be0ac0e8f6e7
8035393: Use CLDClosure instead of CLDToOopClosure in frame::oops_interpreted_do
Reviewed-by: tschatzl, coleenp
author | stefank |
---|---|
date | Fri, 21 Feb 2014 10:01:20 +0100 |
parents | 2c95095271e9 |
children | f460c6926af7 |
comparison
equal
deleted
inserted
replaced
14470:f6490a5f084a | 14483:be0ac0e8f6e7 |
---|---|
485 // GC support | 485 // GC support |
486 // Apply "f->do_oop" to all root oops in "this". | 486 // Apply "f->do_oop" to all root oops in "this". |
487 // Apply "cld_f->do_cld" to CLDs that are otherwise not kept alive. | 487 // Apply "cld_f->do_cld" to CLDs that are otherwise not kept alive. |
488 // Used by JavaThread::oops_do. | 488 // Used by JavaThread::oops_do. |
489 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames | 489 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames |
490 virtual void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); | 490 virtual void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf); |
491 | 491 |
492 // Handles the parallel case for the method below. | 492 // Handles the parallel case for the method below. |
493 private: | 493 private: |
494 bool claim_oops_do_par_case(int collection_parity); | 494 bool claim_oops_do_par_case(int collection_parity); |
495 public: | 495 public: |
1422 | 1422 |
1423 // Frame iteration; calls the function f for all frames on the stack | 1423 // Frame iteration; calls the function f for all frames on the stack |
1424 void frames_do(void f(frame*, const RegisterMap*)); | 1424 void frames_do(void f(frame*, const RegisterMap*)); |
1425 | 1425 |
1426 // Memory operations | 1426 // Memory operations |
1427 void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); | 1427 void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf); |
1428 | 1428 |
1429 // Sweeper operations | 1429 // Sweeper operations |
1430 void nmethods_do(CodeBlobClosure* cf); | 1430 void nmethods_do(CodeBlobClosure* cf); |
1431 | 1431 |
1432 // RedefineClasses Support | 1432 // RedefineClasses Support |
1850 } | 1850 } |
1851 | 1851 |
1852 // GC support | 1852 // GC support |
1853 // Apply "f->do_oop" to all root oops in "this". | 1853 // Apply "f->do_oop" to all root oops in "this". |
1854 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames | 1854 // Apply "cf->do_code_blob" (if !NULL) to all code blobs active in frames |
1855 void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); | 1855 void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf); |
1856 | 1856 |
1857 #ifndef PRODUCT | 1857 #ifndef PRODUCT |
1858 private: | 1858 private: |
1859 IdealGraphPrinter *_ideal_graph_printer; | 1859 IdealGraphPrinter *_ideal_graph_printer; |
1860 public: | 1860 public: |
1919 // Garbage collection | 1919 // Garbage collection |
1920 static void follow_other_roots(void f(oop*)); | 1920 static void follow_other_roots(void f(oop*)); |
1921 | 1921 |
1922 // Apply "f->do_oop" to all root oops in all threads. | 1922 // Apply "f->do_oop" to all root oops in all threads. |
1923 // This version may only be called by sequential code. | 1923 // This version may only be called by sequential code. |
1924 static void oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); | 1924 static void oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf); |
1925 // This version may be called by sequential or parallel code. | 1925 // This version may be called by sequential or parallel code. |
1926 static void possibly_parallel_oops_do(OopClosure* f, CLDToOopClosure* cld_f, CodeBlobClosure* cf); | 1926 static void possibly_parallel_oops_do(OopClosure* f, CLDClosure* cld_f, CodeBlobClosure* cf); |
1927 // This creates a list of GCTasks, one per thread. | 1927 // This creates a list of GCTasks, one per thread. |
1928 static void create_thread_roots_tasks(GCTaskQueue* q); | 1928 static void create_thread_roots_tasks(GCTaskQueue* q); |
1929 // This creates a list of GCTasks, one per thread, for marking objects. | 1929 // This creates a list of GCTasks, one per thread, for marking objects. |
1930 static void create_thread_roots_marking_tasks(GCTaskQueue* q); | 1930 static void create_thread_roots_marking_tasks(GCTaskQueue* q); |
1931 | 1931 |