Mercurial > hg > truffle
comparison src/share/vm/runtime/thread.hpp @ 1027:39b01ab7035a
6888898: CMS: ReduceInitialCardMarks unsafe in the presence of cms precleaning
6889757: G1: enable card mark elision for initializing writes from compiled code (ReduceInitialCardMarks)
Summary: Defer the (compiler-elided) card-mark upon a slow-path allocation until after the store and before the next subsequent safepoint; G1 now answers yes to can_elide_tlab_write_barriers().
Reviewed-by: jcoomes, kvn, never
author | ysr |
---|---|
date | Fri, 16 Oct 2009 02:05:46 -0700 |
parents | 46b819ba120b |
children | 547f81740344 e66fd840cb6b |
comparison
equal
deleted
inserted
replaced
1025:1ee412f7fec9 | 1027:39b01ab7035a |
---|---|
682 // code in i2c adapters and handle_wrong_method. | 682 // code in i2c adapters and handle_wrong_method. |
683 | 683 |
684 methodOop _callee_target; | 684 methodOop _callee_target; |
685 | 685 |
686 // Oop results of VM runtime calls | 686 // Oop results of VM runtime calls |
687 oop _vm_result; // Used to pass back an oop result into Java code, GC-preserved | 687 oop _vm_result; // Used to pass back an oop result into Java code, GC-preserved |
688 oop _vm_result_2; // Used to pass back an oop result into Java code, GC-preserved | 688 oop _vm_result_2; // Used to pass back an oop result into Java code, GC-preserved |
689 | |
690 // See ReduceInitialCardMarks: this holds the precise space interval of | |
691 // the most recent slow path allocation for which compiled code has | |
692 // elided card-marks for performance along the fast-path. | |
693 MemRegion _deferred_card_mark; | |
689 | 694 |
690 MonitorChunk* _monitor_chunks; // Contains the off stack monitors | 695 MonitorChunk* _monitor_chunks; // Contains the off stack monitors |
691 // allocated during deoptimization | 696 // allocated during deoptimization |
692 // and by JNI_MonitorEnter/Exit | 697 // and by JNI_MonitorEnter/Exit |
693 | 698 |
1079 oop vm_result() const { return _vm_result; } | 1084 oop vm_result() const { return _vm_result; } |
1080 void set_vm_result (oop x) { _vm_result = x; } | 1085 void set_vm_result (oop x) { _vm_result = x; } |
1081 | 1086 |
1082 oop vm_result_2() const { return _vm_result_2; } | 1087 oop vm_result_2() const { return _vm_result_2; } |
1083 void set_vm_result_2 (oop x) { _vm_result_2 = x; } | 1088 void set_vm_result_2 (oop x) { _vm_result_2 = x; } |
1089 | |
1090 MemRegion deferred_card_mark() const { return _deferred_card_mark; } | |
1091 void set_deferred_card_mark(MemRegion mr) { _deferred_card_mark = mr; } | |
1084 | 1092 |
1085 // Exception handling for compiled methods | 1093 // Exception handling for compiled methods |
1086 oop exception_oop() const { return _exception_oop; } | 1094 oop exception_oop() const { return _exception_oop; } |
1087 int exception_stack_size() const { return _exception_stack_size; } | 1095 int exception_stack_size() const { return _exception_stack_size; } |
1088 address exception_pc() const { return _exception_pc; } | 1096 address exception_pc() const { return _exception_pc; } |